譯者 | 布加迪
審校 | 重樓
“軟件工程正在發生變革;到 2025 年底,它將煥然一新。”Greg Brockman在OpenAI 發布會上的開場白為接下來的活動定下了基調。OpenAI隨后發布了Codex,這是一款旨在與開發者協同工作的云原生軟件智能體。
Codex 并非單一產品,而是一系列基于OpenAI的最新編程模型codex-1的智能體。Codex CLI于幾周前發布,是一款終端內運行的輕量級配套工具。如今,人們的注意力轉向更強大的遠程智能體,它完全可在ChatGPT上使用。你可以啟動幾臺“微型計算機”,在喝咖啡的同時處理多項任務。本文將概述ChatGPT端的Codex,我們后續很快會發布這方面的一些文章。
從自動完成到氛圍編程
OpenAI早在2021年就開始致力于AI輔助編程,當時最初的Codex模型發布,為GitHub Copilot等工具提供支持。那時候,它更像是為開發者提供自動完成支持。
從那以后,情況發生了很大變化。得益于強化學習領域的重大進步,Codex的功能得到了顯著增強。
如今在氛圍編程司空見慣的環境下,你只需用母語描述想要實現的功能,Codex就會自行構建。最新版本Codex-1基于OpenAI的o3架構而建,使用真實的合并請求進行了微調。它不僅僅可以生成代碼,還可以遵循諸如代碼檢查、編寫測試和保持一致的風格等最佳實踐,使其在實際開發工作中真正發揮作用。
可用性和限制
Codex目前可供ChatGPT Pro、Enterprise和Team用戶使用。Plus和EDU用戶預計很快也能使用。在研究預覽期間,使用量會受到較大限制,但這些限制可能會根據需求而進行調整。未來計劃包括推出面向Codex的API、集成到CI流水線,以及統一CLI版本和ChatGPT版本,以便在本地開發和云端開發之間無縫切換。
如何在ChatGPT界面中訪問Codex?
所需時間:5 分鐘
按照以下簡單步驟開始使用Codex:
1. 在ChatGPT中找到Codex
打開ChatGPT,進入到左側導航欄中的“Codex”側邊欄,你將看到一個新的“Codex(beta)”圖標。點擊它即可顯示智能體儀表板。
2. 多因子身份驗證
點擊“設置 MFA以繼續”,使用你首選的身份驗證應用程序(比如Google Authenticator 或 Authy)掃描二維碼,然后輸入二維碼進行驗證。就這樣,你已設置完畢。
3. 連接GitHub(僅限首次使用)
點擊OAuth 即可授權Codex讀取/寫入你的代碼庫。你可以將其限制為特定組織或個人項目。
4. 選擇代碼庫和分支
選擇你希望Codex處理的項目。該智能體會將此分支克隆到其自己的沙盒中。
5. 配置環境(可選)
就像在CI作業中一樣添加環境變量、機密信息或設置命令。代碼檢查程序和格式化程序已預先安裝,但你可以根據需要覆蓋版本。
6. 選擇任務模板
詢問:“請解釋架構。”
代碼:“查找并修復test_api.py 中的不穩定測試。”
建議:讓Codex掃描代碼庫,并提議從事維護任務。
或者只需用自然語言輸入自定義指令即可。
7. 運行和多任務處理
點擊“啟動”。每個作業都會啟動自己的微型虛擬機;可以實現任務并行處理,并在 ChatGPT 中的其他地方繼續聊天。
8. 查看結果
綠色復選標記表示測試已通過。點擊任務卡即可查看差異、模型的解釋和完整工作日志。
9. 合并或迭代
點擊“打開合并請求”即可將分支推送回到GitHub,或者在需要更改時回復任務,附以后續操作說明。
OpenAI Codex 演示
下面將給出不同的示例,表明這款全新的軟件開發智能體如何幫助你簡化工作!
示例 1:加速開發
OpenAI工程師Nacho Soto展示了Codex如何通過設置項目腳手架(比如Swift軟件包)幫助他更快地啟動新任務。借助簡單的提示詞,他就能夠卸載設置工作,致力于構建功能,而Codex會在后臺處理其余工作。
示例2:審核工作流程
Codex不僅支持代碼生成,還適用于審核工作流程,開發人員因此可以檢查AI生成的合并請求,發現格式問題之類的問題,并提示Codex進行修復。
示例3:使用Codex修復Papercuts
工程師Max Johnson解釋了Codex如何在不影響其專注力的情況下幫助修復小錯誤和代碼質量問題。他沒有切換上下文,而是將這些任務交給了Codex,稍后審核結果以改進代碼庫。
示例4:通話期間查找代碼庫中的錯誤
Calvin分享了Codex如何在值班期間幫助處理緊急任務。通過向Codex發送堆棧跟蹤信息,他可以快速獲得診斷或修復方法。它還有助于微調警報并處理日常操作工作,從而減少手動工作。
OpenAI Codex與o3 對比
提示:“請修復matplotlib/matplotlib代碼庫中的以下問題。請在當前代碼執行會話中編輯和測試代碼文件,解決以下問題。代碼庫已克隆到/testbed文件夾中。你必須完全解決問題,那樣你的解決辦法才被視為正確。”
Problem statement:[Bug]: Windows correction is not correct in `mlab._spectral_helper`
### Bug summary
Windows correction is not correct in `mlab._spectral_helper`:
https://github.com/matplotlib/matplotlib/blob/3418bada1c1f44da1f73916c5603e3ae79fe58c1/lib/matplotlib/mlab.py#L423-L430
The `np.abs` is not needed, and give wrong result for window with negative value, such as `flattop`.
For reference, the implementation of scipy can be found here :
https://github.com/scipy/scipy/blob/d9f75db82fdffef06187c9d8d2f0f5b36c7a791b/scipy/signal/_spectral_py.py#L1854-L1859
### Code for reproduction
```python
import numpy as np
from scipy import signal
window = signal.windows.flattop(512)
print(np.abs(window).sum()**2-window.sum()**2)
```
### Actual outcome
4372.942556173262
### Expected outcome
0
### Additional information
_No response_
### Operating system
_No response_
### Matplotlib Version
latest
### Matplotlib Backend
_No response_
### Python version
_No response_
### Jupyter version
_No response_
### Installation
None
輸出:
觀察:
Codex生成的修復比o3生成的修復更準確、更完整。它正確地移除了 mlab._spectral_helper中窗口歸一化使用的不必要的np.abs() 函數,這會導致像flattop這樣的負值窗口出現錯誤的結果。Codex用正確的數學表達式替換了錯誤的邏輯,使用(window2).sum() 而不是(np.abs(window)2).sum(),這與SciPy實現中的最佳實踐相符。它還包含一個單元測試來驗證該行為,使修復既可驗證又可靠。相比之下,o3輸出似乎不完整,沒有明確解決核心問題,這使得Codex成為更出色的選擇。
OpenAI Codex的工作原理
- Codex編寫代碼:模型先生成代碼來解決給定任務。
- 運行代碼:輸出不僅僅加以評估以驗證合理性,還會實際執行。
- 檢查測試結果:Codex會觀察生成的代碼是否通過了相關的測試。
- 只有成功完成任務后,Codex才會獲得獎勵:不像傳統的LLM專注于下一個單詞預測,只有代碼端到端運行良好,Codex才能獲得高分。
- 通過反饋進行學習:如果代碼失敗,Codex會重試:創建復現腳本、修復代碼檢查錯誤,并調整格式,直到符合標準。
- 像初級開發人員一樣不斷改進完善:這種訓練方法教會Codex的行為不再像文本生成器,而更像遵循實際編程實踐的深思熟慮的工程師。
Codex-1在標準化基準測試和OpenAI內部工作流程中的表現均優于之前的模型。如下所示,它在SWE-Bench Verified基準測試中在所有次嘗試都獲得了更高的準確率,并在 OpenAI 內部軟件工程任務中保持領先。這凸顯了Codex-1在實際應用中的可靠性,尤其對于將其集成到日常工作流程中的開發人員而言。
Cloud Workshop一窺
每次你按下Codex側邊欄中的“運行”按鈕,系統都會創建一個微型虛擬機沙盒:其自己的文件系統、CPU、RAM和鎖定的網絡策略。你的代碼庫會被克隆,環境變量被注入,常用的開發者工具(代碼檢查程序、格式化程序、測試運行器)也會被預先安裝。這種隔離帶來了兩個直接的好處:
- 安全性和可重復性——惡意腳本無法觸及你的筆記本電腦或泄露機密信息;整個運行過程可以稍后重放。
- 大規模并行——需要修復拼寫錯誤、協調超時并查找神秘錯誤?可以啟動三個任務,并排查看結果。
可選的AGENTS.md文件就像面向機器人的自述文件:你可以描述項目布局、測試運行方式、首選的提交樣式,甚至在步驟之間打印輸出ASCII貓的請求。指令越豐富,Codex的運行就越流暢。
結論
將來編程將類似于高級編排:用戶表明意圖,智能體負責處理細節。Codex代表了開發者與代碼交互方式方面的轉變,從手動編寫所有內容轉變為編排處理高級任務。工程師現在更加專注于意圖和驗證,而Codex負責具體執行。對許多人來說,這標志著全新開發工作流程的開始,即人和智能體協作將成為一種常態,而非例外。
原文標題:How to Access and Use OpenAI Codex?,作者:Nitika Sharma