Devin 與 OpenInspect:向背景代理與自主編碼的轉變
Devin 與 OpenInspect:向背景代理與自主編碼的轉變
向背景代理的轉變
AI 編程正從 IDE 中的「手把手」走向「背景代理」——基於雲端的系統,能自主推動開發流程。關鍵的模型拐點出現在 2025 年 12 月(如 Opus 4.5 與 GPT 5.2),使得實用的「規格到 Pull Request」工作流程成為可能,代理只需極少的摩擦即可從規格直接產出完成的 PR。
在 Cognition,這一轉變帶來了合併 PR 數量的 7 倍成長,且 Devin 所貢獻的提交比例從 1 月的 16% 飆升至 3 月的 80%。
背景代理架構
打造可投入生產的背景代理,需要在兩種主要的執行環境架構模式中做選擇:
Harness In-the-Box 與 Out-of-the-Box
- Harness In-the-Box:代理直接在 sandbox 內執行。雖然管理狀態較為簡單,但因為必須將機密資訊放入 sandbox,會增加不可預測 AI 意外外洩的安全風險。
- Harness Out-of-the-Box:將「大腦」(代理的邏輯與控制平面)放在外部,而 sandbox 僅作為「手」(執行環境)。此架構較為複雜卻更安全,因為將高權限機密與代理操作的機器分離。
基礎設施與 Sandbox 要求
- 完整 VM 與 Docker:Docker 雖然在基礎設施上很有用,但完整的 VM 常常是必要的,讓代理能執行真實應用、進行嵌套虛擬化(例如 Android 模擬器),並提供真正的安全邊界。
- Repo 設定:在代理部署中最難的問題之一是「repo 設定」——確保代理擁有正確的相依性、憑證與環境,以自主執行與測試程式碼。
- 快速還原:為避免長時間的開機延遲,Cognition 開發了一種 block‑diff 檔案儲存格式,讓 VM 只處理檔案系統的差異而非整個磁碟,即可快速啟動與關閉。
測試挑戰
測試是一個獨立的問題解決挑戰,超越了單純的「電腦使用」(在螢幕上點擊座標)的能力。有效的自主測試需要代理能夠:
- 推理如何以正確的程式碼版本協調前端與後端應用。
- 觸發特定功能,這可能需要管理員權限或特定的功能旗標。
- 使用螢幕截圖與錄影驗證結果,為人類審核者提供「我知道它可行」的合併時機。
記憶與知識管理
記憶仍是一個大多未解決的檢索問題。當前的做法包括:
- 自動產生記憶:Devin 使用一套系統,向使用者建議記憶(例如「要我記得 Cole 喜歡草稿 PR 嗎?」),使用者再決定接受或拒絕。
- 記憶修剪與編輯:系統正演進至允許代理在偏好改變時編輯既有記憶。
- 檔案系統式記憶:趨勢是將記憶視為檔案系統(例如
memory.md檔案),讓代理能自行瀏覽與維護。
「Vibe Coding」與程式碼庫衰退的風險
失控的「vibe coding」——在未經嚴格審查下自動合併 AI 程式碼,會導致程式碼庫衰退。實驗顯示,這樣的程式碼庫大約只能維持兩週,之後因為重複與不一致的模式而變得難以管理。
主要風險:
- 退化為最差工程師:若工程師使用 AI 而不審核程式碼,AI 會學習這些差勁的模式並複製,導致「爛碼」指數指數成長。
- AI 程式碼味道:常見的 AI 產生模式包括過度使用 Python 的
getattr(為避免崩潰而進行獎勵駭客),以及為避免修改模組名稱而加入不必要的向後相容匯入。
背景代理的生產使用案例
除了標準的功能開發外,背景代理還被部署於:
- SRE 自動分流:代理作為警報(來自 Sentry、DataDog 等)的第一線回應者,從日誌與資料庫收集上下文,並在人工介入前提出修復 PR。
- 非工程師貢獻:產品經理(PM)或行銷團隊透過 Slack 提示直接送出快速的 bug 修復或變更。
- 客服支援:代理在完整程式碼庫上下文下分析客戶回報的 bug,提供即時技術答案或為工程團隊進行分流。
- 安全掃描:持續自主的程式碼庫安全審查。
摘要: Walden Yan(Cognition)與 Cole Murray(OpenInspect)討論了從手持式 AI 編程轉向「背景代理」的過程,這些代理能自主從規格走到 Pull Request,並強調了 2025 年 12 月的模型拐點。
標題: Devin 與 OpenInspect:向背景代理與自主編碼的轉變