AI News HubLIVE
站内改写2 分鐘閱讀

OpenAI Codex技術主管的AI輔助工程實踐

Michael Bolin,OpenAI Codex技術主管,分享了其簡單直接的AI輔助工程工作流程:編寫規範、簡單提示、審查程式碼。他透過Notion文件管理需求,利用Codex的Notion聯結器自動讀取上下文,將工作拆分為適當大小的PR,並讓Codex自動處理合併衝突和CI監控。該方法強調程式碼評審質量和快速迭代。

來源Hacker News AI作者: gregorojstersek

近日,我有幸訪問了OpenAI在舊金山的辦公室,並與OpenAI Codex開源倉庫(Codex CLI)的技術主管Michael Bolin進行了深入交流。Bolin曾是Meta的傑出工程師,建立了開源構建工具Buck,還參與過Google Calendar的開發,並撰寫了《Closure: The Definitive Guide》一書。他向我詳細介紹了他的AI輔助工程工作流程,其簡潔性令人驚訝。他的核心方法包括三個步驟:編寫規範、給出簡單提示、審查程式碼。他不依賴複雜的工作流,而是依靠清晰思考、良好判斷和快速迭代。

Bolin最近負責的專案是在Codex CLI中構建許可權系統,主要面向企業使用者。企業客戶既需要豐富的功能,也需要對功能的使用設定許可權限制,同時確保AI的行為被嚴格限制在允許的範圍內。為此,團隊還加強了沙箱功能。該專案耗時數月,規模較大。

專案啟動時,Bolin在Notion文件中編寫了詳細的技術規範,描述所需的功能和需求。他邀請團隊成員審閱並提出意見,經過多輪討論和修改,最終確定了設計方案。進入實現階段後,由於Codex已經支援Notion聯結器,Bolin只需將Notion文件的URL貼上到Codex中並說“我要構建這個”,Codex就能自動讀取需求、評論和討論歷史。Bolin非常欣賞這一功能,因為它省去了手動複製貼上上下文的麻煩。

Bolin首先要求Codex制定計劃,將整個工作分解為若干大小合適的拉取請求(PR)。他明確表示不希望出現超過2000行的PR,因為人類仍需進行程式碼審查,過大的PR會嚴重影響審查體驗。Codex最初生成了大約6個PR。團隊依次進行審查、測試、解決合併衝突並持續最佳化。

關於合併衝突的處理,Bolin指出Codex在這方面比他更有紀律性。他建立了一套處理合併衝突的技能(即一組指令),當並行修改導致檔案衝突時,他可以放心地讓Codex一致地處理這些工作。

Bolin還強調了保持PR程式碼規模適中的重要性。他經常提醒Codex,程式碼需要由人類審查,因此更改應分解為可審查的大小。有時他會明確指定如何拆分,有時則詢問Codex的最佳分解方式。此外,他還非常依賴引用相關的PR,因為相關PR中包含程式碼、討論、評論和決策,為Codex提供這些上下文可以顯著提升其理解和輸出質量。他提到,過去他會拒絕他人提交的過大PR並引發爭論,但現在藉助AI工具,可以輕鬆要求Codex拆分PR,從而更好地貫徹良好的審查實踐。

Bolin偏好讓Codex直接建立PR(即代理式PR),而不是大多數工程師偏好的與AI協作建立PR的方式。他解釋這是因為他們的CI任務需要15到20分鐘才能完成,他希望儘快啟動CI。此外,他們還開發了“PR保姆”或“CI保姆”技能,一旦PR建立,Codex會自動監視失敗並做出反應。他經常告訴Codex不要在本地執行大部分測試,因為CI會在Mac、Linux和Windows上全面執行。這樣可以避免本地機器因執行多個測試套件而消耗大量計算資源,從而影響生產力。

代理式PR使他能夠同時處理多個任務,而不僅僅是一兩個。Bolin的實踐表明,AI輔助工程的關鍵在於清晰的規範、合適的PR大小、自動化CI監控以及高質量的程式碼審查。這一簡單直接的方法,結合出色的基礎技能,能夠產生強大的效果。