OpenAI ChatGPT Codex 升級:初步印象

OpenAI 最新的創新成果 Codex AI 代理,引入了一種新穎的程式碼編寫方法 – 一個由類似 ChatGPT 介面驅動的「氛圍編碼 (vibe-coding)」環境。 雖然這個概念最初可能看起來像個噱頭,但這個全新 Codex 代理的能力卻令人印象深刻。

OpenAI 已將 Codex 標記為研究預覽版,表明它仍在積極開發中。 目前,只有 ChatGPT Pro、Enterprise 和 Team 等級的訂閱者可以使用它,並計劃在不久的將來將可用性擴展到 Plus 和 Edu 用戶。

根據 OpenAI 的公告,Codex 這個名稱自 2021 年以來就與不斷發展的編碼工具相關聯。 在本次討論中,「Codex」指的是新發布的版本。

Codex 位於 OpenAI 的伺服器上,並與 GitHub 儲存庫整合。 演示表明,Codex 作為團隊中的另一位程式設計師發揮作用。

它可以被指示解決一系列錯誤並執行任務。 它還會尋求對程式碼修改的批准,儘管它似乎能夠自主修改程式碼。

Codex 可以分析和修改程式碼、識別具體問題、查明需要改進的領域,並執行其他程式碼編寫和維護任務。 每個任務都會啟動一個新的虛擬環境,使 AI 能夠處理從概念和設計到單元測試的所有事情。

編碼的典範轉移

這標誌著程式碼編寫典範的真正轉變。 早期的人工智慧程式碼編寫輔助主要包括自動完成功能,根據現有程式碼自動產生程式碼行或程式碼塊。

該技術已發展到人工智慧可以編寫或除錯小段程式碼的程度。 這正是我特別感興趣的 ZDNET 程式設計測試方面。

人工智慧的另一個作用是分析整個系統。 最近,我探索了一種新的 Deep Research 工具,它可以解構整個程式碼庫,並提供程式碼審查和建議。

Codex 現在達到了一個程度,即整個程式設計任務都可以委託給雲端中的人工智慧,類似於將任務委託給團隊中的其他程式設計師或學習程式碼維護的初級程式設計師。

OpenAI 將此描述為「代理原生軟體開發,人工智慧不僅在你工作時為你提供協助,還能獨立承擔工作」。

發布影片展示了 Codex 同時管理多個任務的能力,每個任務都在一個單獨的、隔離的虛擬環境中運行。

程式設計師將任務分配給代理,然後代理獨立執行工作。 完成後,代理會提供測試結果並建議程式碼變更。

演示的特色是 Codex 執行錯誤修復、掃描錯字、提供任務建議,以及執行專案範圍內的重構(修改程式碼以改進結構而不改變行為)。

資深開發人員和設計師熟悉闡明需求和審查他人工作。 使用 Codex 不會為他們帶來重大改變。 然而,缺乏強大需求闡述和審查技能的開發人員可能會發現管理 Codex 具有一定的挑戰性。

儘管如此,如果該工具的效能如演示所展示的那樣,Codex 將使較小的團隊和單獨的開發人員能夠實現更多目標、減少重複性任務,並更有效地回應問題報告。

潛在的陷阱和緩解策略

早期使用 ChatGPT 的程式碼編寫功能的經驗表明,它傾向於失去焦點或偏離預期方向。 雖然這對於單獨的程式碼塊來說並非災難性的,但如果允許一個程式碼編寫代理在有限的監督下運行,則可能會導致意想不到的、有問題的後果。

為了應對這個問題,OpenAI 訓練 Codex 遵守 AGENTS.md 檔案中概述的指示。 該檔案位於儲存庫中,使程式設計師和團隊能夠指導 Codex 的行為。 它可能包含關於命名慣例、格式規則以及在整個程式碼編寫過程中所需的任何其他一致性指南的指示。 它本質上將 ChatGPT 的個人化設定擴展到一個以儲存庫為中心的團隊環境。

