Agent Remote Communication (ARC) Protocol
Agent-to-Agent Communication Protocol
ARC (Agent Remote Communication) is an agent-to-agent protocol with built-in agent routing, workflow tracing, and SSE streaming. Deploy multiple agent types on a single endpoint.
[!IMPORTANT] Quantum-Resistant Security: ARC SDK implements end-to-end encryption using hybrid TLS (X25519 + Kyber-768), combining classical cryptography with post-quantum algorithms (FIPS 203 ML-KEM). Protects against quantum computing attacks.
Server Architecture
Single package with multiple deployment options:
- Custom ASGI Server - Standalone server with built-in middleware (zero dependencies)
- FastAPI Integration - Router for existing FastAPI applications (optional:
pip install arc-sdk[fastapi]) - Starlette Integration - Lightweight ASGI toolkit integration (optional:
pip install arc-sdk[starlette])
Key Features
- Single Endpoint, Multiple Agents - Deploy multiple agents behind one endpoint
- Cross-Agent Workflows - Agent A → Agent B → Agent C with full traceability via
traceId - Agent Routing - Built-in routing to target agents
- End-to-End Tracing - Track workflows across agent interactions
- State Management - Built-in chat session management with persistent storage (Redis, PostgreSQL, MongoDB)
ARC vs Other Agent-to-Agent Protocols
| Feature | ARC Protocol | A2A (Google) | ACP (IBM/Linux Foundation) |
|---|---|---|---|
| Streaming Model | ✅ SSE (Server-Sent Events) | ✅ SSE downstream | ⚠️ Chunked HTTP, not duplex |
| Transport | ✅ HTTP/1.1 + SSE | ✅ HTTP/1.1 + SSE | ❌ HTTP/1.x only |
| Message Format | ✅ JSON with structured parts | ✅ JSON with parts | ✅ JSON with MIME parts |
| Task Lifecycle | ✅ Native task methods + webhooks | ⚠️ SSE + webhook registration | ⚠️ Client polling/resume |
| Multi-Agent Routing | ✅ Single endpoint, built-in | ✅ Agent Card discovery | ⚠️ Manifest-based, looser |
| Agent Discovery | ✅ Built-in agent routing | ✅ Agent Card system | ⚠️ Manifest-based discovery |
| Error Handling | ✅ Rich error taxonomy (500+ codes) | ⚠️ JSON-RPC error codes | ⚠️ HTTP status codes |
| Workflow Tracing | ✅ Native traceId support |
⚠️ Custom implementation | ⚠️ Custom implementation |
| Learning Curve | ✅ Simple RPC-style | ✅ Familiar JSON-RPC | ✅ REST-like HTTP |
| Governance | ✅ Open Protocol | ⚠️ Google-led | ✅ Linux Foundation |
Installation
Core Package
pip install arc-sdk
With Post-Quantum Cryptography
pip install arc-sdk[pqc]
[!NOTE] Adds quantum-resistant hybrid TLS (X25519 + Kyber-768). See PQC Documentation.
With FastAPI Integration
pip install arc-sdk[fastapi]
With Starlette Integration
pip install arc-sdk[starlette]
All Features
pip install arc-sdk[all,pqc]
Quick Start
Client
from arc import Client
client = Client("https://company.com/arc", token="your-oauth2-token")
# Create task
task = await client.task.create(
target_agent="document-analyzer",
initial_message={"role": "user", "parts": [{"type": "text", "content": "Analyze report"}]}
)
# Start chat
chat = await client.chat.start(
target_agent="support-agent",
initial_message={"role": "user", "parts": [{"type": "text", "content": "Help with account"}]}
)
Server
from arc import Server
server = Server(server_id="my-server")
@server.agent_handler("finance-agent", "chat.start")
async def handle_chat(params, context):
return {"type": "chat", "chat": {...}}
server.run(host="0.0.0.0", port=8000)
Documentation
License
Apache License 2.0. See LICENSE for details.
Metadata
Release files for arc-sdk 1.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| arc_sdk-1.3.1.tar.gz | 8.9 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| arc_sdk-1.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.8 MB
Release files / arc_sdk-1.3.1.tar.gz
| Download URL | arc_sdk-1.3.1.tar.gz |
|---|---|
| Size | 8.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0690af316b3a2e340dd63acce30cb421c0aca442994c7ec52ffe70bafa8928db
|
|
BLAKE2b-256 checksum How to use checksums |
661050044c87c517176877c97241d0a30917ee4ffb46c12db9ebee833a88f11f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / arc_sdk-1.3.1-py3-none-any.whl
| Download URL | arc_sdk-1.3.1-py3-none-any.whl |
|---|---|
| Size | 8.9 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1bb7c6d0906f6c91f4fd9875bc03a6974c773a1df38759633880cbc56325aef8
|
|
BLAKE2b-256 checksum How to use checksums |
5b22e9a79f91a17a103b48a2c74e6bf79b7a23c42d70c1bff97cf99a817da473
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|