agent-client-protocol
编辑器与AI智能体之间的通用通信协议,让不同AI编程工具实现跨平台互操作
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
编辑器与AI智能体之间的通用通信协议,让不同AI编程工具实现跨平台互操作
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你同时用着 Zed 写 Rust、用 IntelliJ 写 Java、用 VS Code 写 Python,每个编辑器里都想接入最新的 AI 编程助手——但 Claude Code 只能在 VS Code 里跑,Gemini CLI 只认自己的编辑器,JetBrains 的 AI 助手又是另一套 API。你想换一个更好的编辑器?对不起,AI 能力没法跟着你走。
这就是 2024 年 AI 编程工具的真实写照。AI Agent(如 Claude Code、Cursor Agent、Copilot Agent)和代码编辑器之间存在严重的「锁定效应」——每个编辑器都要自己实现一遍 Agent 通信逻辑,每个 Agent 也要适配每个编辑器的协议。一旦你习惯了某个编辑器的 AI 体验,想换编辑器就得从头适应。
Agent Client Protocol(ACP) 正是为了解决这个问题而生。它由代码编辑器公司 Zed Industries 联合 Google、JetBrains 于 2025 年共同发起,目标是成为 AI 编程 Agent 领域的 LSP(Language Server Protocol)——就像 LSP 让任何编辑器能接入任何语言的语法分析器一样,ACP 让任何编辑器能接入任何 AI 编程 Agent。
这个项目目前已有 3290+ GitHub Stars,获得了 Google Gemini CLI、JetBrains IDE、Claude Code(Zed 内置)、AionUi(开源本地 GUI)等多个知名产品的官方支持,被 The Register 评价为「打破 VS Code 垄断」的关键力量。
图1:ACP 官网 Banner(来源:zed.dev)
ACP 是一个基于 JSON-RPC 2.0 的通信协议,定义了编辑器(ACP Client)和 AI Agent(ACP Agent)之间的消息格式和行为规范。
图2:ACP 架构图(来源:GitHub 仓库 docs/images/)
从源码结构来看,ACP v1/v2 版本的 Rust 实现(src/v1/ 和 src/v2/ 目录)揭示了其核心模块组成:
| 模块 | 文件 | 功能 |
|---|---|---|
| agent.rs | agent.rs(约 225KB) | Agent 侧的核心实现,处理来自编辑器的请求、工具调用和结果返回 |
| client.rs | client.rs(约 90KB) | 编辑器侧(Client)的连接管理、会话生命周期 |
| tool_call.rs | tool_call.rs(约 23KB) | 工具调用协议,支持 Agent 调用外部工具 |
| content.rs | content.rs(约 21KB) | 内容表示:消息、差异编辑(diff)、文件内容 |
| elicitation.rs | elicitation.rs(约 64KB) | 用户交互:多选项确认、确认提示等主动征询机制 |
| mcp.rs | mcp.rs(约 12KB) | MCP(Model Context Protocol)兼容层,实现协议桥接 |
| nes.rs | nes.rs(约 90KB) | NES(Network Edition Sessions)远程会话管理 |
| error.rs | error.rs(约 13KB) | 错误类型定义 |
| plan.rs | plan.rs(约 17KB) | 计划操作:分解任务、步骤跟踪 |
其中 agent.rs 是最大的单个文件(225KB),体现了 ACP 的设计哲学——把复杂逻辑下沉到协议层,让编辑器侧和 Agent 侧的实现者无需关心底层细节,只需遵循 JSON-RPC 接口规范即可。
值得注意的是,ACP 并不打算替代 MCP(Model Context Protocol),两者是互补关系:
从 src/mcp.rs 的存在可以看出,ACP 专门提供了 MCP 兼容层,让已有的 MCP 服务器可以直接被 ACP Agent 调用。这意味着开发者不需要在 MCP 生态和 ACP 生态之间二选一——用 ACP 连接 Agent,用 MCP 连接工具,可以同时享受两者的生态优势。
一个协议标准能否成功,很大程度上取决于有多少 SDK 实现。ACP 官方维护了 5 种语言 的 SDK:
| 语言 | 包名 | 地址 |
|---|---|---|
| Rust | agent-client-protocol (crates.io) | 内置于本仓库 |
| Python | @agentclientprotocol/python-sdk | agentclientprotocol/python-sdk |
| TypeScript | @agentclientprotocol/sdk (npm) | agentclientprotocol/typescript-sdk |
| Kotlin | acp-kotlin | agentclientprotocol/kotlin-sdk |
| Java | java-sdk | agentclientprotocol/java-sdk |
从 package.json 可以看到 npm 包的发布配置,以及构建工具链:Rust 负责协议核心定义和 JSON Schema 生成,npm 包负责文档生成和格式化检查,Python 脚本 (generate_registry_docs.py) 负责从 schema 自动生成注册表文档。这套 CI/CD 流程保证了多语言实现与协议定义的一致性。
以 Zed 编辑器为例,接入 ACP 后,用户可以在 Zed 内直接使用 Google Gemini CLI 作为 AI 助手。这意味着:即使 Zed 官方不提供 Gemini 支持,用户也能自主选择喜欢的 Agent。协议层的解耦让编辑器的 AI 能力不再受限于官方合作。
2025 年 10 月,JetBrains 宣布与 Zed 合作,采用 ACP 作为 JetBrains IDE 接入 AI Agent 的标准协议。JetBrains 用户可以在 IntelliJ IDEA、PyCharm 等 IDE 中使用 Claude Code 等 Agent,而无需等待 JetBrains 官方集成。
AionUi 是一个免费、开源、本地运行的 GUI 应用,专门为 ACP 提供了适配层,支持 Gemini CLI 等开源 Agent 在完全离线的环境下运行。对于数据隐私敏感的企业场景,这是一个重要的部署选项。
ACP 面临的最大挑战是 MCP 生态的先发优势。MCP 由 Anthropic 发起,已经积累了数千个社区工具服务器和成熟的开发者生态。ACP 要在编辑器生态中复制这一成功,需要更多主流编辑器(如 VS Code)的官方支持。目前 VS Code 尚未宣布支持 ACP,这是该协议推广的最大不确定性因素。
从 Cargo.toml 可以看到,当前版本为 0.13.5,协议本身也发布了 v1 和 v2 两个并行版本。v2 模块包含了一个 272KB 的 conversion.rs 文件,专门处理 v1 到 v2 的协议转换,说明协议演进过程中存在兼容性维护的代价。开发者在使用时需要关注协议版本协商(protocolVersion 字段)。
ACP 协议本身虽然清晰,但其配套的 SDK 体系(5 种语言)和 schema 生成工具链对于新手来说有一定门槛。README 文档相对简洁,更详细的文档需要访问独立的 docs.rs 和 agentclientprotocol.com。
ACP 的出现代表了 AI 编程工具发展的一个重要趋势:从「AI 选编辑器」到「编辑器选 AI」的范式转变。
在 LSP 出现之前,每个编辑器的语法分析、代码补全、跳转到定义等功能都要自己做。LSP 出现后,编辑器变成了「壳」,语言服务器是插件,整个生态实现了高效分工。如今 ACP 正在将类似的分工逻辑引入 AI Agent 领域。
从增长数据来看,该项目在 8 个月内获得了 3000+ Stars,并在 Hacker News 上获得了 281 个 upvotes,社区讨论热度较高。Google 和 JetBrains 的官方背书也为其可信度提供了保障。
未来的关键变量在于:VS Code 是否会采纳 ACP,以及 MCP 和 ACP 两个协议标准最终会走向融合还是长期共存。无论如何,ACP 已经证明了开放协议标准在 AI 时代仍然具有强大的生命力——好的协议不只是技术规范,更是生态竞争的战略高地。
技术细节一览: