Skip to main content

Python implementation of the Agent Remote Communication (ARC) Protocol

Project description

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.

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

arc_sdk-1.3.1.tar.gz (8.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

arc_sdk-1.3.1-py3-none-any.whl (8.9 MB view details)

Uploaded Python 3

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

Hashes for arc_sdk-1.3.1.tar.gz
Algorithm Hash digest
SHA256 0690af316b3a2e340dd63acce30cb421c0aca442994c7ec52ffe70bafa8928db
MD5 cb50bedbb7d9ad3feaef4a19e44e8733
BLAKE2b-256 661050044c87c517176877c97241d0a30917ee4ffb46c12db9ebee833a88f11f

See more details on using hashes here.

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

Hashes for arc_sdk-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1bb7c6d0906f6c91f4fd9875bc03a6974c773a1df38759633880cbc56325aef8
MD5 4df3416d1e73916731b2fdc5dde50ab3
BLAKE2b-256 5b22e9a79f91a17a103b48a2c74e6bf79b7a23c42d70c1bff97cf99a817da473

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page