Course · Term 29 of 30
Agents Managing Agents
Every lesson in this course builds one system: a stablecoin reserve attestation registry that discovers issuers, reads the PDFs they publish, and refuses to publish a field it could not read. What it is and where this lesson sits.
Verdict: thin. This is term 22 with a longer leash and worse observability. A worker that can dispatch workers does not change the shape; it changes who chose the depth, and the answer becomes nobody.
The only genuinely new content is two mechanisms, so the unit is those two.
the tree: 12 agents, 42500 tokens if every one runs
nobody wrote "12 agents" anywhere. The planner delegated, and so did the leads.
A shared pool, not a ceiling each. A per-agent limit of 5,000 tokens is satisfied by every one of those twelve agents while the tree spends 42,500. A ceiling each is not a budget. One pool, decremented before the call:
one shared pool of 20000:
completed 6 of 12 agents
stopped at w:verify-1: requested 4000 tokens with 0 left; refused before the call
A kill switch that nothing can clear. Anything may trip it; it stops the tree before the next unit of work rather than after the current one; and the first reason wins, because a later kill overwriting it destroys the only account of what went wrong.
a kill switch tripped mid-run:
completed 4: planner, lead:extract, w:extract-1, w:extract-2
stopped at w:extract-3: stopped by output-watcher: the second extractor
returned a field it had marked unreadable
A depth limit is the third thing and it is really the first one restated. An unbounded tree with a shared pool does terminate — when the pool empties — which is a termination condition made of money. A number is easier to reason about at 3am.
Every spend is attributed in a ledger, because the question after a runaway is always which one.
Sharp edge
An agent here is a node with a token cost. Nothing in this run is a model, so nothing here says whether a supervising agent would delegate well — only what the supervision mechanisms do once it has decided.
Break it first
mutation tests demo
the pool is per agent, not shared 1 failed | 11 passed exit 1
a later kill overwrites the first reason 1 failed | 11 passed exit 0
the kill is checked after the spend 1 failed | 11 passed exit 0
depth is recorded but not enforced 2 failed | 10 passed exit 1
"The kill is checked after the spend" leaves the demo green because the tree still stops — one unit of work later, having paid for it. That is the whole difference between a kill switch and a notification.
A personal teaching project, in development. The registry it builds is a teaching artifact and is not an assurance opinion about any issuer. Not affiliated with or endorsed by any employer, or by any vendor whose tools it describes. Where a unit depends on a specific flag or path, it names the version it was verified against. All units.