Skip to main content

Crate adk_acp

Crate adk_acp 

Source
Expand description

§adk-acp — Agent Client Protocol integration for ADK-Rust

Connect ADK agents to external ACP agents (Claude Code, Codex, etc.) and optionally expose ADK agents as ACP-compatible agents for IDE connections.

§Quick Start

use adk_acp::AcpAgentTool;
use adk_agent::LlmAgentBuilder;
use std::sync::Arc;

// Wrap Claude Code as a tool your agent can delegate to
let claude = AcpAgentTool::new("claude-code")
    .description("Delegate complex coding tasks to Claude Code");

let agent = LlmAgentBuilder::new("orchestrator")
    .instruction("Use claude-code for complex refactoring tasks.")
    .model(model)
    .tool(Arc::new(claude))
    .build()?;

§What is ACP?

The Agent Client Protocol standardizes communication between code editors (IDEs, CLIs) and coding agents. It enables:

  • Tool use: Agents can request permission to use tools
  • Streaming responses: Real-time content delivery
  • Session management: Multi-turn conversations with context
  • Proxy chains: Middleware that intercepts/transforms messages

§Features

  • default: Client-side only (connect to ACP agents)
  • server: Expose ADK agents as ACP-compatible agents

Re-exports§

pub use connection::AcpAgentConfig;
pub use connection::prompt_agent;
pub use connection::prompt_agent_with_policy;
pub use error::AcpError;
pub use error::Result;
pub use permissions::PermissionDecision;
pub use permissions::PermissionPolicy;
pub use permissions::PermissionRequest;
pub use session::AcpSession;
pub use session::PromptResult;
pub use status::AgentStatus;
pub use status::StatusTracker;
pub use streaming::OutputChunk;
pub use streaming::OutputStream;
pub use streaming::stream_prompt;
pub use tool::AcpAgentTool;
pub use toolset::AcpToolset;
pub use usage::AcpUsage;
pub use usage::AcpUsageStats;
pub use usage::UsageTracker;
pub use agent_client_protocol;

Modules§

connection
ACP connection management.
error
Error types for ACP integration.
permissions
Permission handling for ACP agent tool calls.
session
Persistent ACP session with connection reuse.
status
Agent status state machine for ACP sessions.
streaming
Streaming output from ACP agent sessions.
tool
ACP agent wrapped as an ADK Tool.
toolset
ACP toolset — multiple ACP agents as a single ADK Toolset.
usage
Usage tracking for ACP agent invocations.