Skip to main content
Agent Client Protocol 标准化了代码编辑器/IDE 与编码代理之间的通信,适用于本地和远程场景。

为什么需要 ACP?

AI 编码代理和编辑器紧密耦合,但互操作性并非默认设置。每个编辑器都必须为想要支持的每个代理构建自定义集成,而代理必须实现编辑器特定的 API 才能触达用户。 这造成了几个问题:
  • 集成开销:每种新的代理-编辑器组合都需要自定义工作
  • 兼容性有限:代理只能与可用编辑器的子集一起工作
  • 开发者锁定:选择代理通常意味着接受其可用的接口
ACP 通过提供标准化的代理-编辑器通信协议解决了这个问题,类似于 Language Server Protocol (LSP) 如何标准化语言服务器集成。 实现 ACP 的代理可以与任何兼容的编辑器一起工作。支持 ACP 的编辑器可以访问整个 ACP 兼容代理生态系统。 这种解耦允许双方独立创新,同时让开发者可以自由选择最适合其工作流程的工具。

概述

ACP 假设用户主要使用他们的编辑器,并希望使用代理来协助完成特定任务。 ACP 适用于本地和远程场景:
  • 本地代理 作为代码编辑器的子进程运行,通过 stdio 上的 JSON-RPC 进行通信。
  • 远程代理 可以托管在云端或单独的基础设施上,通过 HTTP 或 WebSocket 进行通信
注意: 对远程代理的完全支持正在进行中。我们正在与代理平台积极合作,确保协议满足云托管和远程部署场景的特定需求。
该协议在可能的情况下重用 MCP 中使用的 JSON 表示,但包含用于有用的代理编码 UX 元素的自定义类型,例如显示差异。 用户可读文本的默认格式是 Markdown,它提供了足够的灵活性来表示富文本格式,而不要求代码编辑器能够渲染 HTML。