Gunnar

nordisk/dwarves

.nornir/agent-pool-guide.md

<!-- nornir:class: guide -->
# agent pool — guide

> **Class:** `guide` · how to USE `dwarves agents` + the `AgentPool` RPC.
> What it IS: [agent-pool-design.md](agent-pool-design.md).

List the worker fleet the forge dispatches build/test steps to.

## Fat — the local pool

```sh
dwarves agents
```
```
worker fleet (1 agent(s)):
  local-0      group=default    caps=[cargo] cores=12 state=idle
```

Shows the local single-machine pool (`agent_bridge::scheduler_with_local_default`) —
the same pool a `dwarves-server` boots with.

## Thin — a running server's live pool

```sh
dwarves --server 127.0.0.1:7900 agents
# or: DWARVES_SERVER=127.0.0.1:7900 dwarves agents
```

Calls the server's `AgentPool` RPC and prints the identical fleet shape. As remote
agents join (`GrpcAgent`, the multi-machine seam) they appear here with no CLI change.

## The columns

| column | meaning |
|---|---|
| id | the agent's unique id (`<host> agent --id …`) |
| group | the worker group it joined (`--group …`; a step targets a group) |
| caps | capability labels it advertises (`cargo`, `cuda`, `linux`, …); a step matches on these |
| cores | its core count (dispatch/capacity hint) |
| state | jera liveness (`idle`/`busy`/…) |

## Register more agents

```sh
dwarves agent --group gpu-farm --caps cargo,cuda --id loki-1
```

registers a local agent (the remote-over-gRPC join is the multi-machine follow-up);
`dwarves agents` then lists whatever the scheduler holds.