Python implementation of the Agent Remote Communication (ARC) Protocol
Project description
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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file arc_sdk-1.3.1.tar.gz.
File metadata
- Download URL: arc_sdk-1.3.1.tar.gz
- Upload date:
- Size: 8.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0690af316b3a2e340dd63acce30cb421c0aca442994c7ec52ffe70bafa8928db
|
|
| MD5 |
cb50bedbb7d9ad3feaef4a19e44e8733
|
|
| BLAKE2b-256 |
661050044c87c517176877c97241d0a30917ee4ffb46c12db9ebee833a88f11f
|
File details
Details for the file arc_sdk-1.3.1-py3-none-any.whl.
File metadata
- Download URL: arc_sdk-1.3.1-py3-none-any.whl
- Upload date:
- Size: 8.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1bb7c6d0906f6c91f4fd9875bc03a6974c773a1df38759633880cbc56325aef8
|
|
| MD5 |
4df3416d1e73916731b2fdc5dde50ab3
|
|
| BLAKE2b-256 |
5b22e9a79f91a17a103b48a2c74e6bf79b7a23c42d70c1bff97cf99a817da473
|