ACP coding agents

Agent Client Protocol connects a coding interface to a coding agent. The interface may be an editor, desktop application, CLI, or another ADK-Rust agent. The coding agent is a separate process that reasons about a project and reports its work through a shared session.

ADK-Rust implements both sides of stable ACP protocol version 1:

  • use an external ACP coding agent from an ADK-Rust application;
  • expose an ADK-Rust agent as an ACP process an editor can start.

The implementation uses the official agent-client-protocol Rust SDK. The SDK crate version and ACP wire version are separate: ADK-Rust currently uses SDK 1.2 while negotiating protocol version 1 during initialize.

Read this section

  1. Architecture and concepts explains the two roles and the full request flow.
  2. Build an ACP client or host covers one-shot delegation, persistent sessions, streaming, cancellation, permissions, files, terminals, and session MCP servers.
  3. Expose an ADK-Rust ACP agent covers server construction, lifecycle mapping, event streaming, session persistence, and deployment.
  4. Testing and support matrix lists verified behavior and the features ADK-Rust deliberately does not advertise.

Which protocol should I use?

BoundaryUse it for
ACPAn interactive coding interface working with a coding agent inside a project session
A2AIndependently deployed business agents exchanging remote tasks and artifacts
MCPTools, prompts, and resources made available behind an agent

ACP may carry MCP server configuration when a coding session opens. That does not make ACP and MCP interchangeable: ACP owns the coding-agent conversation; MCP supplies tools and resources used during that conversation.

Examples

ExampleWhat it proves
examples/acp_client_hostStreamed client UI, asynchronous permissions, and a workspace-bounded read-only filesystem
examples/acp_kiroDirect delegation, an ACP agent as an ADK tool, persistent sessions, environment configuration, and concurrent cancellation
examples/acp_serverA tool-using ADK-Rust LLM agent exposed to editors through ACP v1
examples/acp_full_protocolIn-process, no-API-key Runner-backed reference exercising the full Phase 2 server surface (embedded-resource + image/audio prompts, permission bridge, session/load replay, usage/tool-call updates) with a validating test

Previous: ← Benchmarking | Next: Retry & Reflect →