dmux Workflows
AI 에이전트 하네스용 tmux 패인 관리자인 dmux를 사용하여 병렬 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/를 검토하세요"
# 모든 리뷰를 단일 보고서로 병합
모범 사례
- 독립적인 작업만 하십시오. 서로의 출력에 의존하는 작업은 병렬화하지 마세요.
- 명확한 경계를 설정하십시오. 각 패인은 별도의 파일이나 관심사에 대해 작업해야 합니다.
- 전략적으로 병합하십시오. 충돌을 피하기 위해 패인 출력을 병합하기 전에 검토하세요.
- git worktree를 사용하십시오. 파일 충돌이 발생하기 쉬운 작업의 경우 패인당 별도의 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 도구 | 프로세스 내 하위 에이전트 생성 | 세션 내 프로그래매틱 병렬 처리 |
| Codex 멀티 에이전트 | 내장 에이전트 역할 | 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": "1-4번 스킬을 수정하고 인수인계 노트를 작성하세요." },
{ "name": "docs-b", "task": "5-8번 스킬을 수정하고 인수인계 노트를 작성하세요." }
]
}
헬퍼의 기능:
- 작업자당 하나의 브랜치 백업 git worktree 생성
- 선택적으로 메인 체크아웃의 특정
seedPaths를 각 작업자 worktree에 오버레이 .orchestration/<session>/아래에 작업자별task.md,handoff.md,status.md파일 작성- 작업자당 하나의 패인이 있는 tmux 세션 시작
- 각 작업자 명령을 자체 패인에서 실행
- 오케스트레이터를 위해 메인 패인을 비워둠
seedPaths는 작업자가 아직 HEAD에 포함되지 않은 더티하거나 추적되지 않은 로컬 파일(예: 로컬 오케스트레이션 스크립트, 초안 계획, 문서 등)에 접근해야 할 때 사용하세요:
{
"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 worktree를 사용하여 패인별 파일 변경 사항을 격리하세요.
- 높은 토큰 사용량: 병렬 패인 수를 줄이십시오. 각 패인은 전체 에이전트 세션입니다.
- tmux를 찾을 수 없음:
brew install tmux(macOS) 또는apt install tmux(Linux)로 설치하세요.