AgentSkillsCN

dispatching-parallel-agents

当您面临两项或多项彼此独立、无需共享状态或遵循先后依赖关系即可并行开展的任务时使用。

SKILL.md
--- frontmatter
name: dispatching-parallel-agents
description: Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies

Dispatching Parallel Agents

<ROLE> Parallel Execution Architect. Your reputation depends on maximizing throughput while preventing conflicts and merge disasters. A botched parallel dispatch wastes more time than sequential work ever would. </ROLE>

Overview

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.

Invariant Principles

  1. Independence gate: Verify no shared state, no sequential dependencies, no file conflicts before dispatch
  2. One agent per domain: Each agent owns exactly one problem scope; overlap kills parallelism
  3. Self-contained prompts: Agent receives ALL context needed; no cross-agent dependencies
  4. Constraint boundaries: Explicit limits prevent scope creep ("do NOT change X")
  5. Merge verification required: Agent work integrated only after conflict check + full test suite

Inputs

InputRequiredDescription
tasksYesList of 2+ tasks to evaluate for parallel dispatch
context.test_failuresNoTest output showing failures to distribute
context.files_involvedNoFiles each task may touch

Outputs

OutputTypeDescription
dispatch_decisionDecisionParallel vs sequential with rationale
agent_promptsTextSelf-contained prompts per agent
merge_reportInlineConflict check + test results summary

When to Use

dot
digraph when_to_use {
    "Multiple failures?" [shape=diamond];
    "Are they independent?" [shape=diamond];
    "Single agent investigates all" [shape=box];
    "One agent per problem domain" [shape=box];
    "Can they work in parallel?" [shape=diamond];
    "Sequential agents" [shape=box];
    "Parallel dispatch" [shape=box];

    "Multiple failures?" -> "Are they independent?" [label="yes"];
    "Are they independent?" -> "Single agent investigates all" [label="no - related"];
    "Are they independent?" -> "Can they work in parallel?" [label="yes"];
    "Can they work in parallel?" -> "Parallel dispatch" [label="yes"];
    "Can they work in parallel?" -> "Sequential agents" [label="no - shared state"];
}
<CRITICAL> Independence verification is the gate. Answer ALL of these BEFORE dispatching: </CRITICAL> <analysis> Before dispatching, answer: - Are failures in different subsystems/files? - Can each be understood without the others? - Would fixing one affect the others? - Will agents edit same files? </analysis>

Use when:

  • 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

Don't use when:

  • Failures are related (fix one might fix others)
  • Need to understand full system state
  • Agents would interfere with each other (same files, shared resources)
  • 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 Prompts

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

typescript
Task("Fix agent-tool-abort.test.ts failures")
Task("Fix batch-completion-behavior.test.ts failures")
Task("Fix tool-approval-race-conditions.test.ts failures")
// All three run concurrently

4. Review and Integrate

<CRITICAL> NEVER integrate agent work without completing ALL verification steps. Skipping any step causes merge disasters and silent regressions. </CRITICAL> <reflection> After agents return: 1. Read each summary - understand what changed 2. Check conflict potential - same files edited? 3. Run full test suite - verify integration 4. Spot check fixes - agents make systematic errors

Only integrate when: summaries reviewed, no file conflicts, tests green. </reflection>


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?

Template

markdown
Fix [SPECIFIC SCOPE]:

Failures:
1. [test name] - [expected vs actual]
2. [test name] - [expected vs actual]

Context: [paste error messages, relevant code pointers]

Constraints:
- Do NOT change [specific boundaries]
- Focus only on [scope]

Return: Summary of root cause + changes made

Full Example

markdown
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

Anti-patternProblemFix
"Fix all the tests"Agent gets lostSpecify exact file/tests
No error contextAgent guesses wrongPaste actual error messages and test names
No constraintsAgent refactors everythingAdd "do NOT change X"
"Fix it" outputYou don't know what changedRequire cause+changes summary

Anti-Patterns

<FORBIDDEN> - Dispatching tasks that share mutable state - Overlapping file ownership between agents - Vague prompts ("fix the tests", "make it work") - Skipping conflict check before merge - Integrating without running full test suite - Dispatching exploratory work (unknown scope) - Parallel dispatch when failures might be related </FORBIDDEN>

Real Example

Scenario: 6 failures across 3 files post-refactor

Domain isolation:

  • agent-tool-abort.test.ts (3 failures): timing issues
  • batch-completion-behavior.test.ts (2 failures): event structure bug
  • tool-approval-race-conditions.test.ts (1 failure): async waiting

Dispatch: 3 parallel agents, each scoped to one file

Results:

  • Agent 1: Replaced timeouts with event-based waiting
  • Agent 2: Fixed event structure bug (threadId in wrong place)
  • Agent 3: Added wait for async tool execution to complete

Integration: All fixes independent, zero conflicts, full suite green

Gain: 3 problems solved in time of 1


Self-Check

Before completing:

  • Independence verified: no shared state, no file overlap
  • Each agent prompt is self-contained with full context
  • Constraints explicitly state what NOT to change
  • All agent summaries reviewed before integration
  • Conflict check performed on returned work
  • Full test suite green after merge
<CRITICAL> If ANY unchecked: STOP and fix. Parallel dispatch without independence verification causes merge disasters. </CRITICAL>

Key Benefits

  1. Parallelization - Multiple investigations happen simultaneously
  2. Focus - Each agent has narrow scope, less context to track
  3. Independence - Agents don't interfere with each other
  4. Speed - 3 problems solved in time of 1

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

Real-World Impact

From debugging session (2025-10-03):

  • 6 failures across 3 files
  • 3 agents dispatched in parallel
  • All investigations completed concurrently
  • All fixes integrated successfully
  • Zero conflicts between agent changes

<FINAL_EMPHASIS> Parallel dispatch is a force multiplier when used correctly, and a merge disaster when used carelessly. The independence gate is non-negotiable. Verify before dispatch, verify before integration. Your reputation depends on the rigor of your verification, not the speed of your dispatch. </FINAL_EMPHASIS>