Expand description
ACP (Agent Communication Protocol) client for inter-agent communication
This module provides:
- V2 (Recommended): Full ACP protocol compliance with JSON-RPC 2.0
- Session lifecycle (initialize, session/new, session/prompt)
- Capability negotiation
- SSE streaming for real-time updates
- V1 (Legacy): HTTP-based communication with remote agents
- Agent discovery (online and offline)
- Request/response message handling
§Quick Start (V2)
ⓘ
use vtcode_acp_client::{AcpClientV2, ClientCapabilities};
let client = AcpClientV2::new("http://agent.example.com")?;
// Initialize connection and negotiate capabilities
let init_result = client.initialize().await?;
// Create a session
let session = client.session_new(Default::default()).await?;
// Send a prompt
let response = client.session_prompt(SessionPromptParams {
session_id: session.session_id,
content: vec![PromptContent::text("Hello!")],
..Default::default()
}).await?;§Migration from V1
The V1 AcpClient is deprecated and will be removed in a future version.
Migrate to AcpClientV2 for full ACP protocol compliance.
Re-exports§
pub use capabilities::AgentCapabilities;pub use capabilities::AgentFeatures;pub use capabilities::AgentInfo as AgentInfoV2;pub use capabilities::AuthCredentials;pub use capabilities::AuthenticateParams;pub use capabilities::AuthenticateResult;pub use capabilities::ClientCapabilities;pub use capabilities::ClientInfo;pub use capabilities::FilesystemCapabilities;pub use capabilities::InitializeParams;pub use capabilities::InitializeResult;pub use capabilities::TerminalCapabilities;pub use capabilities::ToolCapability;pub use capabilities::UiCapabilities;pub use capabilities::PROTOCOL_VERSION;pub use capabilities::SUPPORTED_VERSIONS;pub use client_v2::AcpClientV2;pub use client_v2::AcpClientV2Builder;pub use jsonrpc::JsonRpcError;pub use jsonrpc::JsonRpcId;pub use jsonrpc::JsonRpcRequest;pub use jsonrpc::JsonRpcResponse;pub use jsonrpc::JSONRPC_VERSION;pub use session::AcpSession;pub use session::ConversationTurn;pub use session::PermissionOption;pub use session::PromptContent;pub use session::RequestPermissionParams;pub use session::RequestPermissionResult;pub use session::SessionCancelParams;pub use session::SessionLoadParams;pub use session::SessionLoadResult;pub use session::SessionNewParams;pub use session::SessionNewResult;pub use session::SessionPromptParams;pub use session::SessionPromptResult;pub use session::SessionState;pub use session::SessionUpdate;pub use session::SessionUpdateNotification;pub use session::ToolCallRecord;pub use session::TurnStatus;pub use client::AcpClient;pub use client::AcpClientBuilder;pub use discovery::AgentInfo;pub use discovery::AgentRegistry;pub use error::AcpError;pub use error::AcpResult;pub use messages::AcpMessage;pub use messages::AcpRequest;pub use messages::AcpResponse;
Modules§
- capabilities
- ACP capabilities and initialization types
- client
- HTTP-based ACP client for agent communication
- client_
v2 - ACP Client V2 with full protocol compliance
- discovery
- Agent discovery and registry functionality
- error
- Error types for ACP operations
- jsonrpc
- JSON-RPC 2.0 types for ACP protocol compliance
- messages
- ACP message types and serialization
- session
- ACP session types and lifecycle management
Functions§
- acp_
connection - Retrieve the registered ACP connection, if available.
- register_
acp_ connection - Register the global ACP connection from the host protocol.