此外,OpenAI 還推出了一個名為 Codex CLI 的 Codex 版本,它在開發人員的機器上本地運行。 與基於雲端的 Codex 以非同步方式運行並在完成後提供報告不同,本地版本透過程式設計師的命令列運行並以同步方式運行。

本質上,程式設計師輸入一條指令,然後等待 Codex CLI 流程傳回結果。 這使程式設計師能夠離線工作,利用其活動開發機器的本地環境。

具有潛在前景的研究原型

演示令人印象深刻,但開發人員強調,他們所展示和發布的是一個研究原型。 雖然它提供了他們所說的「神奇時刻」,但它仍然需要大量的開發。

我一直在努力理解這種技術對開發的未來和我自己的開發過程的具體影響。 我的主要產品是一個開放原始碼的 WordPress 外掛程式,帶有專有的附加外掛程式。 Codex 有可能分析開放原始碼核心外掛程式的公開儲存庫。

然而,Codex 能否管理一個公開儲存庫和多個私有儲存庫之間的關係,作為單個整體專案的一部分? 當測試不僅涉及我的程式碼,還涉及啟動一個完整的額外生態系統 – WordPress – 來評估效能時,它的表現如何?

作為一個單獨的程式設計師,我認識到像 Codex 這樣的工具的潛在好處。 即使是每月 200 美元的 Pro 訂閱也可能物有所值。 假設我可以從中獲得有形的、可貨幣化的價值,那麼聘請一位人類程式設計師的成本將會高得多。

作為一個經驗豐富的團隊管理者和溝通者,我能夠放心地將任務委託給像 Codex 這樣的工具。 它與透過 Slack 與團隊成員溝通沒有太大的區別。

與僅僅允許 Codex 在我的程式碼中自由運行相比,Codex 提供建議、草擬版本並等待我的批准,這一事實提供了一種安全感。 這為一個新的開發生命週期開啟了有趣的可能,在這個生命週期中,人類定義目標,人工智慧草擬潛在的實施方案,然後人類批准或將人工智慧重新導向另一次疊代。

未解答的問題和未來的影響

根據我之前使用 AI 進行程式碼編寫的經驗,Codex 有可能縮短維護時間並加速向使用者交付修復程式。 然而,它在根據規格文件新增新功能方面的有效性仍不清楚。 同樣,在 Codex 實施後修改功能和效能的難度還有待確定。

值得注意的是,人工智慧程式碼編寫正在多家公司以相似的速度發展。 我很快將發表另一篇關於 GitHub Copilot 的 Coding Agent 的文章,它與 Codex 具有一些相同的功能。

在那篇文章中,我表達了對這些程式碼編寫代理可能會取代初級和入門級程式設計師的擔憂。 除了對人類工作崗位的影響之外,如果我們將開發人員職業生涯的中間階段委託給 AI,那麼可能會失去關鍵的培訓機會的問題也存在。

軟體產業的「前往未知之地」

迪士尼的《冰雪奇緣 2》中有一首名為「前往未知之地 (Into the Unknown)」的歌曲,由伊迪娜·門澤爾 (Idina Menzel) 演唱。 這首歌反映了主角在維持現狀和冒險「進入未知之地」之間的內在衝突。

隨著代理軟體開發的出現,而不僅僅是人工智慧程式碼編寫,整個軟體產業都在踏上「進入未知之地」的旅程。 隨著我們越來越多地依賴基於人工智慧的系統來開發我們的軟體,熟練的維護人員數量可能會減少。 只要人工智慧繼續有效地運作並保持可訪問性,這是可以接受的。 然而,我們是否允許必要的技能萎縮,並為了委託給一個尚未具有感知能力、基於雲端基礎設施的便利而犧牲高薪工作?

時間會揭示答案,但願這個啟示不會發生在我們沒有時間的時候。

您會考慮將真正的開發任務委託給像這樣的工具嗎? 您認為這對軟體團隊或個人開發人員會產生什麼長期影響? 隨著越來越多的程式碼生命週期委託給 AI,您是否擔心失去關鍵技能或角色?