ACP 集成
将任何兼容 ACP 的编辑器连接到 Bob Shell,作为一流的 AI 助手。
Bob Shell 可以作为 Agent Client Protocol (ACP) 服务器运行。连接后,编辑器负责管理线程界面、权限对话框和差异对比,而 Bob 负责管理运行时: 模型访问、工具、MCP 服务器和 shell 执行。
ACP 对编程智能体的作用,与 Language Server Protocol 对语言工具的作用相同:一份 JSON-RPC 契约,多个编辑器,多个智能体。本地智能体通过 stdin 和 stdout 与编辑器通信。
支持的编辑器
以下编辑器支持连接到 Bob Shell 的 ACP:
- Zed
- IntelliJ IDEA
- Neovim
快速开始
将 Bob Shell 作为 ACP 服务器启动:
bob acp该进程在 stdin 上等待 JSON-RPC。请通过编辑器的 ACP 配置来启动它: 直接在终端中运行会看起来像是卡住了。
按照编辑器的 ACP 配置说明连接到 bob acp 进程。有关协议的更多信息,请参阅 ACP 规范。
身份验证
Bob 在 ACP 初始化期间进行身份验证。如果启动 bob acp 的环境中设置了 BOBSHELL_API_KEY,Bob 将使用该密钥,无需进一步操作。
没有 API 密钥或已存储令牌时,编辑器会提示你通过 SSO 进行身份验证。完成一次浏览器流程即可: Bob 会存储令牌,以便同一台机器上的后续 ACP 会话重复使用。
工作区信任
Bob 在创建会话之前检查工作区信任状态。不受信任的工作区会导致会话创建失败。要信任某个工作区,请在该目录中打开终端并以交互方式运行 Bob Shell:
cd /path/to/project
bob信任记录保存后,退出并通过编辑器重新连接。
对于临时或一次性环境,可在 ACP 参数中传入 --trust。有关权衡,请参阅命令选项。
MCP 服务器
编辑器和 Bob 都可以向会话提供 MCP 服务器。两组服务器都在同一个 Bob 会话 harness 中初始化,因此容易遗漏重复配置。
每台 MCP 服务器只设置一个所有者。如果某个 MCP 工具意外缺失,请同时检查编辑器的 MCP 设置和 Bob 的原生 MCP 配置。
每个 ACP 会话都会创建自己的 harness 及其配置的 MCP 服务器。本地 MCP 服务器可能针对每个活跃的 Bob 线程启动一次。在打开多个并行线程之前,请监控资源使用情况,尤其是当服务器启动 JVM、容器或本地模型时。
Bob Shell 与编辑器终端的对比
Bob Shell 在其自身的子进程中执行命令,而非在编辑器终端中。如果 bob acp 进程继承了不同的 PATH、工作目录或环境变量,在编辑器终端中有效的命令可能对 Bob Shell 失效。
你在运行中的编辑器终端里所做的更改(例如 cd 或 export)不会传递到 Bob Shell。如果你更新了启动环境,请重启 ACP 线程。
命令选项
从 bob acp 开始,仅在有明确原因时添加选项:
| 选项 | 说明 |
|---|---|
--log-level <level> | 设置日志详细级别:debug、info、warn、error 或 silent。也可通过环境变量 BOB_LOG_LEVEL 进行配置。 |
--trust | 信任此 ACP 服务器打开的所有工作区。此选项会移除项目级别的边界,不要将其加入永久编辑器配置。 |
--auto-approve | 批准每次工具调用,不显示权限提示。此选项比为单个工具选择始终允许更为宽泛。 |
--disable-mcp | 跳过 MCP 服务器初始化。使用此选项可隔离会话启动失败问题。 |
--disable-subagents | 当任务不需要委派时,省略 Bob 的子智能体工具注册。 |
--accept-license | 在服务器启动前记录许可证接受情况。请先运行 bob --show-license acp 查看许可证文件。 |
同时使用 --trust 和 --auto-approve 会移除工作区访问控制和单个工具的审批。提示词可以在服务器打开的任意工作区中操作,无需进一步确认。请勿在默认编辑器配置中同时包含这两个选项。