Akashik Protocol
Operations

REGISTER

Agent joins the Field and declares its identity.

Purpose

REGISTER is the first operation any agent MUST call before interacting with the Field. The agent declares its identifier, role, and optional interests. The Field responds with its capabilities, so the agent knows what features are available at this conformance level.

Conformance Level

Level 0+ — all conformant implementations MUST implement REGISTER.

Request

{
  "id": "<string>",
  "role": "<string>",
  "interests": ["<string>"],
  "required_operations": ["<string>"]
}
FieldRequiredDescription
idUnique agent identifier. MUST be unique among all currently registered agents.
roleAgent's declared role (e.g., "researcher", "strategist", "planner").
interestsTopics the agent cares about. Used to improve relevance scoring during ATTUNE.
required_operationsOperations the agent needs to function. If the Field doesn't support all of them, registration MUST fail.

Response

{
  "status": "registered | rejected",
  "agent": "<Agent>",
  "field_capabilities": {
    "conformance_level": "<number>",
    "supported_operations": ["<string>"],
    "protocol_version": "<string>",
    "persistence": "<boolean>",
    "conflict_strategies": ["<string>"]
  },
  "rejection_reason": "<string | null>"
}

Behavioral Requirements

CORE The Field MUST validate that the agent id is unique among registered agents. If not, reject with AGENT_ID_TAKEN.

CORE If required_operations is provided and the Field does not support all of them, the Field MUST reject registration and list the missing operations in rejection_reason.

Level 1+ The Field MUST return its full capabilities in field_capabilities so the agent can adapt its behavior to the available conformance level.

CORE The Field MUST set the agent's initial status to "idle".

Example

Request:

{
  "protocol": "akashik",
  "version": "0.1.0",
  "id": "msg-001",
  "operation": "REGISTER",
  "agent_id": "researcher-01",
  "session_id": null,
  "epoch": 0,
  "payload": {
    "id": "researcher-01",
    "role": "market_researcher",
    "interests": ["market size", "competitors", "growth trends"]
  }
}

Response:

{
  "status": "registered",
  "agent": {
    "id": "researcher-01",
    "role": "market_researcher",
    "status": "idle",
    "interests": ["market size", "competitors", "growth trends"]
  },
  "field_capabilities": {
    "conformance_level": 1,
    "supported_operations": ["REGISTER", "DEREGISTER", "RECORD", "ATTUNE", "DETECT", "SUBSCRIBE"],
    "protocol_version": "0.1.0",
    "persistence": true,
    "conflict_strategies": []
  },
  "rejection_reason": null
}

Error Codes

CodeConditionRecoverable
AGENT_ID_TAKENAn agent with this id is already registeredYes — use a different ID
UNSUPPORTED_OPERATIONrequired_operations lists an operation the Field doesn't supportNo