AT-301a · Module 2
Team Design
4 min read
Each agent in your team should have an explicit role, a bounded set of responsibilities, and clear deliverable expectations.
Vague roles produce vague output. Instead of "research agent," define: "Research Agent — analyzes reference images, identifies color palette, composition structure, typography choices, and outputs a structured style brief in JSON format." The more specific the role definition, the more focused the agent's work. Include what the agent should NOT do — boundaries prevent scope creep.
Restrict agent capabilities to what they actually need. A research agent doesn't need file write access. A generator doesn't need web search.
The principle of least privilege applies to agent teams. When you spawn an Explore agent, it gets read-only tools — no editing. When you spawn a Bash agent, it gets command execution but no file browsing. For custom teams, specify in the prompt what tools each agent should use. This prevents agents from stepping on each other's work and reduces the chance of unintended side effects.
All communication flows through the lead. Specialists don't talk to each other directly — the lead aggregates and routes.
In a hub-and-spoke model, the lead dispatches tasks to specialists and collects results. Specialist A doesn't pass output to Specialist B directly — the lead reviews A's output, extracts what B needs, and includes it in B's prompt. This gives the lead visibility into everything and prevents miscommunication. The alternative — agents talking to each other — creates untraceable chains.
When subtasks don't depend on each other, dispatch multiple agents simultaneously. Don't wait for one to finish before starting the next.
If you need three agents to research three different topics, launch all three in the same message. The Task tool supports multiple parallel invocations. Each agent runs independently, and you collect results when they finish. Sequential dispatch wastes time — Agent B sits idle while Agent A works, even though they have no dependency. Identify the dependency graph and maximize parallelism.