본문으로 건너뛰기
wooncloud

cmux로 에이전트 오케스트레이션 - 에이전트 협업시키는 방법

cmux는 터미널 레이아웃을 제어해 여러 에이전트를 시각적으로 관리하기 좋은 도구지만 자동 협업 기능은 없으므로 목적에 따라 Claude Code subagent와 구분해 사용해야 함

·4 min read· views·

cmux로 멀티 에이전트 협업이 가능하다는 얘기를 듣고 찾아본 메모.

TL;DR

  • cmux는 오케스트레이션 도구가 아니다. 멀티 pane 레이아웃 제어 도구.
  • "에이전트 협업"은 cmux 위에 패턴을 직접 얹어서 구현해야 함.
  • 자동 협업이 목적이면 Claude Code subagent가 더 적합.

cmux의 정체

  • macOS용 멀티 터미널 레이아웃 제어 도구
  • 단위: window > workspace > pane > surface
  • pane을 코드로 분할/이동/포커싱 가능
  • pane 간 메시지 라우팅 기능은 없음

협업 구조

  1. cmux로 pane 분할
  2. 각 pane에서 claude CLI 실행
  3. 각 인스턴스에 서로 다른 system prompt (페르소나) 주입
  4. 공유 채널(파일/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 호출