<!-- nornir:class: for-idiots -->
# agent pool — for idiots
> **Class:** `for-idiots` · the zero-knowledge walkthrough.
> What it IS: [agent-pool-design.md](agent-pool-design.md) · how to use it: [agent-pool-guide.md](agent-pool-guide.md).
## What is an "agent"?
A build server does the actual work (compiling, testing) on **worker machines**. Each
worker that has signed up to do work is called an **agent**. The whole set of them is
the **agent pool** — the forge's little workforce.
## What did we add?
A way to **ask the forge who is in its workforce**:
```sh
dwarves agents
```
prints something like:
```
worker fleet (1 agent(s)):
local-0 group=default caps=[cargo] cores=12 state=idle
```
That says: there is one worker, called `local-0`, in the `default` team, that knows how
to run `cargo`, has 12 CPU cores, and is currently sitting idle.
## Two ways to ask
- **`dwarves agents`** — asks the local workforce (the one on this machine).
- **`dwarves agents --server …`** — asks a *running* forge server who ITS workers are.
Both print the same kind of list.
## Why it matters
Today there is just one worker (on this machine). But the whole point is that later,
many machines can join the pool over the network. When they do, this exact command will
list them all — no change needed. Think of it as the forge's staff directory: right now
it has one name in it, but it is ready for a whole team.
## Where the list comes from
We did **not** write new code to track workers. The shared `jera` library already keeps
the workforce and can hand it out as data; `dwarves agents` just asks `jera` for it and
prints it. One list, borrowed — never a second copy that could disagree.