AI 程式碼代理:部署安全的開發代理團隊
自動完成建議下一行。AI 程式碼代理則完成整張工單。它們是自主代理,會讀取一則 issue、規劃工作、跨整個儲存庫編輯檔案、執行測試套件、修復出錯之處,並開啟拉取請求(pull request),而這一切都在你忙別的事情時進行。OpenLegion 運行它們的方式,就和你運行任何會執行不可信指令的程式碼一樣:每個代理在自己的容器中,握有它從不直接持有的憑證。
什麼是 AI 程式碼代理?
AI 程式碼代理是一個自主的 AI 系統,它接下一項軟體任務、規劃步驟、撰寫並編輯程式碼、執行測試與工具,並朝可運作的結果反覆迭代。它跨越許多步驟運作,而非在請求下完成單一行或單一函式。
重點摘要
- AI 程式碼代理從頭到尾完成軟體工作:規劃、撰寫、測試、審查並開啟拉取請求,而不只是建議下一行。
- 程式碼助理在編輯器中輔助人類;程式碼代理則自行執行迴圈,朝既定任務推進。
- 令人興奮的能力與危險的能力是同一件事:執行程式碼與握有儲存庫憑證。隔離並非可選項。
- OpenLegion 的 Dev Team 範本提供一個 PM、一個 Engineer 與一個 Reviewer 代理,各自在自己的容器中、擁有自己的預算。
- 它在 BSL 1.1 下可自我託管,因此程式碼代理能在你自己的網路內為私有儲存庫運行。
程式碼代理實際上做什麼
「代理」一詞把標準拉高到了「建議」之上。程式碼代理擁有一整項任務,而非單一次補全。典型的一次執行讀起來像一位資淺工程師的一個下午:
- 讀取 issue 或請求,並用自己的話重述目標。
- 探索儲存庫,找出重要的檔案並了解周邊脈絡。
- 將變更規劃為一連串的編輯與檢查。
- 跨多個檔案撰寫與修改程式碼。
- 執行建置與測試,讀取失敗,並加以修復。
- 開啟附帶說明的拉取請求,或將 diff 交給審查代理。
語言模型在每一步提供判斷;代理迴圈與工具存取則將那份判斷轉化為提交的成果。關於該迴圈的運作機制,請參閱 什麼是 AI 代理。
為何隔離就是一切
這是「自主工程師」Demo 略過的不舒服真相:一個執行程式碼的代理,按定義就是在機器上運行不可信指令;而一個推送到你儲存庫的代理,握著你最敏感的憑證。這正是那種如果由人類寫出來、你絕不會在沒有沙箱的情況下運行的工作負載。
當程式碼代理共用主機或程序時,失敗模式並非假設:
- 生成的指令抹除了預定工作區之外的檔案。
- 被提示注入的相依套件或 README 說服代理外洩機密。
- 某個代理的失控迴圈,讓另一個代理耗盡 CPU 與記憶體。
- 儲存庫 token 與雲端金鑰就放在代理可以輕易讀取的純環境變數裡。
OpenLegion 從結構上逐一封閉這些缺口。每個程式碼代理都在自己的 Docker 容器中運行,具資源上限、非 root 使用者,以及唯讀的基礎檔案系統。儲存庫 token 與 API 金鑰存放在受信任主機上的金庫代理中,並在網路層注入,因此被入侵的代理永遠看不到原始憑證。完整的模型詳述於 AI 代理安全。
多代理協作開發:Dev Team 範本
一個代理足以應付小修補。較大的工作則受益於人類團隊所倚賴的同一件事:關注點分離。OpenLegion 的 Dev Team 範本運行三個各司一職的代理:
- PM 代理 將請求轉化為具驗收標準、範圍明確的任務。
- Engineer 代理 實作每項任務,撰寫程式碼並執行測試。
- Reviewer 代理 對照標準檢查 diff,然後核准或退回。
它們透過 OpenLegion 的 編排模型 協調:共享黑板、發布訂閱事件匯流排,以及結構化交棒,控制平面中沒有任何語言模型在決定誰做什麼。每個代理都擁有自己的容器、預算與權限,因此 Engineer 能執行程式碼而 Reviewer 不能,且兩者都無法衝破自己的支出上限。
程式碼代理 vs 程式碼助理
這兩者經常被混為一談,但它們解決的是不同的問題。
| 面向 | AI 程式碼助理 | AI 程式碼代理 |
|---|---|---|
| 在哪裡運行 | 在你的編輯器內 | 作為自主程序 |
| 人類角色 | 主導每一次按鍵 | 設定目標、審查結果 |
| 範圍 | 行與函式補全 | 整項任務:規劃、編輯、測試、PR |
| 執行程式碼 | 否 | 是,在沙箱中 |
| 持有憑證 | 編輯器會話 | 金庫代理化,代理永不見原始金鑰 |
| 最適合 | 讓開發者更快 | 把一整項任務從手上卸下 |
助理讓你更快。代理則在你忙於另一件事時完成一個工作單元。多數團隊兩者都會用,而聰明的團隊知道該把哪項工作交給哪一個。
OpenLegion 的觀點
競相交付「自主軟體工程師」的浪潮,一再掩埋一個不光鮮的真相:危險的能力是程式碼執行,而危險的資產是你的儲存庫憑證。一個能執行 shell 指令並推送到你儲存庫的代理,是一道披著生產力外衣的生產安全邊界。把它當成小玩意對待:共用主機、金鑰放在環境變數、沒有預算上限,一個有用的代理就會變成一份事故報告。我們的立場很簡單:程式碼代理理應落在與任何不可信工作負載相同的隔離與憑證模型中,而這應該是預設、可自我託管且可稽核的,不是你得升級才能買到的功能。
部署一支安全的 AI 程式碼代理團隊。
常見問題
什麼是 AI 程式碼代理?
AI 程式碼代理是一個從頭到尾執行軟體任務的自主系統。給定一則 issue 或請求,它便規劃工作、探索程式碼庫、跨檔案撰寫與編輯程式碼、執行測試、修復失敗,並開啟拉取請求,自行迭代而非只完成單一建議。大型語言模型提供推理,代理迴圈加上工具存取則將那份推理轉化為提交的變更。
AI 程式碼代理與自動完成這類程式碼助理有何不同?
程式碼助理在你的編輯器內運作,加速一位主導每次按鍵的開發者。程式碼代理則作為自主程序運行:你交給它一項任務,在它自行規劃、編輯、執行與測試的同時審查結果。助理輔助迴圈中的人類;代理則把一整項任務移出迴圈。
讓 AI 代理執行程式碼並存取我的儲存庫安全嗎?
唯有搭配適當的隔離才安全。一個執行程式碼的代理正在運行不可信指令,而一個推送到你儲存庫的代理握有敏感憑證。OpenLegion 讓每個程式碼代理在自己的容器中運行,具資源限制與唯讀基礎檔案系統,並將儲存庫 token 與 API 金鑰保存在代理永不直接存取的金庫代理中。正是這層封閉,讓自主程式碼執行在生產環境中得以被接受。
AI 程式碼代理能以團隊而非單一代理運作嗎?
可以。OpenLegion 的 Dev Team 範本運行一個 PM 代理、一個 Engineer 代理與一個 Reviewer 代理,透過共享黑板與結構化交棒協調。每一個都有自己的容器、預算與權限集,因此職責與風險保持分離:Engineer 執行程式碼、Reviewer 檢查 diff,兩者都無法超出自己的支出限額。
我能在自己的基礎設施上運行 AI 程式碼代理嗎?
可以。OpenLegion 在 BSL 1.1 下原始碼可取得,並可在一台具備 Python 與 Docker 的機器上運行,因此程式碼代理能完全在你自己的網路內運作。這對私有儲存庫,以及程式碼與憑證不得離開你基礎設施的受監管環境而言至關重要。對於偏好不自行運行的團隊,也提供代管託管選項。
運行 AI 程式碼代理需要多少成本?
OpenLegion 收取固定的平台費用,對模型用量零加價。你自帶 LLM API 金鑰,或使用內含的額度,並以供應商公開的費率付款給供應商。每代理的每日與每月預算上限,可阻止卡住的代理累積無上限的帳單。代管方案每月 19 美元起,附 7 天退款保證,而自我託管引擎可在 BSL 1.1 下取得。