Watch
0
0
Fork
You've already forked hyperhive
0
hyperhive/docs/2-handbook/agents/agent-roster.md
iris 757e6fc1a7 docs: the swarm decides who is on the roster, so that text moves to the swarm page
The agent roster page opened with how an agent comes to exist (the identity
store, swarmctl, the swarm UI, the ruth archetype), which is the swarm's
doing. That text now sits in a "Who is on the roster" section of the swarm
page, and the roster page keeps what is a hive's and an agent's: the hive's
own list, who may reach whose state, and that the manager is a normal agent.
2026-11-11 23:23:07 +01:00

33 lines
1.6 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.
## The hive's list of agents
Which agents exist is the swarm's to decide:
[who is on the roster](../swarm/README.md#who-is-on-the-roster). 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 (the swarm creates her from the `ruth` archetype, see
[who is on the roster](../swarm/README.md#who-is-on-the-roster)). The mounts
follow the hive's list: 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. 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).