Skip to main content

Agent Remote Communication (ARC) Protocol

PyPI version License: Apache 2.0 Python 3.8+ Downloads GitHub stars Code style: black

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)

Source distribution for arc-sdk 1.3.1
File Size Uploaded
arc_sdk-1.3.1.tar.gz 8.9 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for arc-sdk 1.3.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

1.3.1 This release

2 release files

1.3.0

2 release files

1.2.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page