Agent Client Protocol 协议介绍

发布时间: 更新时间: 总字数:795 阅读时间:2m 作者:IP:上海 网址

Agent Client Protocol (ACP) 是一项在 2025/2026 年快速兴起的开放协议,旨在彻底解决 AI 编程助手与代码编辑器(IDE)之间的生态碎片化问题。本文是关于该协议的详细介绍,以及一个零依赖、可直接执行的 Python 示例。

什么是 ACP?

ACP (Agent Client Protocol) 是一套基于 JSON-RPC 2.0 的标准通信协议,主要用于 代码编辑器/客户端(如 Zed、JetBrains IDEs、Neovim)与 AI 编程助手/Agent(如 Claude Code、Gemini CLI、Goose)之间进行通信。最初由 Zed Industries 发起,目前得到了各大厂商和开源社区的支持。

它解决了什么痛点?

在 ACP 出现之前,如果你想要在不同的 IDE 里使用不同的 AI(比如想在 VS Code 用 Claude Code,想在 JetBrains 用 GitHub Copilot),每个 AI 厂商都需要为每一个 IDE 单独开发定制插件,造成了严重的“厂商锁定”(Vendor Lock-in)和生态封闭。 ACP 的出现类似于语言服务器协议(LSP):只要 Agent 实现了 ACP 协议,就能无缝接入任何支持 ACP 的编辑器。IDE 负责原生 UI(多文件标签、语法高亮、文件权限管理),Agent 负责后端的 AI 思考与逻辑调度。

与 MCP (Model Context Protocol) 的关系

两者完美互补,各司其职:

  • MCP (What):解决大模型“能获取什么数据”的问题。它标准化了 Agent 如何读取本地文件系统、数据库或调用外部工具。
  • ACP (Where/How):解决大模型“在哪里展现、如何与用户交互”的问题。它标准化了 Agent 如何在 IDE 内弹出提示、流式打字输出内容、如何征求用户代码修改权限。

底层通信流

ACP 极其轻量,通常是在进程间通过标准输入/输出 (stdin / stdout) 传递以换行符分隔的 JSON 数据。 核心的几个 RPC Method 包括:

  • session/initialize:建立连接,协商能力(客户端向 Agent 发起)。
  • session/new:创建一个对话会话。
  • session/prompt:客户端向 Agent 传递用户的输入。
  • session/update:Agent 以“单向通知 (Notification)”的方式,源源不断地向客户端推流(比如正在思考的内容、生成的代码块)。