--- created: "2026-04-06" type: resource tags: [resource, claude-code, AI-tools, dmux, multi-agent, parallel, orchestration, ECC] source: "~/.claude/skills/dmux-workflows/SKILL.md" --- # dmux 多Agent并行编排 > **平台限制:需要 tmux,仅 Linux/macOS 可用。Windows 不可用(除非使用 WSL)。** > Windows 替代方案见 [[ECC 编排替代方案 (orchestrate 迁移)]]。 用 tmux 管理多个 AI agent 面板,每个面板跑独立 agent 会话,最后合并结果。ECC v1.10.0 中 `/ecc:orchestrate` 已标记为 legacy,底层的并行部分路由到此 skill。 相关笔记:[[Autonomous Loops 自主循环模式]]、[[Everything Claude Code 完整指南]]、[[ECC 编排替代方案 (orchestrate 迁移)]]、[[Autonomous Agent Harness 自主代理框架]] ## 什么是 dmux tmux-based 的 AI agent 面板管理工具: - 按 `n` 创建新面板 + 输入 prompt - 按 `m` 合并面板输出到主会话 - 支持:Claude Code、Codex、OpenCode、Cline、Gemini、Qwen 安装:`https://github.com/standardagents/dmux` ## 快速开始 ```bash # 启动 dmux dmux # 创建面板 (按 n,输入 prompt) # 面板1: "Implement auth middleware in src/auth/" # 面板2: "Write tests for the user service" # 面板3: "Update API documentation" # 各面板独立运行 # 完成后按 m 合并 ``` --- ## 5 种工作模式 ### 模式 1: Research + Implement (调研 + 实现) ``` 面板1 (Research): "Research best practices for rate limiting in Node.js. Write findings to /tmp/rate-limit-research.md" 面板2 (Implement): "Implement rate limiting middleware for Express API. Start with basic token bucket, we'll refine after research completes." # 面板1完成后,合并到面板2的上下文 ``` ### 模式 2: Multi-File Feature (多文件并行) ``` 面板1: "Create database schema and migrations for billing" 面板2: "Build billing API endpoints in src/api/billing/" 面板3: "Create billing dashboard UI components" # 全部合并后在主面板做集成 ``` ### 模式 3: Test + Fix Loop (测试 + 修复) ``` 面板1 (Watcher): "Run test suite in watch mode. Summarize failures." 面板2 (Fixer): "Fix failing tests based on error output from pane 1" ``` ### 模式 4: Cross-Harness (跨工具) ``` 面板1 (Claude Code): "Review security of auth module" 面板2 (Codex): "Refactor utility functions for performance" 面板3 (Claude Code): "Write E2E tests for checkout flow" ``` ### 模式 5: Code Review Pipeline (并行审查) ``` 面板1: "Review src/api/ for security vulnerabilities" 面板2: "Review src/api/ for performance issues" 面板3: "Review src/api/ for test coverage gaps" # 合并为单份报告 ``` --- ## Git Worktree 隔离 当并行任务可能编辑同一文件时,用 worktree 隔离: ```bash # 创建隔离 worktree git worktree add -b feat/auth ../feature-auth HEAD git worktree add -b feat/billing ../feature-billing HEAD # 各面板在不同 worktree 里工作 # 面板1: cd ../feature-auth && claude # 面板2: cd ../feature-billing && claude # 完成后合并分支 git merge feat/auth git merge feat/billing ``` --- ## ECC orchestrate-worktrees.js ECC 提供的 worktree 编排辅助脚本,位于 `~/.claude/scripts/orchestrate-worktrees.js`。 ### 使用方式 ```bash # 干跑 (只打印计划) node ~/.claude/scripts/orchestrate-worktrees.js plan.json # 只写编排文件 node ~/.claude/scripts/orchestrate-worktrees.js plan.json --write-only # 执行 (创建 worktree + tmux session) node ~/.claude/scripts/orchestrate-worktrees.js plan.json --execute ``` ### plan.json 格式 ```json { "sessionName": "feature-auth", "baseRef": "HEAD", "launcherCommand": "claude -p \"$(cat {task_file})\"", "workers": [ { "name": "backend-api", "task": "Implement auth API endpoints" }, { "name": "frontend-ui", "task": "Build login UI components" }, { "name": "tests", "task": "Write integration tests for auth" } ] } ``` ### 可用占位符 | 占位符 | 说明 | |--------|------| | `{worker_name}` | Worker 名称 | | `{worker_slug}` | Worker slug | | `{session_name}` | Session 名称 | | `{repo_root}` | 仓库根目录 | | `{worktree_path}` | Worktree 路径 | | `{branch_name}` | 分支名 | | `{task_file}` | 任务文件路径 | | `{handoff_file}` | 交接文件路径 | | `{status_file}` | 状态文件路径 | ### seedPaths:共享未提交文件 当 worker 需要访问主 checkout 中未提交的文件时(本地脚本、草稿计划等): ```json { "sessionName": "workflow-e2e", "seedPaths": [ "scripts/orchestrate-worktrees.js", ".claude/plan/workflow-e2e-test.json" ], "launcherCommand": "bash {repo_root}/scripts/worker.sh {task_file}", "workers": [ { "name": "seed-check", "task": "Verify seeded files are present." } ] } ``` ### 查看编排状态 ```bash node ~/.claude/scripts/orchestration-status.js plan.json ``` 输出包含:session 活跃度、tmux 面板元数据、worker 状态、目标、交接摘要。 --- ## 实际例子:smart-support 并行开发 ### 例1:反馈功能三面板并行 ```json { "sessionName": "feedback-feature", "baseRef": "HEAD", "launcherCommand": "claude -p \"$(cat {task_file})\"", "workers": [ { "name": "backend-api", "task": "In backend/app/feedback/, create models.py (Feedback SQLAlchemy model) and router.py (POST /api/feedback, GET /api/feedback/stats). Follow backend/app/replay/router.py patterns. Write tests in backend/tests/unit/test_feedback.py FIRST. Run pytest --cov=app." }, { "name": "frontend-ui", "task": "In frontend/src/components/, create FeedbackButton.tsx (thumbs-up/down). onClick calls POST /api/feedback. Integrate into chat message component." }, { "name": "docs-update", "task": "Update docs/ARCHITECTURE.md to add feedback module. Update docs/DEVELOPMENT-PLAN.md with feedback feature." } ] } ``` ```bash # 执行 node ~/.claude/scripts/orchestrate-worktrees.js .claude/plan/feedback.json --execute # 完成后合并 git merge feedback-feature/backend-api git merge feedback-feature/frontend-ui git merge feedback-feature/docs-update ``` ### 例2:Code Review Pipeline ```json { "sessionName": "review-pipeline", "baseRef": "HEAD", "launcherCommand": "claude -p --allowedTools 'Read,Grep,Glob' \"$(cat {task_file})\"", "workers": [ { "name": "security", "task": "Review backend/app/ for security vulnerabilities. Write report to /tmp/security-review.md" }, { "name": "performance", "task": "Review backend/app/ for performance issues. Write report to /tmp/perf-review.md" }, { "name": "coverage", "task": "Analyze backend/tests/ for coverage gaps. Write report to /tmp/coverage-review.md" } ] } ``` --- ## 最佳实践 1. **只并行独立任务** -- 有依赖关系的不要并行 2. **清晰边界** -- 每个面板处理不同的文件或关注点 3. **策略性合并** -- 合并前先 review 面板输出 4. **用 worktree** -- 可能编辑同一文件时必须隔离 5. **控制面板数** -- 每个面板消耗 API token,建议不超过 5-6 个 ## 互补工具对比 | 工具 | 功能 | 适用 | |------|------|------| | dmux | tmux 面板管理 | 并行 agent 会话 | | Superset | 终端 IDE (10+ 并行) | 大规模编排 | | Claude Code Task tool | 进程内子 agent | 会话内程序化并行 | | orchestrate-worktrees.js | ECC worktree 编排 | 长时间/跨工具会话 | ## 故障排除 | 问题 | 解决 | |------|------| | 面板无响应 | `tmux capture-pane -pt :0.` 检查 | | 合并冲突 | 用 git worktree 隔离 | | Token 消耗高 | 减少并行面板数 | | tmux 未找到 | `brew install tmux` (macOS) / `apt install tmux` (Linux) | ## Related - [[Autonomous Loops 自主循环模式]] - [[Ralphinho RFC-DAG 编排模式]] - [[Everything Claude Code 完整指南]]