OpenAI剛剛發佈了全新的自主編碼代理Codex,一個能自己建構功能和修復bug的AI助手!
這已經不是簡單的程式碼補全工具,而是能夠獨立完成整個程式設計任務的AI代理。
OpenAI CEO Sam Altman 宣佈稱:
今天我們推出了codex。它是一個在雲端運行的軟體工程代理,可以為你執行編寫新功能或修復bug等任務。你可以平行運行許多工。
並且,Plus 帳號還得等等(我猜是等你充錢成為Pro 帳號):
而Codex 是什麼呢?
與其他AI編碼工具不同,Codex不是一個聊天介面,而是一個面向任務的工具。
你只需描述編碼任務,它就會在沙盒環境中啟動你的程式碼庫,運行測試和程式碼檢查,確保一切正常運行。
受OpenAI 邀請,Every團隊已經提前體驗了幾天,Dan Shipper對此印象深刻,還特別邀請了Codex產品團隊成員Alexander Embiricos進行了深度對話,一起來看看這款革命性工具到底有多強!
註:本文部分內容參考了Dan Shipper 的使用體驗文章——
https://every.to/chain-of-thought/vibe-check-codex-openai-s-new-coding-agent
Codex是專為高級工程師設計的自主編碼代理,能夠自動執行加入功能或修復bug等編碼任務。
與其他AI編碼工具的最大區別在於,它允許你同時啟動多個會話,讓多個AI代理平行工作。
使用者介面非常簡潔,只有一個文字框讓你描述程式設計任務,然後是兩個按鈕:「Ask」和「Code」。
這種設計很有深意——它不是一個聊天框,而是一個任務委派介面。
當你按下「Code」按鈕後,Codex會將你的任務加入佇列,開始工作。它會在自己的沙盒環境中啟動你的程式碼庫,在那裡可以運行測試和程式碼檢查工具,以便自己捕捉錯誤。
但與Devin不同,它還沒有訪問瀏覽器的能力,無法使用它編寫的程式碼來檢查功能是否正常運行。
當任務完成後,它會給你一個簡潔的總結和程式碼差異,讓你清楚看到具體做了那些更改。
還有一個按鈕可以輕鬆地將這些更改作為PR提交到Github上。
OpenAI通過強化學習對Codex進行了微調,讓它掌握了專業軟體工程師的技能——
如何編寫良好的PR標題和描述,如何處理大型混亂的程式碼庫,如何以及何時運行測試等等。
訓練團隊向Codex展示了大量程式碼庫——既有乾淨的也有混亂的——這讓它感覺自己擁有更多實際經驗,最關鍵的是,比其他編碼模型有更好的品味。
這一點很明顯:Codex產生的程式碼簡潔、精煉,總結也簡明扼要。
Dan 親自體驗了這一點,Codex成功地一次性完成了他們內部應用Paradigm的樣式修復。
還有一次,他讓Codex給他們的郵件助手Cora加入一個新功能——保存UI展開和摺疊狀態——Codex也迅速而出色地完成了。
Codex的設計鼓勵一種特殊的使用方式:它強調建立小型、自包含的任務,這些任務轉化為小型、易於審查的PR。
這使其非常適合在生產環境中工作的專業軟體工程師,因為它使跟蹤和理解程式碼庫的變化變得更容易。
這種方式讓你從程式設計師變成了管理者,如在最初使用Devin時的體驗——就像大學時代玩線上撲克,可以同時運行3-4個桌子,或者,多個窗口倍速同時看不同集的電視劇😂
Dan和Kieran的體驗很能說明問題:
我昨晚花了大約一小時與Kieran一起結對程式設計,我們聊天的同時向Codex傳送任務,然後測試返回的結果。這是一種更加社交化的程式設計模式,因為使用Codex時你可以分散注意力。
這種「豐富思維模式」讓使用者能夠同時委派多個任務而不陷入細節。
這允許你將大量代理指向特定任務,比如一個難以解決的bug——即使只有一個成功,也是值得的。
Codex雖然強大,但也有明顯的侷限性。
首先,它不是聊天產品,它位於與ChatGPT分離的介面中,明顯是圍繞特定工作流建構的:給它一個編碼任務,得到一個完成的結果。
它對後續請求處理不佳。
如果你要求它建構一個功能,然後意識到你想加入或修改它所建構的內容,後續請求是否有效完全是個賭博。
因此,它對資歷較淺的工程師不太友好,更適合小型、自包含的任務。
如果你像高級工程師一樣在腦中瞭解整個系統的工作原理,並確切知道要建構什麼,你可以將請求輸入任務框並繼續你的一天。如果你更喜歡來回聊天一段時間來確定要建構什麼以及如何完成,Codex將無法很好地工作。
此外,它還沒有與大多數工程環境(如Github和Slack)完全整合。雖然它可以向Github發佈PR,但不能響應PR上的評論告訴它需要更改什麼。
這些功能可能會隨著時間的推移而加入,但目前增加了一些使用摩擦。
Codex是OpenAI最終想要建構的統一超級助手的一部分——一個能幫助使用者輕鬆完成任務的代理,在幕後為他們選擇合適的工具。
而OpenAI似乎正從兩個角度攻克程式設計問題:
考慮到OpenAI報導收購AI編碼代理Windsurf,似乎OpenAI正從兩個角度攻克程式設計。一旦Windsurf完全整合到其生態系統中,它將提供程式設計師和AI之間緊密、協作的程式設計體驗。而Codex則是為自主委派而建構的。
這讓我不禁想起OpenAI的另一個產品Operator,它也是分離出來的獨立工具,因此使用者必須記得使用它。
由於更加專業化,它的靈活性也相對較低。
自Operator五個月前推出以來,我們還沒有看到任何重大更新——考慮到OpenAI報導收購Windsurf,我懷疑Codex是否會有同樣的命運。
OpenAI 對程式設計未來的願景是什麼?
未來開發人員可能會花更少的時間編寫常規程式碼,而花更多時間指導代理、審查他們的工作並做出戰略決策。
程式設計將變得更加社交化,讓團隊可以輕鬆地同時委派多個任務,讓人們專注於想法和協作而不是常規編碼。
而Codex 或將是是自主程式設計的下一步,但我們還需要一段時間才能知道它是否恰好是展現程式設計未來的產品。
一方面,OpenAI為高級工程師製作了一個程式設計工具並取得了成功。高級開發人員通過能夠同時啟動多個建構良好的任務獲得了不錯的生產力提升。
它還改變了編碼的體驗,如Dan所述,使用Codex進行編碼時可以分散注意力,這是一種更加社交化的程式設計模式。
但另一方面,發前所述,Codex讓我想起OpenAI的電腦使用代理Operator——它被分離成自己的工具,所以必須記得使用它。
或許,Codex 會走向和Operator 同樣的結果。
而且因為它更專業化,所以本質上更不靈活。
又或許,使用者會希望能夠在不同的任務和一天中的不同時間段之間來回切換這兩種工具。
伸手測試的結果顯示:
Kieran(已接受代理理念的技術領導者):是的,他一直在思考如何使用它。
總體評價:
如果你是技術領導者,在現有程式碼庫上加入功能或修復bug,你會想要使用它。如果你想要建立一個新的「一人十億美元SaaS公司」,去別處看看吧。
註:伸手測試"Reach Test" 是Dan Shipper提出的一個概念或測試標準,用來評估AI產品的實用性和長期價值。
AI產品長期實用性的最佳領先指標是什麼?我稱之為“伸手測試”——我是否發現自己自動轉向這個工具來完成某些任務?還是我只是把它放在架子上忘記它的存在?
簡單來說,這是一個判斷AI工具實際價值的直觀測試:如果你在需要完成特定任務時會自然而然地“伸手”去使用這個工具,說明它確實有用且融入了你的工作流程;如果你總是忘記使用它,那麼不管它多麼先進,實際價值都會有限。
這實際上是一個很實用的評估新技術工具價值的方式,關注的是使用者的自然傾向和實際使用習慣,而不僅僅是技術規格或能力。
而顯然,Codex不是一個「隨性編碼」的能通過伸手測試的工具。
我能看出它不是為了取代高級軟體工程師而建構的,而是作為他們的工具。
但無論如何,Codex的出現標誌著自主程式設計的新時代即將到來。
對於高級開發人員來說,這是一個強大的生產力提升工具;對於整個行業來說,這預示著程式設計方式的根本轉變。 (AGI Hunt)