REGISTER
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>"]
}
| Field | Required | Description |
|---|---|---|
id | ✓ | Unique agent identifier. MUST be unique among all currently registered agents. |
role | ✓ | Agent's declared role (e.g., "researcher", "strategist", "planner"). |
interests | Topics the agent cares about. Used to improve relevance scoring during ATTUNE. | |
required_operations | Operations 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
| Code | Condition | Recoverable |
|---|---|---|
AGENT_ID_TAKEN | An agent with this id is already registered | Yes — use a different ID |
UNSUPPORTED_OPERATION | required_operations lists an operation the Field doesn't support | No |