
AI 编程工具越来越多,但长期以来它们彼此不通:Claude Code 主要在终端里用,Codex 有自己的客户端,Cursor 的 Agent 只能在 Cursor 里跑。想把某个 Agent 放进自己习惯的编辑器,或者让几个 Agent 协作处理同一个项目,往往要做定制集成。
十几年前编程语言工具也是这个局面,每个编辑器都要自己实现语法高亮、补全和错误检查,直到微软推出 LSP(Language Server Protocol)把这层通信统一起来。现在 AI 编程领域有了类似的协议:Agent Client Protocol(ACP),目标是让任何支持 ACP 的编辑器都能用任何支持 ACP 的 Agent。
很多人第一次看到 ACP 会把它和 MCP 搞混。这篇会讲清楚 ACP 协议是什么、它和 MCP 的分工、Harness 这个概念、目前的生态,以及在 Zed 里接入 Claude Code 的配置方法。

ACP 协议是什么
Agent Client Protocol 是一个标准化的通信协议,定义了代码编辑器(客户端)和 AI 编程 Agent 之间怎么对话:会话管理、流式输出、工具调用、权限审批等。
技术上它基于 JSON-RPC,支持两种运行方式:
- 本地模式:Agent 作为编辑器的子进程运行,通过 stdio 通信;
- 远程模式:Agent 运行在云端,通过 HTTP 或 WebSocket 连接。
有了这层统一接口,就不再是“Claude Code 只能在终端用”“Cursor 只能用自己的 Agent”,而是可以在 Zed 里用 Claude Code,在其他编辑器里用 Gemini CLI,自由组合。
ACP 与 MCP 对比:一个管编辑器,一个管工具
两者都带“Protocol”,但解决的是不同方向的问题:
| 对比项 | ACP(Agent Client Protocol) | MCP(Model Context Protocol) |
|---|---|---|
| 解决什么 | 编辑器怎么和 Agent 对话 | Agent 怎么获取外部工具和数据 |
| 客户端是谁 | 编辑器 | Agent |
| 服务端是谁 | Agent | 数据库、API、文档等外部能力 |
| 典型内容 | 会话、权限审批、流式输出、diff 展示 | 工具调用、资源读取 |
| 类比 | 类似 LSP 在语言工具里的位置 | 类似给 Agent 接插件 |
两者是配合关系:编辑器通过 ACP 和 Agent 说话,Agent 通过 MCP 获取外部工具和数据,编辑器还可以把自己配置的 MCP server 转交给 Agent 使用。可以简单记成:ACP 管“人怎么和 Agent 交互”,MCP 管“Agent 怎么和外部世界交互”。
如果你在给 Agent 接 MCP 工具,权限边界的问题可以参考 Codex Hooks,异步执行与 MCP 工具接入的权限边界。

Harness:管理 Agent 生命周期的那一层
在 ACP 生态里,Harness 是一个常被提到的概念。如果说 Docker 是应用的容器,负责启动、停止、网络和存储,那么 Harness 就是 Agent 的容器,负责:
- 启动和停止 Agent 进程;
- 管理多个并发会话;
- 处理权限控制,也就是 Agent 要执行命令、读写文件时的审批流程;
- 转发 MCP 服务器配置;
- 保存、恢复和关闭会话。
编辑器只需要知道怎么和 Harness 说话,不必关心后面跑的是哪家的模型。原文举了 OpenClaw 的例子:它可以用 openclaw acp 作为 ACP harness 运行,也可以指向远程 Gateway 或绑定到某个 Agent 会话(具体参数以 OpenClaw 官方文档为准)。
ACP 生态现状:哪些 Agent 已经支持
原文写的是“30 多个 Agent”。按 ACP 官网 Agents 页面 2026 年 10 月的列表,已经超过 40 个,主流工具包括:
- Claude Agent:通过 ACP 适配器接入(基于 Claude Agent SDK,适配器项目现在在 agentclientprotocol 组织下维护);
- Codex CLI:通过 ACP 的适配器接入;
- Gemini CLI、Cursor、GitHub Copilot(public preview)、JetBrains 的 Junie;
- OpenClaw、Cline、Goose、OpenHands、OpenCode、Qwen Code、Kimi CLI、Kiro CLI 等。
客户端方面,Zed 是最早原生支持 ACP 的编辑器,JetBrains 也参与了协议推进(ACP 官网导航里同时挂着 Zed Industries 和 JetBrains)。不过很多集成还在早期,实际体验和各工具的原生客户端可能有差距。

实操:在 Zed 里通过 ACP 使用 Claude Code
Zed 的设置文件里可以用 agent_servers 声明自定义 Agent。以 Claude Code 的 ACP 适配器为例(需要先安装 npm 包 @agentclientprotocol/claude-agent-acp,它提供 claude-agent-acp 命令):
{
"agent_servers": {
"Claude Code": {
"type": "custom",
"command": "claude-agent-acp",
"args": [],
"env": {}
}
}
}
接 OpenClaw 的 Agent 也是同样写法:
{
"agent_servers": {
"OpenClaw ACP": {
"type": "custom",
"command": "openclaw",
"args": ["acp", "--session", "agent:main:main"],
"env": {}
}
}
}
保存后打开 Zed 的 Agent 面板,选择配置好的 Agent 就能开始对话,同时用上编辑器的 diff 预览、文件树和内联显示。新版 Zed 也内置了 Claude 等常用 Agent 的入口,可以先看 Agent 面板里有没有现成选项。
进阶:用 acpx 让不同 Agent 协作
acpx 是 ACP 的命令行客户端,可以让一个 Agent 调用另一个。原文的例子是让 Codex 通过 ACP 访问 OpenClaw Agent 的上下文:
acpx openclaw exec "总结一下当前项目的最新进展"
acpx openclaw sessions ensure --name codex-bridge
acpx openclaw -s codex-bridge "help me review this PR"
这样就能搭一个多 Agent 工作流:一个负责写代码,一个负责审查,一个负责测试,通过 ACP 标准接口通信,不用为每对组合写定制集成。想先从两个 Agent 分工入手,可以看 Claude Code 写,Codex 查,两个 AI 协作时先分清 4 个边界。
限制与注意事项
- 集成成熟度不一:列表里的 Agent 很多是通过适配器接入的,功能覆盖和原生客户端不完全一样,上生产工作流前先在小项目里试。
- 权限要自己把关:ACP 定义了权限审批流程,但具体放行哪些命令、文件读写范围,仍取决于编辑器和 Harness 的配置。
- 命令和参数会变:ACP 生态更新很快,适配器包名、命令和参数以各项目最新文档为准。
总结
ACP 和 MCP 不是二选一:要让编辑器接入各家 AI 编程 Agent,看 ACP;要让 Agent 调用外部工具和数据,看 MCP。实际工作流里两者通常一起用。目前 Zed 对 ACP 的支持最完整,Claude Code、Codex CLI、Gemini CLI 等主流 Agent 都能通过 ACP 接入。
如果你通过 AIGoCode 使用 Claude Code 或 Codex,换到支持 ACP 的编辑器里,接入配置照常沿用。
参考链接
- ACP 官网:https://agentclientprotocol.com/
- 协议概览:https://agentclientprotocol.com/protocol/overview
- 支持的 Agent 列表:https://agentclientprotocol.com/get-started/agents
- Claude Agent ACP 适配器:https://github.com/agentclientprotocol/claude-agent-acp