AI Newsway

DoorDash代理以4.79美元、14分鐘清掉一個過期功能旗標

兩階段系統讓Sonnet負責規劃、Opus在獨立git worktree中改碼,決定什麼能上線的是品質關卡而非模型

|5分鐘閱讀0
A developer workstation with code on screen — DoorDash's agents now do the flag-removal edits engineers used to spend one to two hours on.
A developer workstation with code on screen — DoorDash's agents now do the flag-removal edits engineers used to spend one to two hours on.

DoorDash以兩階段的多代理LLM系統自動清除過期功能旗標,在50個測試案例中有45個產出了工程師核准的拉取請求,平均每個旗標花費4.79美元、耗時13.8分鐘;同樣的工作交給人力,內部基準是一到兩小時。相關成果發表於DoorDash工程師Atharv Chandratre與Jai Datar撰寫的ICSME 2026產業議程論文

重點摘要

  • 系統把50個過期旗標中的45個整理成可用的拉取請求,整體成功率90%,最複雜的案例也有85%。
  • 由Claude Sonnet擔任協調代理,透過MCP規劃每次清理;實際改動程式碼的是Claude Opus代理,一次最多四個並行,各自在獨立的git worktree中作業。
  • 在本機通過建置、測試、95%修補程式碼覆蓋率與靜態分析之前,系統不會開啟任何拉取請求。

623個儲存庫裡的死旗標為何成了維護包袱

功能旗標是一種執行期設定:它控制漸進式推出、切分實驗組,也充當人工的緊急關閉開關。功能完全上線之後,旗標就不再有存在價值,但分支邏輯仍以死重的形式留在程式碼裡,而一條沒人測試的休眠路徑可能被誤開。

讓人力難以招架的是規模。論文統計,623個儲存庫中有超過5萬6000個功能旗標,其中1659個在2025年5月處於過期狀態。DoorDash自家的工程部落格指出,平台目前的動態設定值已超過6萬個,每月還新增約2300個。作者寫道,規則式的清理工具在DoorDash的程式碼庫面前力有未逮,因為正確移除旗標需要推理周邊條件式最終收斂成什麼,而不是比對某個符號的樣式。

兩階段代理系統如何運作

第一階段是規劃。以Claude Sonnet運行的協調代理會拉取Jira工單,透過MCP查詢實驗平台上的即時推出數據,對整個儲存庫做一次語意掃描,接著輸出一份結構化的清理計畫,明確指出旗標該被換成哪個值。在任何程式碼被動到之前,工程師必須確認這個目標值——這是整個流程中唯一的人工檢查點。

第二階段是動刀。每個確認過的值配一個移除代理,以Claude Opus運行,每個儲存庫最多四個並行,各自在獨立的git worktree裡工作,避免平行改動彼此碰撞。Gradle以--no-daemon執行,防止建置狀態在worktree之間外洩,每個代理還帶有一小時的硬性逾時上限。

真正值得注意的是那些關卡。代理要開拉取請求,得先通過建置、測試套件、JaCoCo設下的95%修補程式碼覆蓋率門檻,以及Detekt靜態分析;任何一關沒過,PR就不會出現。模型分工的理由則直白地基於成本:便宜的模型負責蒐集中繼資料與規劃,昂貴的模型只留給呼叫鏈推理與實際修改。

50個旗標的評測實際說明了什麼

評測集並未挑軟柿子吃。其中包含41個布林值、6個字串與3個整數型別,並分成只動到一兩個檔案的簡單案例6件、橫跨三到五個檔案的中等案例18件,以及牽涉巢狀條件式與跨檔相依的複雜案例26件。

首輪成功率幾乎完全跟著複雜度走:簡單100%、中等94%、複雜85%。成本也是如此。簡單清理平均7.5分鐘、2.69美元,中等為10.4分鐘、3.46美元,複雜則是17.7分鐘、6.20美元。45個獲核准的拉取請求中,有14個需要一次小幅修正,另有5件必須由工程師親自接手。

失敗模式具體得足以借鑑。六次返工源於修補覆蓋率不足,八次來自移除不完整——殘留的變數,���是在呼叫鏈更深處仍然存活的參照。五次人工介入全都與呼叫鏈深度、以及參數跨介面傳遞有關,而這正是只擁有單一檔案視野的程式碼代理最不擅長的推理。

這對真正落地的代理部署說明了什麼

讀過架構就會發現模式並不陌生:以工作單位為界的隔離、範圍收得很窄的人工核准點,以及代理無法用話術繞過的機械式關卡。Cloudflare用四個拒絕共享脈絡的代理把Astro未結issue砍掉85%時,形狀完全一樣。模型選擇只是帳單上的一行,關卡才是產品本身。

就算在最糟的級距,這筆帳仍然划算:6.20美元、不到18分鐘,對上一到兩個工程師小時。要保留的是樣本規模。50個旗標是試點,不是1659個旗標的待辦清單;而成本與失敗都集中在複雜級距,那正是待辦清單的大宗。85%在面對完整佇列後是否守得住,才是值得盯的數字。

常見問題

DoorDash的清理系統用了哪些模型?

兩個,按職責拆分。Claude Sonnet協調代理負責取用Jira、以MCP查詢即時推出數據並擬定計畫;Claude Opus代理執行程式碼修改,因為呼叫鏈推理正是更強模型值回票價的地方。

什麼機制阻止代理弄壞建置?

每個代理都在隔離的git worktree中作業,且必須通過建置、測試套件、JaCoCo的95%修補覆蓋率門檻與Detekt靜態分析,才能建立拉取請求。若代理停滯,一小時的硬性逾時會將其中斷。

整個清理流程是全自動的嗎?

不是。規劃階段結束時,工程師要先確認替換值,程式碼才會開始變動,產出的拉取請求同樣要走正常審查。評測中50件也有5件需要工程師直接介入。

對這篇文章有什麼感想?

SJ
載入中...

相關文章

LLM修復程式碼時弄壞可用程式碼的次數,是真正修好次數的十倍
Developer Tools

LLM修復程式碼時弄壞可用程式碼的次數,是真正修好次數的十倍

一項arXiv研究測得LLM修復迴圈破壞正確程式的比率為0.261,修復缺陷程式的比率僅0.023,並找到了驅動這一行為的內部方向。

Seung Jung6 天前
GitHub的HydraFusion不再挑模型,而是搭一條工作流
Developer Tools

GitHub的HydraFusion不再挑模型,而是搭一條工作流

GitHub的Project HydraFusion為每個Copilot程式設計請求組裝多模型執行計劃,以單模型的簡潔為代價,換來大幅更低的成本。

Seung Jung6 天前
Meta 開源 Astryx:一套可供智慧體直接查詢的 React 設計系統
Developer Tools

Meta 開源 Astryx:一套可供智慧體直接查詢的 React 設計系統

Meta 於 6 月以 MIT 許可證釋出了 Astryx 公測版,這套 React 設計系統已在公司內部單一程式碼庫中打磨了八年。

Seung Jung6 天前
Cognition SWE-2逼近前沿僅差一分,成本低64%
Developer Tools

Cognition SWE-2逼近前沿僅差一分,成本低64%

Cognition稱SWE-2在FrontierCode 1.1 Main上得分50.0%,僅落後Fable 5.1一分,成本卻低64%,基座是一款中國開源模型。

Seung Jung9 天前
Meta 透過 MCP 把 WhatsApp Business 設定交給 Claude 與 Codex
Developer Tools

Meta 透過 MCP 把 WhatsApp Business 設定交給 Claude 與 Codex

Meta 將 WhatsApp Business 帳號設定開放給 AI 程式撰寫代理,新推出的 WhatsApp Business Tools MCP 伺服器讓 Claude Code 與 Codex 從註冊電話號碼一路處理到範本與 Webhook 設定。

Seung Jung3 天前
Claude Code Projects 回歸,化身統籌平行雲端執行緒的協調者
Developer Tools

Claude Code Projects 回歸,化身統籌平行雲端執行緒的協調者

重新設計的 Claude Code Projects 在工作執行緒之上擺了一個協調者,每條執行緒都是跑在自有分支上的完整雲端工作階段,並且共用同一份記憶。

Seung Jung前天