cmux로 에이전트 오케스트레이션 - 에이전트 협업시키는 방법
cmux는 터미널 레이아웃을 제어해 여러 에이전트를 시각적으로 관리하기 좋은 도구지만 자동 협업 기능은 없으므로 목적에 따라 Claude Code subagent와 구분해 사용해야 함
cmux로 멀티 에이전트 협업이 가능하다는 얘기를 듣고 찾아본 메모.
TL;DR
- cmux는 오케스트레이션 도구가 아니다. 멀티 pane 레이아웃 제어 도구.
- "에이전트 협업"은 cmux 위에 패턴을 직접 얹어서 구현해야 함.
- 자동 협업이 목적이면 Claude Code subagent가 더 적합.
cmux의 정체
- macOS용 멀티 터미널 레이아웃 제어 도구
- 단위: window > workspace > pane > surface
- pane을 코드로 분할/이동/포커싱 가능
- pane 간 메시지 라우팅 기능은 없음
협업 구조
- cmux로 pane 분할
- 각 pane에서
claudeCLI 실행 - 각 인스턴스에 서로 다른 system prompt (페르소나) 주입
- 공유 채널(파일/git/사람)로 협업
레이아웃 셋업
4-pane (田자) 구성:
cmux new-workspace
cmux list-panes # 현재 pane id 확인
cmux new-split right --panel pane:1
cmux new-split down --panel pane:1
cmux new-split down --panel pane:2페르소나 주입
--append-system-prompt로 시스템 프롬프트 덧붙임.
# pane 1 — PM/Architect
claude --append-system-prompt "당신은 PM 겸 아키텍트. 요구사항 정리와 작업 분배만 한다. 코드는 직접 쓰지 않는다."
# pane 2 — Backend
claude --append-system-prompt "당신은 백엔드 개발자. server/ 폴더만 수정한다."
# pane 3 — Frontend
claude --append-system-prompt "당신은 프론트 개발자. web/ 폴더만 수정한다."
# pane 4 — Reviewer
claude --append-system-prompt "당신은 코드 리뷰어. 코드 수정 금지. git diff만 보고 피드백."작업 폴더를 격리하면 충돌 위험 ↓.
통신 채널
cmux에 IPC가 없으니 우회.
| 방법 | 특징 |
|---|---|
공유 파일 (shared/tasks.md 등) | 자동화 친화적 |
| git 브랜치 + diff 리뷰 | 실제 팀워크 모델과 유사 |
| 사람이 복붙 릴레이 | 단순, 빠름 |
cmux trigger-flash --surface ... | pane 주목 신호 |
한계
- pane 간 자동 메시지 전달 불가 → 사람 또는 파일 폴링 필요
- 각 Claude 인스턴스 컨텍스트가 분리되어 있어 공유 비용 발생
- 동시 편집 충돌 가능 → 폴더/브랜치 분리 필수
대안: Claude Code subagent
자동 협업이 목적이면 cmux보다 이쪽.
Agent툴: 메인 에이전트가 작업별 서브에이전트 호출.claude/agents/디렉토리에 페르소나 정의- 단일 세션 내에서 컨텍스트 전달/결과 종합/병렬 실행 지원
선택 기준
| 목적 | 선택 |
|---|---|
| 사람이 여러 에이전트를 동시에 보면서 운전 | cmux |
| 대화 히스토리를 페르소나별로 분리 관리 | cmux |
| 에이전트끼리 자동 협업 | subagent |
| 작업 병렬화로 속도 ↑ | subagent |
결론
- cmux = 무대 (사람 감독용)
- subagent = 자동 협업 엔진
- 섞어 써도 됨: cmux로 큰 역할 분할, 각 pane의 Claude가 또 subagent 호출