用途
dmux-workflows 用于编排并行的 AI 智能体会话。其底层依赖 dmux——一个面向智能体运行环境的 tmux 窗格管理器,把多个智能体会话分配到不同的 tmux 窗格中并行运行,再将结果合并回主会话。
适用触发时机包括:需要并行运行多个智能体会话、需要在 Claude Code、Codex 等不同运行环境之间协调工作、任务复杂且适合分而治之,或用户明确表示“run in parallel”“split this work”“use dmux”“multi-agent”。
主要能力
- 管理 AI 智能体窗格:按 n 创建带提示词的新窗格,按 m 将窗格输出合并回主会话。
- 支持 Claude Code、Codex、OpenCode、Cline、Gemini、Qwen。
- 安装方式:审阅软件包后从其仓库安装,参见 github.com/standardagents/dmux。
使用方式
启动会话:
dmux
在 dmux 中按 'n' 创建智能体窗格并输入提示词,例如:
- 窗格 1:
Implement the auth middleware in src/auth/ - 窗格 2:
Write tests for the user service - 窗格 3:
Update API documentation
每个窗格运行各自的智能体会话,按 'm' 将结果合并回主会话。
工作流模式
模式 1:研究 + 实现——将研究与实现拆分为并行轨道。窗格 1 研究 Node.js 限流最佳实践并写入 /tmp/rate-limit-research.md;窗格 2 实现 Express API 的限流中间件。窗格 1 完成后,将发现结果合并进窗格 2 的上下文。
模式 2:多文件功能——按独立文件并行。窗格 1 创建计费功能的数据库模式与迁移;窗格 2 构建 src/api/billing/ 下的计费 API 端点;窗格 3 创建计费仪表盘 UI 组件。全部合并后,在主窗格进行集成。
模式 3:测试 + 修复循环——一个窗格跑测试,另一个修复。窗格 1(监视者)以 watch 模式运行测试套件并在失败时汇总失败信息;窗格 2(修复者)根据窗格 1 的错误输出修复失败测试。
模式 4:跨运行环境——不同任务使用不同 AI 工具。窗格 1(Claude Code)审查认证模块安全性;窗格 2(Codex)重构工具函数以提升性能;窗格 3(Claude Code)为结账流程编写端到端测试。
模式 5:代码评审流水线——并行评审视角。窗格 1 审查 src/api/ 的安全漏洞;窗格 2 审查 src/api/ 的性能问题;窗格 3 审查 src/api/ 的测试覆盖缺口。将全部评审合并为单一报告。
最佳实践
- 仅并行独立任务,不要并行化彼此依赖输出的任务。
- 明确边界,每个窗格处理不同文件或关注点。
- 策略化合并,合并前先审阅窗格输出以避免冲突。
- 对易产生文件冲突的工作,每个窗格使用独立的 git worktree。
- 注意资源消耗:每个窗格都是一次完整的智能体会话,会消耗 API 令牌,总窗格数保持在 5-6 个以下。
Git 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
互补工具
| 工具 | 作用 | 使用场景 |
|---|---|---|
| dmux | 面向智能体的 tmux 窗格管理 | 并行智能体会话 |
| Superset | 支持 10+ 并行智能体的终端 IDE | 大规模编排 |
| Claude Code Task tool | 进程内子智能体派生 | 单会话内的编程式并行 |
| Codex multi-agent | 内置智能体角色 | Codex 特定的并行工作 |
ECC 辅助工具
ECC 现包含一个辅助脚本,用于基于独立 git worktree 的外部 tmux 窗格编排:
node scripts/orchestrate-worktrees.js plan.json --execute
plan.json 示例:
{
"sessionName": "skill-audit",
"baseRef": "HEAD",
"launcherCommand": "codex exec --cwd {worktree_path} --task-file {task_file}",
"workers": [
{ "name": "docs-a", "task": "Fix skills 1-4 and write handoff notes." },
{ "name": "docs-b", "task": "Fix skills 5-8 and write handoff notes." }
]
}
该辅助脚本会:
- 为每个 worker 创建一个基于分支的 git worktree;
- 可选地将主检出中选定的 seedPaths 覆盖到每个 worker 的 worktree;
- 在 .orchestration/<session>/ 下写入每个 worker 的 task.md、handoff.md 和 status.md 文件;
- 启动一个 tmux 会话,每个 worker 一个窗格;
- 在每个窗格中启动对应的 worker 命令;
- 保留主窗格给编排器使用。
当 worker 需要访问尚未纳入 HEAD 的本地脏文件或未跟踪文件(如本地编排脚本、草稿计划或文档)时,使用 seedPaths:
{
"sessionName": "workflow-e2e",
"seedPaths": [
"scripts/orchestrate-worktrees.js",
"scripts/lib/tmux-worktree-orchestrator.js",
".claude/plan/workflow-e2e-test.json"
],
"launcherCommand": "bash {repo_root}/scripts/orchestrate-codex-worker.sh {task_file} {handoff_file} {status_file}",
"workers": [
{ "name": "seed-check", "task": "Verify seeded files are present before starting work." }
]
}
故障排查
- 窗格无响应:直接切换到该窗格,或用
tmux capture-pane -pt <session>:0.<pane-index>检查。 - 合并冲突:使用 git worktree 按窗格隔离文件变更。
- 令牌用量过高:减少并行窗格数量,每个窗格都是一次完整的智能体会话。
- 找不到 tmux:macOS 使用
brew install tmux,Linux 使用apt install tmux安装。