> ## Documentation Index
> Fetch the complete documentation index at: https://acp-docs.cxykevin.top/llms.txt
> Use this file to discover all available pages before exploring further.

# 架构

> Agent Client Protocol 架构概述

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

## 设计原则

协议架构遵循以下几个关键原则：

1. **MCP 友好**：协议基于 JSON-RPC 构建，并在可能的情况下重用 MCP 类型，以便集成商无需为常见数据类型构建另一种表示形式。
2. **UX 优先**：它旨在解决与 AI 代理交互的 UX 挑战；确保有足够的灵活性清晰地呈现代理的意图，但不会过度抽象。
3. **可信任**：ACP 适用于您使用代码编辑器与您信任的模型进行对话的场景。您仍然可以控制代理的工具调用，但代码编辑器会为代理提供对本地文件和 MCP 服务器的访问权限。

## 设置

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

每个连接可以支持多个并发会话，因此您可以同时进行多个思考流程。

<img src="https://mintcdn.com/none-9a95778a/vaR7pkUULhFQzMwc/images/server-client.svg?fit=max&auto=format&n=vaR7pkUULhFQzMwc&q=85&s=1d94183ad77f608ad66cf502cbd31a77" alt="服务器客户端设置" width="579" height="455" data-path="images/server-client.svg" />

ACP 大量使用了 JSON-RPC 通知，允许代理实时向 UI 推送更新。它还使用 JSON-RPC 的双向请求，允许代理向代码编辑器发起请求：例如请求工具调用的权限。

## MCP

通常代码编辑器会拥有用户配置的 MCP 服务器。在转发用户提示时，它会将这些配置传递给代理。这允许代理直接连接到 MCP 服务器。

<img src="https://mintcdn.com/none-9a95778a/vaR7pkUULhFQzMwc/images/mcp.svg?fit=max&auto=format&n=vaR7pkUULhFQzMwc&q=85&s=b64699b95a4b3470f58dac4d0bdc8afd" alt="MCP 服务器连接" width="689" height="440" data-path="images/mcp.svg" />

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

<img src="https://mintcdn.com/none-9a95778a/vaR7pkUULhFQzMwc/images/mcp-proxy.svg?fit=max&auto=format&n=vaR7pkUULhFQzMwc&q=85&s=9adfea7cc64db7bca3468abef0c9af10" alt="连接到自身的 MCP" width="632" height="440" data-path="images/mcp-proxy.svg" />
