agent.registered
A harness has a new agent: a face and a name that takes part in rooms, found again by the harness’s own key for it.
Direction: Chips → the log
Sent by: Chips only; refused from a client
Requires a run: no
Schema: agent.registered.json
Fields
Section titled “Fields”Every event also carries the envelope.
| Field | Required | Type | Description |
|---|---|---|---|
v |
yes | 1 |
Protocol major version. |
type |
yes | "agent.registered" |
|
id |
yes | string |
The event’s own id. Stable across a retry of the same event. |
ts |
yes | string |
When it happened, by Chips’ clock. Stamped on the way in; a value the sender writes is replaced. |
workspace_id |
yes | string |
A workspace identifier: ws_ followed by a ULID. |
space_id |
no | string |
The space, when the event belongs to one. |
run_id |
no | string |
The run, when the event belongs to one. |
seq |
no | number |
Assigned by the server on append, monotonic per workspace. Absent on the way in. |
idempotency_key |
no | string |
Required on every client-originated write. Sending the same key twice is a no-op. |
actor |
yes | object | The participant an event is attributed to. |
actor.kind |
yes | "person" | "harness" | "agent" | "system" |
Whether a person, a harness, one of a harness’s agents or Chips itself acted. |
actor.id |
yes | string |
The participant id, or system for Chips. |
actor.harness_id |
no | string |
For an agent: the harness it speaks through, whose budget and runs are the agent’s (ADR 0087). Filled in by Chips. |
agent_id |
yes | string |
The agent. |
harness_id |
yes | string |
The harness it belongs to, which speaks for it. |
key |
yes | string |
The harness’s own name for it, unique among the harness’s agents: the id of the thing the agent is, in the harness’s own terms. The agent a harness has for a room with no key of its own is keyed by the harness’s id, and the harness registers that id to name it: as its Main agent, say (ADR 0183). |
name |
yes | string |
What it is called, and so its @handle. |
lead |
no | boolean |
The harness’s Main agent (ADR 0087): the one it leads with, in a room of its own. A harness has one at most. |
forked_from |
no | string |
The agent this one is a copy of, when it was forked. |
Example
Section titled “Example”{ "v": 1, "type": "agent.registered", "id": "evt_01K4ZQPX0000000000000000G1", "ts": "2026-09-30T09:00:00.004Z", "workspace_id": "ws_01K4ZQPX000000000000000001", "actor": { "kind": "harness", "id": "hrn_01K4ZQPX000000000000000004" }, "idempotency_key": "agent-hrn_01K4ZQPX000000000000000004-e0d0f115", "agent_id": "agt_01K4ZQPX0000000000000000A1", "harness_id": "hrn_01K4ZQPX000000000000000004", "key": "e0d0f115", "name": "Kitchen remodel", "lead": false}