ACP 编码代理

Agent Client 协议将编码界面连接到编码代理。该界面可以是编辑器、桌面应用程序、CLI,或另一个 ADK-Rust 代理。编码代理是一个独立进程,它会推理项目并通过共享会话报告其工作。

ADK-Rust 实现了稳定的 ACP 协议版本 1 的两端:

  • 从 ADK-Rust 应用程序中使用外部 ACP 编码代理;
  • 将一个 ADK-Rust 代理暴露为编辑器可以启动的 ACP 进程。

该实现使用官方 agent-client-protocol Rust SDK。SDK crate 版本与 ACP wire 版本是分开的:ADK-Rust 当前使用 SDK 1.2,同时在 initialize 期间协商协议版本 1。

阅读本节

  1. 架构与概念 解释了两个角色和完整的请求流程。
  2. 构建一个 ACP 客户端或宿主 涵盖一次性委派、持久会话、流式传输、取消、权限、文件、终端以及会话 MCP 服务器。
  3. 暴露一个 ADK-Rust ACP 代理 涵盖服务器构建、生命周期映射、事件流式传输、会话持久化和部署。
  4. 测试和支持矩阵 列出了已验证的行为,以及 ADK-Rust 明确不声明支持的功能。

我应该使用哪种协议?

边界用途
ACP与项目会话中的编码代理协同工作的交互式编码界面
A2A独立部署的业务代理,交换远程任务和工件
MCP在代理后面提供的工具、提示和资源

ACP 可能在编码会话打开时携带 MCP 服务器配置。这并不意味着 ACP 和 MCP 可以互换:ACP 拥有编码代理对话;MCP 提供该对话期间使用的工具和资源。

示例

示例证明了什么
examples/acp_client_host流式客户端 UI、异步权限,以及受工作区限制的只读文件系统
examples/acp_kiro直接委派、作为 ADK 工具的 ACP agent、持久会话、环境配置以及并发取消
examples/acp_server通过 ACP v1 向编辑器提供的、使用工具的 ADK-Rust LLM agent
examples/acp_full_protocol进程内、无需 API-key 的、由 Runner 支持的参考实现,覆盖完整的 Phase 2 服务器表面(嵌入资源 + 图像/音频提示、权限桥接、session/load 回放、用量/工具调用更新),并带有一个验证测试

上一页: ← 基准测试 | 下一页: 重试与反思 →

ACP 编码代理 - ADK-Rust 文档 | ADK-Rust