ACP Agent
AI 功能是可選的。沒有配置 Agent 時,其餘功能完全不受影響;配置之後,Agent 也只在你主動請求時工作。
配置
在「設置 → AI」裏添加一個 Agent 配置:
- 命令與參數 — Agent 可執行文件與啓動參數;
- 模型 — 有些 Agent 提供模型選擇,不填就使用它自己的默認值;
- 環境變量名 — 只保存變量名,值存在系統憑據庫,不寫入設置文件。
應用會掃描 PATH,也會掃描 GUI 啓動時容易漏掉的目錄(例如 Homebrew、~/.local/bin),並可以運行一次只握手、不提問的探測,報告 Agent 的身份、可用模型與登錄方式。Agent 的登錄憑據由它自己管理。
能做什麼
| 場景 | 結果 |
|---|---|
| 起草提交信息 | 生成的信息只寫進提交框,仍需你確認後提交 |
| 解釋 diff | 在檢視器裏解釋當前改動 |
| 審閲選中變更 | 按目錄彙總的變更地圖,加上二進制、密鑰、生成文件等規則提示 |
| 審閲分支 | 審閲 base...HEAD 之間的出站提交,指出問題並標註無法核對的位置 |
| 衝突建議 | 針對單個文件的衝突塊逐塊給出替換建議 |
每次發送什麼
請求會先算出一個範圍,並在確認框裏列出來:
- 文件數、總字節數;
- 二進制文件與衝突文件會被排除;
- 單文件截斷到 16 KiB,最多 40 個文件,提示總預算 96 KiB;
- 提交信息請求還會帶上倉庫路徑、分支名與最近 5 條提交標題;
- 分支審閲只列出該範圍內變更的文件與 diff。
審閲結束後返回一份回執:範圍、內容摘要、逐文件摘要,以及使用的 Agent 與模型。範圍(HEAD 或基準)變化後,回執會標為過期,不會把舊結論當成當前結論。
只讀邊界
Agent 在協議層就沒有寫權限:
- 允許讀文件(
fs/readTextFile),不允許寫文件; - 不提供終端能力;
- 權限請求會彈出確認框,默認拒絕;關閉彈窗或超時同樣視為拒絕,命令參數不會被自動批准;
- Agent 不會暫存、提交或推送。
所以無論 Agent 建議什麼,改動倉庫的仍是你的操作。
信任邊界
ACP 不是操作系統級沙箱。 應用能限制發給 Agent 的內容,也能在審閲時把它的讀取範圍限定在選中的路徑,但 Agent 是獨立進程:
- 它可以訪問網絡,具體去向由它自己與你的配置決定;
- 它可能讀取倉庫中的其他文件;
- 它運行的模型可能由第三方託管。
只連接你信任的 Agent。如果 diff 中可能出現憑據,發送前應用會單獨提示。
會話與取消
- 每個倉庫保持一個會話,連續請求可以複用上下文;
- 切換配置或 Agent 進程退出時會重建會話;某一輪失敗且沒有任何輸出時會重啓一次;
- 請求可以取消,已經收到的文本會保留;
- 應用退出時終止它啓動的 Agent 進程。
本地自動化是另一條獨立通道,見本地 MCP 服務器。
最後更新於