108 lines
3.4 KiB
Markdown
108 lines
3.4 KiB
Markdown
---
|
|||
|
|
name: dispatching-parallel-agents
|
||
|
|
description: "Dispatch one agent per independent problem in parallel."
|
||
|
|
version: 1.0.0
|
||
|
|
author: Hermes Agent (adapted from obra/superpowers)
|
||
|
|
license: MIT
|
||
|
|
platforms: [linux]
|
||
|
|
metadata:
|
||
|
|
hermes:
|
||
|
|
tags: [parallel, delegation, subagent, dispatch]
|
||
|
|
related_skills: [subagent-driven-development, agent-routing]
|
||
|
|
---
|
||
|
|
|
||
|
|
# Dispatching Parallel Agents
|
||
|
|
|
||
|
|
When you have multiple unrelated failures (different test files, different subsystems, different bugs), investigating them sequentially wastes time. Each investigation is independent and can happen in parallel.
|
||
|
|
|
||
|
|
**Core principle:** Dispatch one agent per independent problem domain. Let them work concurrently.
|
||
|
|
|
||
|
|
## When to Use
|
||
|
|
|
||
|
|
- 3+ test files failing with different root causes
|
||
|
|
- Multiple subsystems broken independently
|
||
|
|
- Each problem can be understood without context from others
|
||
|
|
- No shared state between investigations
|
||
|
|
|
||
|
|
## When NOT to Use
|
||
|
|
|
||
|
|
- Failures are related (fix one might fix others)
|
||
|
|
- Need to understand full system state
|
||
|
|
- Agents would interfere with each other
|
||
|
|
- Exploratory debugging (you don't know what's broken yet)
|
||
|
|
|
||
|
|
## The Pattern
|
||
|
|
|
||
|
|
### 1. Identify Independent Domains
|
||
|
|
|
||
|
|
Group failures by what's broken:
|
||
|
|
- File A tests: Tool approval flow
|
||
|
|
- File B tests: Batch completion behavior
|
||
|
|
- File C tests: Abort functionality
|
||
|
|
|
||
|
|
Each domain is independent - fixing tool approval doesn't affect abort tests.
|
||
|
|
|
||
|
|
### 2. Create Focused Agent Tasks
|
||
|
|
|
||
|
|
Each agent gets:
|
||
|
|
- Specific scope: One test file or subsystem
|
||
|
|
- Clear goal: Make these tests pass
|
||
|
|
- Constraints: Don't change other code
|
||
|
|
- Expected output: Summary of what you found and fixed
|
||
|
|
|
||
|
|
### 3. Dispatch in Parallel
|
||
|
|
|
||
|
|
Issue all subagent dispatches in the same response — they run in parallel. Multiple dispatch calls in one response = parallel execution. One per response = sequential.
|
||
|
|
|
||
|
|
### 4. Review and Integrate
|
||
|
|
|
||
|
|
When agents return:
|
||
|
|
- Read each summary
|
||
|
|
- Verify fixes don't conflict
|
||
|
|
- Run full test suite
|
||
|
|
- Integrate all changes
|
||
|
|
|
||
|
|
## Agent Prompt Structure
|
||
|
|
|
||
|
|
Good agent prompts are:
|
||
|
|
1. Focused - One clear problem domain
|
||
|
|
2. Self-contained - All context needed to understand the problem
|
||
|
|
3. Specific about output - What should the agent return?
|
||
|
|
|
||
|
|
Example:
|
||
|
|
```
|
||
|
|
Fix the 3 failing tests in src/agents/agent-tool-abort.test.ts:
|
||
|
|
|
||
|
|
1. "should abort tool with partial output capture" - expects 'interrupted at' in message
|
||
|
|
2. "should handle mixed completed and aborted tools" - fast tool aborted instead of completed
|
||
|
|
3. "should properly track pendingToolCount" - expects 3 results but gets 0
|
||
|
|
|
||
|
|
These are timing/race condition issues. Your task:
|
||
|
|
|
||
|
|
1. Read the test file and understand what each test verifies
|
||
|
|
2. Identify root cause - timing issues or actual bugs?
|
||
|
|
3. Fix by:
|
||
|
|
- Replacing arbitrary timeouts with event-based waiting
|
||
|
|
- Fixing bugs in abort implementation if found
|
||
|
|
- Adjusting test expectations if testing changed behavior
|
||
|
|
|
||
|
|
Do NOT just increase timeouts - find the real issue.
|
||
|
|
|
||
|
|
Return: Summary of what you found and what you fixed.
|
||
|
|
```
|
||
|
|
|
||
|
|
## Common Mistakes
|
||
|
|
|
||
|
|
- Too broad: "Fix all the tests" - agent gets lost
|
||
|
|
- No context: "Fix the race condition" - agent doesn't know where
|
||
|
|
- No constraints: Agent might refactor everything
|
||
|
|
- Vague output: "Fix it" - you don't know what changed
|
||
|
|
|
||
|
|
## Verification
|
||
|
|
|
||
|
|
After agents return:
|
||
|
|
1. Review each summary - Understand what changed
|
||
|
|
2. Check for conflicts - Did agents edit same code?
|
||
|
|
3. Run full suite - Verify all fixes work together
|
||
|
|
4. Spot check - Agents can make systematic errors
|