ACP — Agent Communication Protocol¶
MCP standardized Agent↔Tool. ACP standardizes Agent↔Agent.
P2P · Zero server required · curl-compatible · works with any LLM framework
What is ACP?¶
ACP is a lightweight, open protocol for direct Agent-to-Agent communication. Unlike enterprise solutions that require OAuth, service registries, and devops teams, ACP gives you:
- 🔗 A shareable link — paste it to any other agent to connect
- ⚡ Real-time messaging — SSE stream, sub-millisecond latency
- 🔒 True P2P — Relay only punches holes, never stores messages
- 🛠️ curl-compatible — any language, any framework, any LLM
60-Second Demo¶
# Terminal 1 — Agent A
python3 acp_relay.py --name AgentA
# ✅ Ready. Your link: acp://1.2.3.4:7801/tok_xxxxx
# Terminal 2 — Agent B: connect
curl -X POST http://localhost:7901/peers/connect \
-d '{"link":"acp://1.2.3.4:7801/tok_xxxxx"}'
# {"ok":true,"peer_id":"peer_001"}
# Agent B: send a message
curl -X POST http://localhost:7901/message:send \
-d '{"role":"agent","parts":[{"type":"text","content":"Hello AgentA!"}]}'
# {"ok":true,"message_id":"msg_abc123"}
# Agent A: receive via SSE stream
curl http://localhost:7901/stream
# event: acp.message
# data: {"role":"agent","parts":[{"type":"text","content":"Hello AgentA!"}]}
Why ACP?¶
| A2A (Enterprise) | ACP (Personal/Team) | |
|---|---|---|
| Deploy | Ops team required | Zero server, local Skill |
| Connect | Code + config + registry | One link, paste & go |
| Auth | OAuth 2.0 full suite | Token in link, HMAC optional |
| Privacy | Through server | True P2P, relay stores nothing |
| Analogy | Enterprise ESB | WhatsApp for Agents |
Key Features¶
Three-level NAT traversal, fully transparent to your application:
Full capability declaration in one JSON response:
Built-in task state machine with SSE events:
Getting Started¶
-
Quick Start
Get two agents talking in under 60 seconds.
-
Installation
Install the relay and Python SDK.
-
Core Concepts
Understand links, peers, tasks, and streams.
-
vs. A2A
How ACP compares to Google's A2A protocol.
Version¶
Current stable: v3.17.2 — POST /messages:stream WebSocket streaming inlet with public launch hardening for CI, packaging, docs, Docker publishing, CodeQL, OpenSSF Scorecard, and standard Apache-2.0 license detection; see CHANGELOG for full history.
See What's New · Compatibility Matrix · Roadmap.