dmux 워크플로우은(는) 무엇을 하나요?
dmux를 사용하여 AI 에이전트 세션을 병렬로 오케스트레이션합니다. dmux는 에이전트 하네스를 위한 tmux 창 관리자입니다.
활성화 시점
- 여러 에이전트 세션을 병렬로 실행할 때
- 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: "Implement the auth middleware in src/auth/"
# 창 2: "Write tests for the user service"
# 창 3: "Update API documentation"
# 각 창은 자체 에이전트 세션을 실행
# 'm'을 눌러 결과를 병합
워크플로우 패턴
패턴 1: 연구 + 구현
연구와 구현을 병렬 트랙으로 분할:
창 1 (연구): "Research best practices for rate limiting in Node.js.
Check current libraries, compare approaches, and write findings to
/tmp/rate-limit-research.md"
창 2 (구현): "Implement rate limiting middleware for our Express API.
Start with a basic token bucket, we'll refine after research completes."
# 창 1 완료 후, 연구 결과를 창 2의 컨텍스트로 병합
패턴 2: 다중 파일 기능
독립적인 파일 간 작업 병렬화:
창 1: "Create the database schema and migrations for the billing feature"
창 2: "Build the billing API endpoints in src/api/billing/"
창 3: "Create the billing dashboard UI components"
# 모두 병합한 후 메인 창에서 통합 작업 수행
패턴 3: 테스트 + 수정 루프
한 창에서 테스트를 실행하고 다른 창에서 수정:
창 1 (감시자): "Run the test suite in watch mode. When tests fail,
summarize the failures."
창 2 (수정자): "Fix failing tests based on the error output from pane 1"
패턴 4: 교차 하네스
서로 다른 작업에 다양한 AI 도구 사용:
창 1 (Claude Code): "Review the security of the auth module"
창 2 (Codex): "Refactor the utility functions for performance"
창 3 (Claude Code): "Write E2E tests for the checkout flow"
패턴 5: 코드 리뷰 파이프라인
병렬 리뷰 관점:
창 1: "Review src/api/ for security vulnerabilities"
창 2: "Review src/api/ for performance issues"
창 3: "Review src/api/ for test coverage gaps"
# 모든 리뷰를 단일 보고서로 병합
모범 사례
- 독립적인 작업만 병렬화하세요. 서로의 출력에 의존하는 작업은 병렬화하지 마세요.
- 명확한 경계를 설정하세요. 각 창은 서로 다른 파일이나 영역을 담당해야 합니다.
- 전략적으로 병합하세요. 충돌을 피하기 위해 창 출력을 병합하기 전에 검토하세요.
- Git 워크트리를 사용하세요. 파일 충돌이 발생하기 쉬운 작업의 경우 창마다 별도의 워크트리를 사용하세요.
- 리소스 인지. 각 창은 API 토큰을 사용하므로 총 창 수를 5-6개 미만으로 유지하세요.
Git 워크트리 통합
겹치는 파일을 다루는 작업의 경우:
# 격리를 위한 워크트리 생성
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": "Fix skills 1-4 and write handoff notes." },
{ "name": "docs-b", "task": "Fix skills 5-8 and write handoff notes." }
]
}
헬퍼는:
- 작업자당 하나의 브랜치 백업 Git 워크트리를 생성합니다.
- 선택적으로 메인 체크아웃에서 선택한
seedPaths를 각 작업자 워크트리에 오버레이합니다. .orchestration/<session>/아래에 작업자별task.md,handoff.md,status.md파일을 작성합니다.- 작업자당 하나의 창으로 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": "Verify seeded files are present before starting work." }
]
}
문제 해결
- 창이 응답하지 않음: 창으로 직접 전환하거나
tmux capture-pane -pt <session>:0.<pane-index>로 검사하세요. - 병합 충돌: Git 워크트리를 사용하여 창당 파일 변경을 격리하세요.
- 높은 토큰 사용량: 병렬 창 수를 줄이세요. 각 창은 전체 에이전트 세션입니다.
- tmux를 찾을 수 없음:
brew install tmux(macOS) 또는apt install tmux(Linux)로 설치하세요.