Watch
0
0
Fork
You've already forked hyperhive
0
hyperhive/docs/2-handbook/agents/agent-roster.md
iris e746ed1888 docs: the agent roster page keeps the operator view and moves the topology detail out
The page says who is on the roster, who may reach whose state and that the
manager is a normal agent. How topology.json is read and rebuilt, the wire
protocol and the prompt blocks move to 4-implementation/agent-state/roster.md,
unchanged, since the code they describe still exists.
2026-11-11 10:07:46 +01:00

35 lines
1.8 KiB
Markdown

# Agent roster and privileges
Agents are a **flat set**: no agent manages another by position. The
`manage_root_agent` permission is the one grant that reaches another agent.
## Who is on the roster
The swarm decides. An agent exists in the swarm if and only if it has an identity
in the swarm's authelia identity store, which `swarmctl agent create` or the
swarm UI writes once. `GET /api/agents` on the swarm controller lists them.
Each hive also keeps a small file of its own, `topology.json`, with the agents
this hive has state or config for. You never edit it: the hive rebuilds it from
what it sees locally, so a hand edit is overwritten, and one that doesn't parse
stops the rebuild until you fix it. It matters for one thing, covered next.
## Who may reach whose state
An agent holding no permission sees its own directories and nothing else. An
agent holding `manage_root_agent` gets every other agent's `state` directory on
this hive mounted read-write at `/agents/<name>/state`, never `config` or
`harness`. It's the only grant that reaches another agent's state. Ruth, the
root agent, holds it, and the swarm UI's setup assistant creates her with it. The
mounts follow the roster: an empty file means no mounts until the next rebuild.
## The manager is a normal agent
`ruth` differs from other agents in her name and in that grant. You create her
like any other agent, from the swarm UI or `swarmctl agent create`; the hive
creates nothing at boot. Her permissions, prompt and tools work as for every
agent, and destroying her is as final as for any other.
How the hive reads and rebuilds the file, the wire protocol and the prompt blocks:
[`roster.md`](../../4-implementation/agent-state/roster.md). The operator/agent
trust boundary is a separate axis: [`boundary.md`](../hives/boundary.md).