ACP 集成

将任何兼容 ACP 的编辑器连接到 Bob Shell,作为一流的 AI 助手。

Bob Shell 可以作为 Agent Client Protocol (ACP) 服务器运行。连接后,编辑器负责管理线程界面、权限对话框和差异对比,而 Bob 负责管理运行时: 模型访问、工具、MCP 服务器和 shell 执行。

注意:

ACP 对编程智能体的作用,与 Language Server Protocol 对语言工具的作用相同:一份 JSON-RPC 契约,多个编辑器,多个智能体。本地智能体通过 stdin 和 stdout 与编辑器通信。

支持的编辑器

你可以通过 Bob Shell 连接以下编辑器:

  • Zed
  • IntelliJ IDEA
  • Neovim
  • Xcode

Xcode

将你的 Xcode ACP 智能体配置为运行 bob acp。Xcode 将以子进程方式启动该进程,并通过 stdin 和 stdout 与其通信。

注意:

Xcode 在受限环境中启动 bob acp。如果 Bob Shell 找不到项目工具,首次使用时可能需要传入 --trust。有关权衡,请参阅命令选项。

快速开始

将 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 会移除工作区访问控制和单个工具的审批。提示词可以在服务器打开的任意工作区中操作,无需进一步确认。请勿在默认编辑器配置中同时包含这两个选项。

这个主题怎么样?