Status: Experimental
Date: June 2025
Category: Standards Track
This document specifies the Agent Communication Protocol (ACP), a standardized protocol for direct communication between autonomous agents on the internet. ACP provides semantic data exchange, capability negotiation, trust establishment, and economic settlement mechanisms designed specifically for agent-to-agent interactions rather than human consumption.
The current internet infrastructure, built primarily around HTTP and human-readable formats, is increasingly inadequate for autonomous agent communication. While existing protocols like Agent-to-Agent (A2A) and Model Context Protocol (MCP) have begun addressing agent communication needs, they represent foundational layers that require extension for full autonomous agent economies.
Model Context Protocol (MCP) provides standardized connections between AI models and external systems, focusing on context sharing and tool integration. However, MCP is primarily designed for human-supervised AI interactions and lacks native support for autonomous economic transactions, trust networks, and agent-to-agent capability negotiation.
Agent-to-Agent (A2A) Protocols establish basic communication patterns between autonomous agents, including identity verification and message routing. While A2A protocols provide essential authentication mechanisms, they typically operate at a lower abstraction level and don't address semantic data exchange, economic settlement, or dynamic capability matching.
ACP builds upon these foundations while introducing several critical capabilities:
- Embedded Economic Layer: Unlike MCP/A2A which treat payments as external concerns, ACP integrates micro-transactions, escrow, and economic settlement directly into the protocol
- Semantic-Native Design: While MCP focuses on context sharing, ACP mandates structured semantic schemas for all data exchange, enabling true machine understanding
- Dynamic Capability Markets: Beyond basic A2A authentication, ACP enables real-time capability discovery, negotiation, and pricing
- Autonomous Trust Networks: Extends A2A identity concepts with distributed reputation systems and trust scoring without requiring centralized authorities
- Economic Incentive Alignment: Provides built-in mechanisms for agents to monetize capabilities and pay for resources, enabling sustainable autonomous agent ecosystems
ACP can be viewed as an application-layer protocol that leverages MCP for external system integration and A2A for basic agent authentication, while adding the economic and semantic layers necessary for fully autonomous agent interaction.
ACP addresses the limitations of existing protocols by providing:
-
Semantic data structures optimized for machine processing and understanding
-
Built-in capability discovery and negotiation with dynamic pricing
-
Cryptographic identity and trust mechanisms with distributed reputation
-
Economic transaction primitives embedded at the protocol level
-
Real-time bidirectional communication channels for complex agent workflows
-
Agent: An autonomous software entity capable of independent decision-making
-
Capability: A specific service or function an agent can provide
-
Schema: A semantic description of data structure and meaning
-
Handshake: The initial capability and trust negotiation between agents
-
Settlement: The resolution of economic transactions between agents
ACP operates as an application layer protocol that can run over various transport mechanisms (TCP, WebSocket, QUIC). The protocol consists of four main phases:
- Discovery: Finding relevant agents and their capabilities
- Handshake: Establishing identity, trust, and capability matching
- Exchange: Semantic data communication and transactions
- Settlement: Economic and trust state updates
All ACP messages use a binary format with the following structure:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Type | Flags | Message Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message ID (64-bit) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Timestamp (64-bit) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Digital Signature |
| (Variable Length) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Semantic Payload |
| (Variable Length) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Agents discover each other through distributed hash tables (DHT) or registry services. Discovery requests specify:
- Required capabilities
- Trust requirements
- Economic constraints
- Performance requirements
{
"agent_id": "did:acp:1234567890abcdef",
"capabilities": [
{
"id": "data-analysis",
"version": "2.1",
"schema": "https://schemas.acp.org/data-analysis/v2.1",
"cost_model": "per_computation",
"base_rate": 0.001,
"trust_required": "verified",
"latency": "< 100ms"
}
],
"trust_anchors": ["did:trust:authority1", "did:trust:authority2"],
"reputation_score": 0.97,
"available_until": "2025-06-24T18:00:00Z"
}The handshake establishes mutual authentication, capability matching, and economic terms.
- HELLO: Initial capability and identity announcement
- CHALLENGE: Cryptographic challenge for authentication
- PROOF: Response to authentication challenge
- NEGOTIATE: Capability and economic term negotiation
- ACCEPT: Final agreement confirmation
Agents use Decentralized Identifiers (DIDs) with associated cryptographic keys. Trust is established through:
- Direct cryptographic verification
- Reputation networks
- Trust authority endorsements
- Historical interaction records
Once handshake is complete, agents exchange semantic data using agreed-upon schemas.
{
"schema": "https://schemas.acp.org/financial-data/v1.0",
"context": {
"purpose": "risk_analysis",
"constraints": ["anonymized", "aggregated"],
"validity": "2025-06-24T12:00:00Z"
},
"data": {
"type": "TimeSeries",
"values": [...],
"metadata": {...}
},
"provenance": {
"source": "did:acp:datasource123",
"collection_method": "api_aggregation",
"confidence": 0.95
}
}Micro-transactions are embedded within data exchanges:
{
"transaction": {
"amount": 0.001,
"currency": "ACP_CREDIT",
"escrow_hash": "abc123...",
"completion_trigger": "data_validated"
}
}Economic and reputation updates occur after successful exchanges.
{
"type": "SETTLEMENT",
"transaction_id": "tx_987654321",
"status": "completed",
"reputation_delta": {
"provider": +0.001,
"consumer": +0.0005
},
"economic_settlement": {
"amount_transferred": 0.001,
"escrow_released": true,
"settlement_hash": "def456..."
}
}All messages must be cryptographically signed using agent's private key associated with their DID.
Capability-based authorization where agents explicitly grant permissions for specific operations.
Support for zero-knowledge proofs to enable verification without data exposure.
Escrow mechanisms prevent payment fraud. Reputation systems discourage malicious behavior.
Sub-cent payments for individual data requests or computations, settled in batches to minimize transaction costs.
CPU, memory, bandwidth, and storage consumption tracked and billed in real-time.
Dynamic pricing based on demand, agent reputation, and service quality metrics.
ACP can tunnel over HTTP for gradual deployment alongside existing web infrastructure.
DHT-based discovery and P2P communication reduce centralized bottlenecks.
Schema registries ensure consistent semantic interpretation across diverse agent implementations.
This protocol requires:
- Port number assignment for ACP traffic
- Schema namespace allocation
- DID method registration
- RFC 2119: Key words for use in RFCs
- RFC 8259: JSON Data Interchange Format
- W3C DID: Decentralized Identifiers specification
- MCP: Model Context Protocol specification
- A2A Protocols: Agent-to-Agent Communication Standards
- JSON-LD: JSON for Linked Data
- WebRTC: Real-time Communication for the Web
Agent A Agent B
| |
|------------- DISCOVER ----------------->|
|<------------ ADVERTISE -----------------|
| |
|-------------- HELLO ------------------->|
|<------------ CHALLENGE -----------------|
|-------------- PROOF ------------------->|
|<------------ NEGOTIATE -----------------|
|-------------- ACCEPT ------------------>|
| |
|---------- SEMANTIC_REQUEST ------------->|
|<--------- SEMANTIC_RESPONSE ------------|
| |
|------------ SETTLEMENT ---------------->|
|<----------- SETTLEMENT_ACK --------------|
{
"schema_id": "financial-data/v1.0",
"namespace": "https://schemas.acp.org/",
"definition": {
"type": "object",
"properties": {
"timestamp": {"type": "integer"},
"value": {"type": "number"},
"currency": {"type": "string", "enum": ["USD", "EUR", "BTC"]}
},
"required": ["timestamp", "value", "currency"]
},
"semantic_annotations": {
"timestamp": "https://schema.org/DateTime",
"value": "https://schema.org/MonetaryAmount",
"currency": "https://schema.org/currency"
}
}Authors:
- LLMs