代理客户端协议 (ACP) 标准化了编码代理与代码编辑器或集成开发环境之间的通信。 通过 ACP 协议,您可以在任何兼容 ACP 的客户端中使用您的自定义深度代理,让您的代码编辑器能够提供项目上下文并接收丰富的更新。
ACP 专为代理与编辑器的集成而设计。如果您希望代理调用由外部服务器托管的工具,请参阅 模型上下文协议 (MCP)。

快速入门

安装 ACP 集成包:
然后,通过 ACP 暴露一个深度代理。 这会以标准输入输出模式启动一个 ACP 服务器(它从标准输入读取请求,并将响应写入标准输出)。在实际应用中,您通常将其作为由 ACP 客户端(例如,您的编辑器)启动的命令运行,然后客户端通过标准输入输出与服务器进行通信。
您也可以使用命令行界面,无需编写任何代码:

npm 上的 Deep Agents ACP

deepagents-acp 包提供了命令行界面和编程接口,用于通过 ACP 暴露深度代理。

客户端

深度代理可以在任何能运行 ACP 代理服务器的地方工作。一些值得关注的 ACP 客户端包括:

Zed

通过将您的深度代理添加到 Zed 设置中(Linux 系统在 ~/.config/zed/settings.json,macOS 系统在 ~/Library/Application Support/Zed/settings.json),将其注册到 Zed: 简单设置(无需代码):
使用 CLI 选项:
自定义服务器脚本: 如需更多控制,可以创建一个 TypeScript 服务器脚本:
然后让 Zed 指向它:
打开 Zed 的 Agents 面板,开始一个 Deep Agents 线程。

ACP 注册表

Deep Agents 已在 ACP 代理注册表 中可用,支持在 Zed 和 JetBrains IDE 中一键安装。当 ACP 客户端支持注册表时,用户可以无需任何手动配置即可发现并安装 Deep Agents。

命令行界面参考

命令行界面是启动 ACP 服务器最快的方式。它无需代码——只需运行 npx deepagents-acp 并连接您的编辑器。

环境变量

编程接口

startServer

一个便捷函数,可在一次调用中创建并启动服务器:

DeepAgentsServer

如需完全控制,可直接使用 DeepAgentsServer 类:

服务器选项

代理配置

自定义

多代理

您可以从单个服务器暴露多个代理。ACP 客户端在创建会话时选择使用哪个代理:
一些 ACP 客户端(如 Zed)目前不提供用于选择代理的用户界面。在这种情况下,可以考虑为每个代理运行独立的服务器实例。

斜杠命令

服务器向 IDE 注册了内置的斜杠命令:/plan、/agent、/ask、/clear 和 /status。您也可以为每个代理定义自定义命令:

人在回路 (Human-in-the-loop)

使用 interruptOn 在代理运行敏感工具之前,要求在 IDE 中获得用户批准:
当代理调用受保护的工具时,IDE 会提示用户允许或拒绝该操作,并提供选项以记住本次会话的决定。

自定义工具

自定义后端

技能与记忆

有关协议细节和编辑器支持,请参阅上游 ACP 文档: