7.7 KiB
7.7 KiB
created, type, tags, source
| created | type | tags | source | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-04-06 | resource |
|
~/.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
快速开始
# 启动 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 隔离:
# 创建隔离 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。
使用方式
# 干跑 (只打印计划)
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 格式
{
"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 中未提交的文件时(本地脚本、草稿计划等):
{
"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." }
]
}
查看编排状态
node ~/.claude/scripts/orchestration-status.js plan.json
输出包含:session 活跃度、tmux 面板元数据、worker 状态、目标、交接摘要。
实际例子:smart-support 并行开发
例1:反馈功能三面板并行
{
"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."
}
]
}
# 执行
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
{
"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" }
]
}
最佳实践
- 只并行独立任务 -- 有依赖关系的不要并行
- 清晰边界 -- 每个面板处理不同的文件或关注点
- 策略性合并 -- 合并前先 review 面板输出
- 用 worktree -- 可能编辑同一文件时必须隔离
- 控制面板数 -- 每个面板消耗 API token,建议不超过 5-6 个
互补工具对比
| 工具 | 功能 | 适用 |
|---|---|---|
| dmux | tmux 面板管理 | 并行 agent 会话 |
| Superset | 终端 IDE (10+ 并行) | 大规模编排 |
| Claude Code Task tool | 进程内子 agent | 会话内程序化并行 |
| orchestrate-worktrees.js | ECC worktree 编排 | 长时间/跨工具会话 |
故障排除
| 问题 | 解决 |
|---|---|
| 面板无响应 | tmux capture-pane -pt <session>:0.<pane> 检查 |
| 合并冲突 | 用 git worktree 隔离 |
| Token 消耗高 | 减少并行面板数 |
| tmux 未找到 | brew install tmux (macOS) / apt install tmux (Linux) |