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 服务器。
最后更新于