架构

Agent Client Protocol 架构概述。

Agent Client Protocol 定义了 AI Agent 与客户端应用之间通信的标准接口。该架构设计为灵活、可扩展且平台无关的。

设计哲学

协议架构遵循几个关键原则:

  1. MCP 友好:协议构建在 JSON-RPC 之上,并在可能的地方复用 MCP 类型,这样集成者就不需要为常见数据类型构建另一套表示。
  2. UX 优先:旨在解决与 AI Agent 交互的 UX 挑战;确保有足够的灵活性来清晰渲染 Agent 的意图,但不过度抽象。
  3. 可信:ACP 在你使用代码编辑器与你信任的模型通信时发挥作用。你仍然可以控制 Agent 的工具调用,但代码编辑器会向 Agent 授予对本地文件和 MCP 服务器的访问权限。

设置

当用户尝试连接到 Agent 时,编辑器按需启动 Agent 子进程,所有通信通过 stdin/stdout 进行。

每个连接可以支持多个并发会话,因此你可以同时进行多个思路的探索。

Server Client setup

ACP 大量使用 JSON-RPC 通知来允许 Agent 向 UI 实时流式传输更新。它还使用 JSON-RPC 的双向请求来允许 Agent 向代码编辑器发起请求:例如请求工具调用的权限。

MCP

代码编辑器通常会有用户配置的 MCP 服务器。当转发用户的提示时,它会将这些配置传递给 Agent。这使得 Agent 可以直接连接到 MCP 服务器。

MCP Server connection

代码编辑器本身也可能希望导出基于 MCP 的工具。与其尝试在同一个 socket 上运行 MCP 和 ACP,代码编辑器可以将自己的 MCP 服务器作为配置提供。由于 Agent 可能只支持 stdio 上的 MCP,代码编辑器可以提供一个小型代理,将请求隧道回自身:

MCP connection to self