Agent Orchestrator
Orchestrate complex tasks by decomposing them into subtasks, spawning autonomous sub-agents, and consolidating their work.
Core Workflow Phase 1: Task Decomposition
Analyze the macro task and break it into independent, parallelizable subtasks:
- Identify the end goal and success criteria
- List all major components/deliverables required
- Determine dependencies between components
- Group independent work into parallel subtasks
- Create a dependency graph for sequential work
Decomposition Principles:
Each subtask should be completable in isolation Minimize inter-agent dependencies Prefer broader, autonomous tasks over narrow, interdependent ones Include clear success criteria for each subtask Phase 2: Agent Generation
For each subtask, create a sub-agent workspace:
python3 scripts/create_agent.py --workspace
This creates:
// âââ SKILL.md # Generated skill file for the agent âââ inbox/ # Receives input files and instructions âââ outbox/ # Delivers completed work âââ workspace/ # Agent's working area âââ status.json # Agent state tracking
Generate SKILL.md dynamically with:
Agent's specific role and objective Tools and capabilities needed Input/output specifications Success criteria Communication protocol
See references/sub-agent-templates.md for pre-built templates.
Phase 3: Agent Dispatch
Initialize each agent by:
Writing task instructions to inbox/instructions.md Copying required input files to inbox/ Setting status.json to {"state": "pending", "started": null} Spawning the agent using the Task tool:
Spawn agent with its generated skill
Task( description=f"{agent_name}: {brief_description}", prompt=f""" Read the skill at {agent_path}/SKILL.md and follow its instructions. Your workspace is {agent_path}/workspace/ Read your task from {agent_path}/inbox/instructions.md Write all outputs to {agent_path}/outbox/ Update {agent_path}/status.json when complete. """, subagent_type="general-purpose" )
Phase 4: Monitoring (Checkpoint-based)
For fully autonomous agents, minimal monitoring is needed:
Check agent completion
def check_agent_status(agent_path): status = read_json(f"{agent_path}/status.json") return status.get("state") == "completed"
Periodically check status.json for each agent. Agents update this file upon completion.
Phase 5: Consolidation
Once all agents complete:
Collect outputs from each agent's outbox/ Validate deliverables against success criteria Merge/integrate outputs as needed Resolve conflicts if multiple agents touched shared concerns Generate summary of all work completed
Consolidation pattern
for agent in agents: outputs = glob(f"{agent.path}/outbox/*") validate_outputs(outputs, agent.success_criteria) consolidated_results.extend(outputs)
Phase 6: Dissolution & Summary
After consolidation:
Archive agent workspaces (optional) Clean up temporary files Generate final summary: What was accomplished per agent Any issues encountered Final deliverables location Time/resource metrics python3 scripts/dissolve_agents.py --workspace --archive
File-Based Communication Protocol
See references/communication-protocol.md for detailed specs.
Quick Reference:
inbox/ - Read-only for agent, written by orchestrator outbox/ - Write-only for agent, read by orchestrator status.json - Agent updates state: pending â running â completed | failed Example: Research Report Task Macro Task: "Create a comprehensive market analysis report"
Decomposition: âââ Agent: data-collector â âââ Gather market data, competitor info, trends âââ Agent: analyst â âââ Analyze collected data, identify patterns âââ Agent: writer â âââ Draft report sections from analysis âââ Agent: reviewer âââ Review, edit, and finalize report
Dependency: data-collector â analyst â writer â reviewer
Sub-Agent Templates
Pre-built templates for common agent types in references/sub-agent-templates.md:
Research Agent - Web search, data gathering Code Agent - Implementation, testing Analysis Agent - Data processing, pattern finding Writer Agent - Content creation, documentation Review Agent - Quality assurance, editing Integration Agent - Merging outputs, conflict resolution Best Practices Start small - Begin with 2-3 agents, scale as patterns emerge Clear boundaries - Each agent owns specific deliverables Explicit handoffs - Use structured files for agent communication Fail gracefully - Agents report failures; orchestrator handles recovery Log everything - Status files track progress for debugging