Skip to main content

ARC Protocol Specification

ARC (Agent Remote Communication) is a stateless, lightweight remote procedure call (RPC) protocol for agent communications in multi-agent systems (MAS) with workflow tracing capabilities, quantum-safe hybrid TLS encryption, and single-endpoint multi-agent routing.

Specification Files

Primary Specification

arc-openrpc.json - OpenRPC format

  • Primary RPC specification
  • Method definitions
  • Type schemas
  • Error codes

Tooling Compatibility

arc-openapi.yaml - OpenAPI 3.0 format

  • Source for generating OpenRPC
  • Used for tooling compatibility
  • TypeScript type generation

Full Specification

View the complete specification:

ARC Specification Document

Core Protocol Features

Stateless RPC Design

  • No session state on server
  • Each request is independent
  • Client manages chatId and taskId

Single Endpoint Architecture

  • All agents accessible via /arc
  • Routing via targetAgent field
  • Simplified deployment and discovery

Workflow Tracing

  • traceId propagates across agent calls
  • End-to-end observability
  • Integration with tracing systems

Quantum-Safe Security

  • Hybrid TLS: X25519 + Kyber-768
  • FIPS 203 ML-KEM compliant
  • Future-proof encryption

Method Categories

Task Methods

Asynchronous operations:

  • task.create
  • task.send
  • task.info
  • task.cancel
  • task.subscribe
  • task.notification

Chat Methods

Real-time communication:

  • chat.start
  • chat.message
  • chat.end

Request Structure

{
"method": "chat.start",
"params": {
"requestAgent": "client-123",
"targetAgent": "finance-agent",
"traceId": "trace-abc",
"initialMessage": {
"role": "user",
"parts": [{"type": "text", "content": "Help with invoice"}]
}
}
}

Response Structure

{
"result": {
"type": "chat",
"chat": {
"chatId": "chat-xyz",
"status": "ACTIVE",
"message": {
"role": "agent",
"parts": [{"type": "text", "content": "I can help with that"}]
}
}
}
}

Error Handling

ARC uses standard RPC error codes (borrowed from JSON-RPC convention):

  • -32600 - Invalid Request
  • -32601 - Method not found
  • -32602 - Invalid params
  • -32603 - Internal error
  • -42001 - Agent not found
  • -42002 - Authentication failed
  • -42003 - Task not found
  • -42004 - Task processing error

Schema Usage

Generate TypeScript Types

npm run generate:types

Generate OpenRPC from OpenAPI

npm run generate:openrpc

Validate Schema

npm run validate