Akashik Protocol
Types

Agent

An autonomous entity that interacts with the Field.

Agent

An Agent is any autonomous entity that interacts with the Field. Agents MUST register with the Field before performing any operations. At minimum, an agent declares an identifier and a role.

The protocol does not prescribe what an agent is internally — it may be an LLM, a deterministic script, a human operator, or any other entity capable of sending protocol messages.

Schema

{
  "id": "<string>",
  "role": "<string>",
  "status": "idle | working | waiting | offline | failed",
  "interests": ["<string>"],
  "current_task_id": "<string | null>"
}

Field Reference

FieldTypeRequiredDescription
idstringUnique agent identifier. MUST be unique among all registered agents.
rolestringDeclared role (e.g., "researcher", "strategist"). Used in attunement relevance scoring.
statusstringCurrent agent state. Default: "idle". Set by the Field.
interestsstringTopics this agent cares about. Influences attunement scoring.
current_task_idstring or nullThe task the agent is actively working on. Used in attunement scoring.

Status Values

StatusDescription
idleRegistered and available, not currently working on a task.
workingActively executing a task.
waitingBlocked on another agent or external input.
offlineGracefully deregistered or unreachable.
failedAgent encountered an unrecoverable error. Tasks may need reassignment.

Behavioral Requirements

CORE The Field MUST reject REGISTER requests where the agent id is already in use by an active agent (error: AGENT_ID_TAKEN).

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

CORE When an agent deregisters, the Field MUST NOT delete memory units previously recorded by that agent. They remain in the Field.

Level 1+ If a deregistered agent has assigned tasks (Coordination Extension), the Field SHOULD flag them for reassignment.