diff --git a/src/core/token-isolation/spawn-agent.xml b/src/core/token-isolation/spawn-agent.xml new file mode 100644 index 00000000..7b6d42a8 --- /dev/null +++ b/src/core/token-isolation/spawn-agent.xml @@ -0,0 +1,66 @@ + + + Spawn an agent in an isolated subprocess with token isolation + + + {project-root}/_bmad/core/config.yaml + {project-root}/_bmad/bmm/config.yaml:token_management + + + + + + + + + + + + + + Verify agent_type is valid (exists in agent-manifest.csv) + Verify prompt is not empty + Set default model to sonnet if not specified + + + + Load agent persona from {project-root}/_bmad/_config/agent-manifest.csv + Load any agent customizations from {project-root}/_bmad/_config/agents/ + Construct full agent prompt with persona + task prompt + + + + Use specified output path + + Generate path: {output_folder}/temp/{agent_type}-{timestamp}.md + + Append output instructions to prompt: + "Write your complete output to: {output_file} + Return only a brief summary (under 500 words) to this conversation." + + + + + Use Task tool with: + - description: "{agent_type}: {task_description}" + - prompt: {constructed_prompt} + - subagent_type: "general-purpose" + - model: {model} + - run_in_background: {run_in_background} + + + + + Wait for agent completion + Return agent_id for later retrieval + Return summary and output file path to caller + + + + + + + + + + diff --git a/src/core/token-isolation/token-isolation.md b/src/core/token-isolation/token-isolation.md new file mode 100644 index 00000000..dcd88575 --- /dev/null +++ b/src/core/token-isolation/token-isolation.md @@ -0,0 +1,103 @@ +# Token Isolation Architecture + +## Overview + +Token isolation prevents context bloat in multi-agent scenarios by running agents in isolated subprocesses. Each agent gets its own 150K token context window without consuming the main session's tokens. + +## Architecture Diagram + +``` +┌─────────────────────────────────────────────────────────────────────────┐ +│ TOKEN ISOLATION ARCHITECTURE │ +├─────────────────────────────────────────────────────────────────────────┤ +│ Main Session (150K tokens preserved) │ +│ │ │ +│ ▼ Task Tool spawns subprocess │ +│ ┌────────────────────┐ │ +│ │ Agent Instance │ ◄── Own 150K token context │ +│ │ (subprocess) │ ◄── Doesn't consume main session │ +│ └─────────┬──────────┘ │ +│ │ │ +│ ▼ Only summary returns │ +│ "Task complete. Output: temp/raw/file.md" │ +└─────────────────────────────────────────────────────────────────────────┘ +``` + +## Core Rules + +1. **ALWAYS** use Task tool to invoke agents (preserves main session tokens) +2. Agents write to files, not return full content to main session +3. Use `run_in_background: true` for parallel independent agents +4. Sequential agents receive previous output via content injection +5. Summaries returned to main session must be < 2000 tokens + +## Agent Execution Template + +```javascript +Task({ + description: "agent-name: brief task description", + prompt: agentPrompt, + subagent_type: "general-purpose", + model: "sonnet", // or "haiku" for quick tasks + run_in_background: false // true for parallel +}); +``` + +## Collaboration Patterns + +### Sequential Pattern +``` +Agent A → Agent B → Agent C +``` +Use when each step depends on previous output. + +### Parallel Pattern +``` +Agent A ─┐ +Agent B ─┼→ Synthesis +Agent C ─┘ +``` +Use when analyses are independent. + +### Debate Pattern +``` +Proposer ↔ Challenger → Refined Output +``` +Use for critical decisions requiring adversarial review. + +### War Room Pattern +``` +All Agents → Intensive Collaboration → Solution +``` +Use for complex urgent problems. + +## Output Management + +### File-Based Output +Agents should write outputs to: +- `{output_folder}/temp/` - Temporary working files +- `{output_folder}/raw/` - Raw agent outputs +- `{output_folder}/final/` - Validated final outputs + +### Summary Protocol +When an agent completes: +1. Write full output to designated file +2. Return only: status, file path, key findings (< 2000 tokens) +3. Main session can read file if details needed + +## Token Budget Tracking + +| Threshold | Action | +|-----------|--------| +| 0-80% | Normal operation | +| 80-90% | Warning: Consider wrapping up | +| 90-100% | Critical: Summarize and hand off | +| 100%+ | HALT: Must spawn new subprocess | + +## Best Practices + +1. **Pre-plan agent work** - Know what each agent needs to do +2. **Minimize cross-agent data** - Pass file references, not content +3. **Use haiku for simple tasks** - Reduces cost and latency +4. **Batch related work** - One agent, multiple related tasks +5. **Checkpoint frequently** - Save progress to files regularly