dmux ワークフロー
dmux(AIエージェント向けtmuxペインマネージャー)を使用して、並列AIエージェントセッションをオーケストレーションします。
使用するタイミング
- 複数のエージェントセッションを並列実行する場合
- Claude Code、Codex、その他のハーネス間で作業を調整する場合
- 分割統治法による並列処理が有効な複雑なタスク
- ユーザーが「並列実行」、「この作業を分割」、「dmuxを使用」、「マルチエージェント」などと発言した場合
dmuxとは
dmuxは、AIエージェントのペインを管理するtmuxベースのオーケストレーションツールです。
nキーを押すと、プロンプト付きの新しいペインを作成mキーを押すと、ペインの出力をメインセッションに統合- サポート対象:Claude Code、Codex、OpenCode、Cline、Gemini、Qwen
インストール: パッケージを確認後、dmuxをリポジトリからインストールします。詳細はgithub.com/standardagents/dmuxを参照してください。
クイックスタート
# dmuxセッションを開始
dmux
# エージェントペインを作成(dmux内で'n'を押し、プロンプトを入力)
# ペイン 1:「src/auth/に認証ミドルウェアを実装」
# ペイン 2:「ユーザーサービスのテストを作成」
# ペイン 3:「APIドキュメントを更新」
# 各ペインは独自のエージェントセッションを実行
# '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(監視):「テストスイートをウォッチモードで実行。テストが失敗したら、
失敗内容を要約」
ペイン 2(修正):「ペイン1のエラー出力に基づいて、失敗したテストを修正」
パターン 4:クロスハーネス
異なるAIツールを異なるタスクに使用します。
ペイン 1(Claude Code):「認証モジュールのセキュリティをレビュー」
ペイン 2(Codex):「パフォーマンス向上のためユーティリティ関数をリファクタリング」
ペイン 3(Claude Code):「チェックアウトフローのE2Eテストを作成」
パターン 5:コードレビューパイプライン
並列レビューの視点
ペイン 1:「src/api/をセキュリティ脆弱性についてレビュー」
ペイン 2:「src/api/をパフォーマンス問題についてレビュー」
ペイン 3:「src/api/をテストカバレッジのギャップについてレビュー」
# すべてのレビューを1つのレポートに統合
ベストプラクティス
- 独立したタスクのみ。 互いの出力に依存するタスクは並列化しないでください。
- 明確な境界。 各ペインは別々のファイルや関心事に取り組む必要があります。
- 戦略的に統合。 競合を避けるため、ペイン出力を統合前にレビューしてください。
- git worktreeの使用。 ファイル競合が発生しやすい作業では、ペインごとに別々のワークツリーを使用してください。
- リソースの認識。 各ペインはAPIトークンを消費します。ペインの総数は5〜6以下に抑えてください。
Git Worktree統合
重複するファイルに触れるタスク向け:
# 分離のためのワークツリーを作成
git worktree add -b feat/auth ../feature-auth HEAD
git worktree add -b feat/billing ../feature-billing HEAD
# 別々のワークツリーでエージェントを実行
# ペイン 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ツール | プロセス内サブエージェントの生成 | セッション内でのプログラム的な並列処理 |
| Codex マルチエージェント | 組み込みエージェントロール | Codex固有の並列作業 |
ECCヘルパー
ECCには、別々のgitワークツリーを使用した外部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": "スキル1〜4を修正し、引き継ぎノートを書く。" },
{ "name": "docs-b", "task": "スキル5〜8を修正し、引き継ぎノートを書く。" }
]
}
ヘルパーの機能:
- ワーカーごとにブランチバックされたgitワークツリーを1つ作成
- オプションで、メインチェックアウトから選択した
seedPathsを各ワーカーワークツリーにオーバーレイ - ワーカーごとに
.orchestration/<session>/の下にtask.md、handoff.md、status.mdファイルを書き込み - ワーカーごとに1つのペインを持つtmuxセッションを開始
- 各ワーカーコマンドをそれぞれのペインで起動
- メインペインはオーケストレーター用に解放
ワーカーが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": "作業開始前にシードされたファイルが存在することを確認する。" }
]
}
トラブルシューティング
- ペインが応答しない: 直接ペインに切り替えるか、
tmux capture-pane -pt <session>:0.<pane-index>で調査してください。 - マージ競合: gitワークツリーを使用して、ファイルの変更をペインごとに分離してください。
- トークン使用量が多い: 並列ペインの数を減らしてください。各ペインは完全なエージェントセッションです。
- tmuxが見つからない:
brew install tmux(macOS)またはapt install tmux(Linux)でインストールしてください。