agent-swarm

内容来源:README.md(说明文档) · 原始地址 · 查看安装指南

原始内容

agent-swarm

Enforcement system for phase-gated, multi-agent workflows in Claude Code. Routes all tool calls through a central MCP router, enforces per-phase tool restrictions, and spawns specialized subagents under a role-based permission model.

Installation

claude plugin install agent-swarm

Registers a mcp-router MCP server and installs PreToolUse, SessionStart, SessionEnd, and PreCompact hooks.

Requirements: Python 3.11+, git, gh CLI (for PR workflows)


Workflows

Four workflow definitions live in config/workflows/*.yaml. Each defines phases, tool restrictions per phase, eligible agent roles, checkpoint gates, and transition rules.

/iterate — TDD Loop

Well-scoped task with test-driven implementation and adversarial review gates.

test_writing → implement → test ─── pass + confident ──→ review → complete
                  ↑              ├── adversary fails ──→ implement
                  └──────────────┴── weak suite ───────→ test_writing
Phase What happens Can write code?
test_writing Write tests first, cover edge cases Yes
implement Write minimal code to pass tests Yes
test Run tests, adversary evaluates suite quality No
review Verify conventions, commit if clean No
complete Terminal

Gate logic: Tests pass + high confidence → review. Adversary-written tests fail → implement. Tests pass but weak suite → test_writing. Review clean → complete. Review issues → implement.

Invoke: /iterate


/develop — Full SDLC Simulation

Significant features requiring team simulation: requirements, research, design, TDD implementation, adversarial review, and PM acceptance.

intake → research → design ─(checkpoint)→ branch
  → test_writing → implement → test ─(checkpoint)→ review ─(checkpoint)→ merge
  → acceptance ─(checkpoint)→ complete
Phase Eligible agents Can write code?
intake PM No
research Researcher No
design Architect No (checkpoint)
branch Git-agent No
test_writing Implementer Yes
implement Implementer Yes
test Implementer, Debugger No (checkpoint)
review Reviewer No (checkpoint)
merge Git-agent No
acceptance PM No (checkpoint)
complete

Checkpoints at design, test, review, and acceptance block advancement until the responsible agent passes them. Max 8 concurrent agents, 3 agent respawns. Integrates with GitHub issues for feature tickets, subtasks, and followups.

Invoke: /develop


/experiment — Autonomous Experiment Loop

Research experiments with eval gates, journal memory, and iteration limits.

read → plan → work → eval ─── pass ──→ journal → decide ─── done
                ↑      └── fail ──→ work          └── iterate → plan
Phase What happens Can write code?
read Read goal.yaml, understand experiment No
plan Design next iteration, research if needed No
work Implement the experiment (eval files protected) Yes
eval Run eval suite (eval files protected) No
journal Record results to journal/ Journal only
decide Continue iterating or stop No
done Terminal

Max 10 iterations, 4 concurrent agents. Eval files are write-protected during both work and eval phases to prevent gaming.

Invoke: /experiment


Orchestrate — Parallel Task Dispatch

Breaks a feature into independent subtasks, dispatches subagents (each running their own workflow), and manages PRs per task group.

Phase What happens
intake Gather missing info (skipped if input is complete)
design Plan architecture, document decisions
orchestrate Build task queue, dispatch subagents, poll for completion

Each group in the task queue maps to a PR. Stop condition: queue empty + no agents in flight + no unaddressed PR comments + clean working tree + all groups have PRs.

Invoke: /orchestrate


Skills

Skills are invocable via /skill_name. They provide workflow entry points, utilities, and reference documentation.

Workflow Skills

Skill Invoke Purpose
iterate /iterate TDD loop with phase gates
develop /develop Full SDLC team simulation
experiment /experiment Autonomous experiment with eval gates
orchestrate /orchestrate Task queue dispatch with parallel subagents
implement /implement General implementation (default workflow, no TDD)
debug /debug Systematic debugging: triage → reproduce → hypothesize → prove → fix → verify
teams-develop /teams-develop Full PR lifecycle using native Claude Code teams
agent-teams-workflow /agent-teams-workflow Coordinate agent teams from a design doc or plan

Orchestration Skills

Skill Invoke Purpose
parallel-orchestrate /parallel-orchestrate Dispatch N independent TDD subagents from a YAML manifest with worktree isolation
plan-to-manifest /plan-to-manifest Translate an implementation plan into a parallel orchestration YAML manifest
pipeline /pipeline End-to-end: design doc → plan → manifest → parallel orchestration → branch
poll /poll Controlled polling for async operations at specified intervals

Utility Skills

Skill Invoke Purpose
verify /verify Run code quality checks (ruff, black, mypy, pytest)
pr-comment /pr-comment PR review comment workflow — understand the concern before fixing
spawn /spawn Reference for spawning subagents with correct prompt structure
ctx /ctx View and manage hierarchical context for the current directory
remember /remember Save a learning to persistent memory with automatic scope inference
distill /distill Distill session episodes into persistent memory patterns

Agent Roles

Nine specialized agent types, each with a defined toolset and model assignment. Agents are spawned as subagents by workflows or directly by the main agent.

Agent Model Purpose Can write?
explorer haiku Fast codebase exploration, file search, pattern mapping No
researcher haiku Documentation lookup, library docs, API patterns No
architect sonnet Architecture/design decisions, multi-file planning No
implementer sonnet/opus Code implementation, modifications, side-effect safety Yes
reviewer sonnet Code review, quality checking, test coverage, security No
debugger sonnet Debug and fix: reproduce first, trace root cause, minimal fix Yes
adversary sonnet Adversarial test quality evaluation, coverage gaps, legitimacy Yes
git-agent haiku Staging, committing, PR creation, branch management No (shell only)
pm Intake, acceptance, decision-making No

Permission System

Three layers enforce tool restrictions:

Layer 1 — settings.json: Denies native Read, Write, Edit, Glob, Grep, WebFetch, WebSearch to the main agent, forcing file operations through the router.

Layer 2 — PreToolUse hook (hooks/native-tool-blocking.py): Runs on every tool call. Blocks everything except mcp__router__* / mcp__plugin__* tools, Bash calls prefixed with mcp-call, and system tools (Task, SendMessage, AskUserQuestion, Skill, etc.).

Layer 3 — Router permissions (config/permissions.yaml): Multi-level whitelist:

  • Global defaults (allowed/blocked/superblocked tools)
  • Roles (read_only, editor, shell_safe, shell_full, workflow_control) — define tool category bundles
  • Agents (per agent type) — inherit from roles, add agent-specific overrides
  • Workflows (per workflow × phase) — override agent permissions within a specific phase

Tool categories: FILE_READ, FILE_WRITE, FILE_SEARCH, CODE_QUERY, CODE_EDIT, SHELL_SAFE, SHELL_FULL, WEB_RESEARCH, USER_INTERACTION, SUBAGENT, WORKFLOW_CONTROL.

Superblocked tools (never allowed regardless of role/phase): direct Read, Write, Edit, Glob, Grep — must use router equivalents.

Subagent tool access

Subagents spawned via Agent or Task reach MCP tools through a shell alias:

mcp-call native__read_file '{"file_path": "/path/to/file"}'
mcp-call native__bash '{"command": "pytest tests/"}'

Debugging

Symptom Likely cause Fix
[BLOCKED] on native tool Hook blocking Use mcp__router__native__* equivalent
Permission denied from router Wrong phase for that tool Check config/permissions.yaml
Subagent can't write files Phase restriction Check workflow YAML for current phase

Hooks

Hook File Purpose
PreToolUse (Task/Agent) agent-dispatch.py Intercept agent/task spawning for registration and briefing
PreToolUse (*) native-tool-blocking.py Block native tools, force router usage
SessionStart session-start.py Initialize daemon, load state
SessionEnd session-end.py Persist state, cleanup
PreCompact pre-compacting.py Save context before compaction

Additional hook support files: hook_logging.py, subagent-briefing.md (protocol injected into every subagent), subagent-mcp-bypass.py.


MCP Backends

The router proxies tool calls to five backends, configured in config/backends.json:

Backend Prefix Purpose
native native__* File I/O, search, bash, web — core tools
serena serena__* Language-server-powered code intelligence (symbols, references, rename)
context7 context7__* Library documentation lookup
playwright playwright__* Browser automation
workflow workflow__* Workflow state, phase transitions, agent registry

Architecture

Main Agent
    │
    ├─ mcp__router__* tools
    │       │
    │  MCP Router (lib/router.py)  ← TCP 127.0.0.1:7523
    │       │
    │  Controller (lib/controller.py)
    │  Manages: phase state, agent registry, permissions
    │       │
    │  Daemon (lib/daemon.py)
    │  Process lifecycle, backend management
    │
    └─ Agent/Task tool → Subagents
                       │
                  mcp-call alias → Router → Controller

Key modules

Path Purpose
lib/daemon.py Process entry point; owns Router and Controller
lib/router.py MCP/JSON-RPC server; translates calls, enforces permissions
lib/controller.py Workflow state, phase transitions, agent registry
lib/iterate_workflow.py TDD loop implementation
lib/experiment_workflow.py Experiment loop with eval gates
lib/debug_workflow.py Systematic debugging workflow
lib/orchestrate.py Task queue management, subagent dispatch
lib/orchestrator.py Higher-level orchestration coordination
lib/workflow_server.py MCP server for workflow state tools
lib/workflow_base.py Base classes for workflow engines
lib/permissions.py Permission evaluation logic
lib/backends.py Backend process management
lib/adversary_gate.py Adversarial test quality evaluation
lib/review_gate.py Code review gate logic
lib/prompt_builder.py Subagent prompt assembly
lib/summarization_service.py Context summarization for compaction
hooks/native-tool-blocking.py PreToolUse enforcement
hooks/agent-dispatch.py Agent/Task interception and registration
hooks/subagent-briefing.md Protocol injected into every subagent
config/workflows/*.yaml Phase definitions, tool whitelists, transition rules
config/permissions.yaml Role × phase permission matrix
config/backends.json Backend process configuration
skills/ Invocable skill definitions (18 skills)
agents/ Agent role definitions (9 roles)
commands/ Command definitions (implement, spawn)

Telemetry

Every tool call routes through the MCP router, giving full observability over sessions.

Metric Detail
Token usage Input/output tokens per session and day
Call counts Broken down by tool and backend
Timing Response latency per backend
Summarization Compaction events and performance

Data is stored locally and processed by lib/jsonl_extractor.py into the schema defined in lib/telemetry_schema_v2.py. Storage managed by lib/stores/ (JSONL writer, compression, events). OpenTelemetry export is configured separately at ~/.claude/infra.