---
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 <session>:0.<pane>` 检查 |
| 合并冲突 | 用 git worktree 隔离 |
| Token 消耗高 | 减少并行面板数 |
| tmux 未找到 | `brew install tmux` (macOS) / `apt install tmux` (Linux) |

## Related

- [[Autonomous Loops 自主循环模式]]
- [[Ralphinho RFC-DAG 编排模式]]
- [[Everything Claude Code 完整指南]]
