![]()
Codex已深入OpenAI各大技術團隊的日常工作,包括安全、產品工程、前端、API、基礎設施和性能工程等
本文基于對OpenAI工程師的訪談和內部使用數據,匯編了多個用例和最佳實踐,展示Codex如何幫助團隊更快地行動、提高工作質量,并大規模地管理復雜性
https://cdn.openai.com/pdf/6a2631dc-783e-479b-b1a4-af0cfbd38630/how-openai-uses-codex.pdf
![]()
7大核心用法 用法一:代碼理解
Codex幫助我們的團隊在新員工入職、調試或調查事故時,快速熟悉代碼庫的陌生部分。
工程師們常用Codex來定位功能的核心邏輯、梳理服務或模塊間的關系,并追蹤系統中的數據流。它還能揭示架構模式或缺失的文檔,而這些通常需要大量手動工作才能生成。
在事故響應期間,Codex通過揭示組件間的交互或追蹤故障狀態在系統間的傳播路徑,幫助工程師快速進入新的代碼領域
團隊成員分享:
性能工程師, 檢索系統: “修復一個bug時,用‘提問模式’(Ask mode)看看代碼庫里還有哪些地方可能出現同樣的問題。”
網站可靠性工程師, API平臺: “值班時,我會把堆棧跟蹤粘貼進去,然后問Codex認證流程在哪里。它能直接跳轉到正確的文件,讓我可以快速進行分類處理。”
DevOps工程師, 基礎設施服務: “對于‘我該在哪里做這件事?’這類跨Terraform和Python倉庫的問題,Codex的回答比grep快得多。”
示例提示:
這個倉庫中的認證邏輯是在哪里實現的?
總結一下請求是如何從入口點到響應流經這個服務的。
哪些模塊與 [插入模塊名] 交互,故障是如何處理的?
用法二:重構與遷移
Codex常被用于執行跨多個文件或包的變更。例如,當工程師更新API、更改模式實現方式或遷移到新的依賴項時,Codex可以輕松地保證變更的一致性。
當同一更新需要在數十個文件中進行,或者更新需要感知那些無法用正則表達式或查找替換輕松捕捉的結構和依賴關系時,它尤其有用。
工程師們也用它來進行代碼清理,比如將過大的模塊拆分成小塊、用現代模式替換舊模式,或為更好的可測試性準備代碼。
團隊成員分享:
后端工程師, ChatGPT Web: “Codex把所有舊的getUserById()調用都換成了我們新的服務模式,然后打開了PR。這在幾分鐘內就完成了,而手動做的話需要幾個小時。”
產品工程師, ChatGPT Enterprise: “為了清除上線阻礙,我讓Codex掃描舊模式的每一個實例,用Markdown總結其影響,然后直接用修復方案打開PRs。”
示例提示:
按功能將此文件拆分為獨立的模塊,并為每個模塊生成測試。
將所有基于回調的數據庫訪問轉換為async/await模式。
用法三:性能優化
Codex被用于識別和解決性能瓶頸。
在性能調優或可靠性工作中,工程師會提示Codex分析緩慢或內存密集型的代碼路徑,如低效循環、冗余操作或高成本查詢,并建議優化方案,這通常會帶來顯著的效率和可靠性提升
Codex還通過識別仍在使用的高風險或已棄用的模式來支持代碼健康。團隊依靠它來幫助減少長期技術債務并主動預防回歸。
團隊成員分享:
基礎設施工程師, API可靠性: “我用Codex掃描重復的高成本數據庫調用。它非常擅長標記熱點路徑和起草批處理查詢,我稍后可以對其進行微調。”
平臺工程師, 模型服務: “Codex非常適合快速發現性能問題——我花5分鐘寫一個prompt,就能節省30分鐘的工作量。”
示例提示:
優化此循環以提高內存效率,并解釋為什么你的版本更快
在此請求處理程序中找到重復的高成本操作,并建議緩存機會
建議一種更快的方式來批量處理此函數中的數據庫查詢。
用法四:提升測試覆蓋率
Codex幫助工程師更快地編寫測試,尤其是在覆蓋率很低或完全缺失的地方
在修復bug或進行重構時,工程師經常要求Codex建議能夠覆蓋邊緣案例或潛在失敗路徑的測試。對于新代碼,它可以根據函數簽名和周圍邏輯生成單元測試或集成測試
Codex在識別邊界條件方面特別有用,例如空輸入、最大長度或不尋常但有效的狀態,這些在初步測試中常常被忽略。
團隊成員分享:
前端工程師, ChatGPT Desktop: “我讓Codex在夜間處理低覆蓋率的模塊,早上醒來就能看到可運行的單元測試PRs。”
后端工程師, 支付與賬單: “在單一代碼庫(mono-repo)里切換分支很痛苦,所以我讓Codex編寫測試并啟動CI,而我則繼續在我的分支上工作。”
示例提示:
為此函數編寫單元測試,包括邊緣案例和失敗路徑
為此排序工具生成一個基于屬性的測試
擴展此測試文件,以覆蓋關于null輸入和無效狀態的缺失場景。
用法五:提升開發速度
Codex通過加速開發周期的開始和結束階段,幫助團隊更快地行動。
在啟動新功能時,工程師用它來搭建樣板代碼——生成文件夾、模塊和API存根,從而快速獲得可運行的代碼,無需手動連接每個部分。
當項目接近發布時,Codex通過處理一些雖小但必不可少的任務來幫助滿足緊張的截止日期,例如分類bug、填補最后的實現空白,以及生成部署腳本、遙測鉤子或配置文件。
它也被用來將產品反饋轉化為初始代碼。工程師經常粘貼用戶請求或規格說明,讓Codex生成一個可以后續返回并完善的草稿。
團隊成員分享:
產品工程師, ChatGPT Enterprise: “我開了一整天的會,但仍然合并了4個PRs,因為Codex在后臺幫我工作。”
全棧工程師, 內部工具: “Codex完美地幫助我們交付了3-4個低優先級的修復,這些修復本來可能會在待辦事項列表中被擱置,這感覺非常有賦能感。”
示例提示:
為 POST /events 搭建一個新的API路由,包含基本的驗證和日志記錄
為跟蹤新用戶引導流程的成功/失敗生成一個遙測鉤子,使用這個模板 [插入你的遙測代碼示例]
基于此規格說明創建一個存根實現:[插入規格說明或產品反饋]
用法六:保持心流
當工程師的日程被碎片化和中斷填滿時,Codex幫助他們保持生產力。
它被用來捕捉未完成的工作、將筆記轉化為可工作的原型,或分拆出可供日后回顧的探索性任務。這使得暫停和恢復工作變得更加容易,而不會丟失上下文,尤其是在他們需要值班或會議繁多的時候。
團隊成員分享:
后端工程師, ChatGPT API: “如果我發現一個可以順手修復的問題,我會創建一個Codex任務,而不是切換分支。等我有空時再審查它的PR。”
API工程師, 基礎設施可觀測性: “我習慣性地將Slack話題、Datadog追蹤、問題單等轉發給Codex,這樣我就可以專注于高優先級的工作。”
示例提示:
生成一個重構此服務的計劃,并將其拆分為更小的模塊
為重試邏輯創建存根,并添加一個TODO——我稍后會填寫退避邏輯
總結這個文件,這樣我明天就知道該從哪里繼續了
用法七:探索與構思
Codex對于開放式工作也很有用,比如尋找替代解決方案或驗證設計決策。你可以提示它提供解決問題的不同方法、探索不熟悉的模式,或對假設進行壓力測試。這有助于揭示權衡、擴展設計選項,并使實現選擇更加清晰
它還被用來識別相關的bug。給定一個已知問題或已棄用的方法,Codex可以在代碼中識別其他地方的類似模式,從而更容易地捕獲回歸或完成清理工作
團隊成員分享:
產品工程師, ChatGPT Desktop: “Codex幫助我解決了冷啟動問題——我粘貼一個規格說明和一些文檔,它就能搭建出代碼框架或指出我遺漏了什么。”
性能工程師, 檢索系統: “修復一個bug后,我會問Codex類似的問題可能潛伏在哪里,然后創建后續任務。”
示例提示:
如果系統是事件驅動而不是請求/響應模式,這個功能會如何工作?
找出所有手動構建SQL字符串而不是使用我們查詢構建器的模塊
用更函數式的風格重寫此代碼,避免突變和副作用
最佳實踐
當獲得結構、上下文和迭代空間時,Codex的效果最好。以下是OpenAI團隊為在日常工作中持續獲得價值而培養的一些習慣
1.從“提問模式”開始 (Start with Ask Mode)
對于大型變更,先提示Codex生成一個實現計劃(使用Ask模式),這個計劃隨后會成為你切換到Code模式時后續提示的輸入。這種兩步流程能讓Codex的輸出更有根據,并有助于避免錯誤。Codex最適合處理那些需要你或團隊成員花費大約一小時或幾百行代碼來完成的、范圍明確的任務。隨著模型的改進,它能承擔的任務規模有望增加
2.迭代式改進Codex的開發環境
設置啟動腳本、環境變量和網絡訪問能顯著降低Codex的錯誤率。在運行任務時,注意那些可以在Codex環境配置中糾正的構建錯誤。這可能需要幾次迭代,但從長遠來看會帶來顯著的效率提升
3.像寫Github Issue一樣構建你的提示
當提示模仿你描述PR或Issue的方式時,Codex的響應會更好。這意味著在相關時要包含文件路徑、組件名稱、diffs和文檔片段。使用像“用[模塊X]中的同樣方式實現這個”這樣的模式可以改善結果
4.將Codex任務隊列用作輕量級待辦事項列表
分派任務來捕捉切題的想法、部分完成的工作或偶然發現的修復。沒有必要一次性生成一個完整的PR。Codex可以作為一個暫存區,當你重新集中注意力時可以隨時返回。
5.使用 AGENTS.md 提供持久上下文
維護一個AGENTS.md文件,以幫助Codex在你的倉庫中跨多個提示更有效地操作。這些文件通常包含命名約定、業務邏輯、已知的怪癖,或Codex無法僅從代碼中推斷出的依賴關系
6.利用“N選最佳” (Best of N) 提升輸出質量
“N選最佳”功能允許你為單個任務同時生成多個響應,以便快速探索多種解決方案并選擇最佳方案。對于更復雜的任務,你可以審查多個迭代版本,并結合不同響應的部分來獲得更強的結果
source:
https://cdn.openai.com/pdf/6a2631dc-783e-479b-b1a4-af0cfbd38630/how-openai-uses-codex.pdf
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.