Curriculum/Multi-Agent Systems
When Not to Swarm
If a sequential pipeline or one agent will do, ship that. Complexity is not an achievement. Swarm only for independent map, boring reduce, priced cap, write barrier. Next track is evals.
Ship the cheapest machine that works. Complexity is not an achievement. This track taught you when splits are honest, how to type the wire, how to orchestrate without a mesh, how to debate with a grounded judge, how to map-reduce with a barrier, and how teams fail. The last skill is refusal: do not climb the ladder because a slide said “team of agents.”
The ladder, cheapest first:
- Workflow — fixed checklist (Agents: when not to agent). No extra policy.
- One agent — branching, but one allow-list and one trace. Your baseline.
- Sequential roles — tools or done-checks actually diverge; graph is code
- Supervisor + subgraph — many worker types, still no peer mesh
- Swarm — embarrassingly parallel map, boring reduce, write barrier, price-before-launch
- Debate — high stakes, grounded judge, round cap
If a checklist or one loop will do, ship that. Complexity is not an achievement.
Climb only when you mustSkip to 5 or 6 because a slide said “team of agents” and you will buy the failures in this part: ping-pong, 50-child bills, two writers, sideways injection, unreadable chats.
Do not swarm when:
- Sub-tasks share a file or a customer (race; two-writers)
- You have no merge function (reduce is the product; concat is a context bomb)
- You cannot price N children before launch (50 must not launch if 20 was the cap)
- A sequential pipeline already hits the eval (optimization that does not beat baseline)
Do not debate when the question is JSON formatting, 2+2, or an untagged FAQ. Do not add peer handoff when sequential subgraphs exist. Do not add a manager persona when you needed a hop cap.
Climbing the ladder should hurt. Each rung adds a tax line: schema, who-next, memory ACL, team eval, loop cap. If you cannot point to the new tax you are willing to pay, you are not climbing. You are decorating. Decorations invoice like services.
The picker
pick_shape in the box is a design-review function, not an LLM. If fixed_path, you ship a workflow. If you do not need a split, one agent. If you need a split and the graph is stable, sequential roles. If you have parallel items and a reduce and a price, swarm. Parallel items without reduce fall through to one agent here — in a review, that is “go write reduce,” not “launch 50 and hope.”
Missing reduce with parallel items is the most common swarm-shaped mistake. People see a list of PDFs and spawn children that each email the customer. That is N writers. Write barrier plus reduce, or do not swarm.
Run to execute this in your browser. Nothing is sent to a server.
What printed: fixed path → workflow. No split → one_agent. Split plus stable graph → sequential_roles. Parallel plus reduce plus priced → swarm. Parallel plus priced without reduce → one_agent (the fall-through). No merge function → not a swarm. Priced parallel items with reduce → swarm. Fixed path → workflow.
The last call is the teaching trap: it looks swarm-shaped and the function refuses. Write reduce, then come back. Do not add if parallel: return swarm without the other keys. Do not add debate to this picker unless high_stakes and grounded_judge are both true; even then it is a node, not a replacement for 1–4.
How this track fits together
You now have split-or-merge, typed interfaces, roles with teeth, isolation, critics who do not write, a blackboard, typed handoffs, sequential default, hop limits, supervisor stars, subgraphs, debate, grounded judges, swarms, reduce, write barriers, hop/hash ping-pong, single writers, and this ladder.
Stay in that lane. The single-agent loop (ReAct, plan-execute, HITL inside one policy) was the previous track. You used it as contrast: one allow-list versus several, one trace versus a star. You did not need to re-teach observe-act-stop.
Next track: evals — golden traces, team-level pass rate, injection that hops between agents. A multi-agent harness that never tries to induce a ping-pong will not notice one. Measure the team, not only the intern’s paragraph. Side effects, forbidden tools per role, priced launch refuses — those are evals you can name today.
If a demo still wants 50 editors on one file, you have the sentence: that is a race, not a swarm. If it wants a group chat with 50 personas, you have the sentence: personas without different contracts are one agent with a furnace. If it wants debate on every FAQ, you have the sentence: debate is tagged, grounded, capped.
Keep the 20-versus-50 launch prints in CI. Keep the single-agent baseline in CI. Deleting a persona remains a valid ship.
How agents use this
Put pick_shape (or a longer RFC table) in the design template next to ready_to_split and beats. Three functions, three meetings you can finish.
When product asks for a swarm, require parallel_items, reduce, priced, write_barrier, and a baseline comparison on a slice. When they ask for debate, require high_stakes, grounded judge goldens, round cap, no writes in the triangle.
On-call: if the incident is coordination, climb down the ladder until the failure disappears, then add back only the rungs that still beat the baseline. Climbing up in a fire is how meshes are born at 2 a.m.
A useful freeze: for one week after an incident, new personas are banned. Fixes must be allow-lists, graphs, hashes, locks, reduce, or price-before-launch. If the only proposed patch is a system-prompt paragraph, it is not a patch. It is a hope. Hopes do not close this track.
You are ready for evals when you can name a team pass, a ping-pong fixture, a two-writer fixture, and a swarm that refuses N=50. That is the work. The rest is a slide.
Check your understanding