Agent
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
| Field | Type | Required | Description |
|---|---|---|---|
id | string | ✓ | Unique agent identifier. MUST be unique among all registered agents. |
role | string | ✓ | Declared role (e.g., "researcher", "strategist"). Used in attunement relevance scoring. |
status | string | ✓ | Current agent state. Default: "idle". Set by the Field. |
interests | string | Topics this agent cares about. Influences attunement scoring. | |
current_task_id | string or null | The task the agent is actively working on. Used in attunement scoring. |
Status Values

| Status | Description |
|---|---|
idle | Registered and available, not currently working on a task. |
working | Actively executing a task. |
waiting | Blocked on another agent or external input. |
offline | Gracefully deregistered or unreachable. |
failed | Agent 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.