멀티에이전트 팀 설계 (Multi-Agent Team Design)
같은 LLM 모델을 기반으로 여러 에이전트를 역할 분리하여 팀으로 운영하는 아키텍처 패턴. “분리됐지만 고립되지 않는” 구조를 3요소(워크스페이스 격리 + 내부 통신 + 조율 문서)로 구현하며, 단일 에이전트의 컨텍스트 과부하·규칙 충돌·전문성 분산 문제를 해결한다.
언제 멀티에이전트로 전환하는가
단일 에이전트에서 다음 신호가 나타나면 분리를 고려한다:
- 컨텍스트 과부하: 워크스페이스 문서가 너무 많아져 AI가 정보를 놓치기 시작
- 역할 혼재: 전략적 판단과 세부 운영이 같은 세션에서 뒤섞임
- 규칙 충돌: 서로 다른 말투·행동 규칙이 한 SOUL.md에 공존해 일관성 저하
(출처: bbojjak-openclaw-multi-agent-team-lesson04)
팀 구성 3요소
1. 워크스페이스 분리 — 역할 격리
각 에이전트는 독립된 워크스페이스 디렉토리에서 실행된다. 다른 에이전트의 워크스페이스에 접근 불가.
~/.openclaw/
├── workspace-agent-a/ ← 에이전트 A 전용
│ ├── SOUL.md ← A만의 정체성
│ ├── AGENTS.md ← A만의 규칙
│ └── memory/ ← A만의 기억
├── workspace-agent-b/ ← 에이전트 B 전용
│ ├── SOUL.md
│ ├── AGENTS.md
│ └── memory/
└── shared/team/ ← 공용 거실 (모든 에이전트 읽기 가능)
├── TEAM.md ← 팀 헌장
└── COLLAB-RULES.md ← 협업 규칙
공용 거실(shared/team/): 각 에이전트의 방은 완전 격리하되, 팀 전체가 공유해야 하는 정보(미션·역할·협업 규칙)는 공용 폴더에서 관리. 격리와 공유의 균형.
워크스페이스 분리가 가져오는 이점:
| 이점 | 메커니즘 |
|---|---|
| 컨텍스트 집중 | 각 에이전트가 담당 도메인 문서만 로드 |
| 규칙 충돌 방지 | 별도 SOUL.md → 말투·규칙이 완전 독립 |
| 전문성 축적 | memory/ 폴더에 해당 도메인 기억만 쌓임 |
2. sessions_send — 에이전트 간 비공개 내부 통신
분리된 에이전트들이 업무를 조율하는 내부 채널. 사람(사용자)에게는 보이지 않는다.
sessions_send(
sessionKey: "agent:타깃에이전트:main",
message: "작업 완료했어요. 리뷰 부탁해요!"
)이중 채널 분리 원칙:
내부 논의 → sessions_send (에이전트끼리만)
결과 보고 → 사람 채널 (Slack, 텔레그램 등)
사람이 모든 에이전트 간 내부 논의를 볼 필요가 없다. 결과와 보고만 사람 채널로 올린다. 이 분리가 없으면 “내부 대화로 채널 도배” 문제가 발생한다.
sessions_send 활용 사례:
- 업무 위임: “이 CS 케이스 처리해줘 + 위임 4요소”
- 피드백: “초안 검토 요청”
- 코드 리뷰: “구현 결과 검토”
- 정보 동기화: “오늘 처리한 업무 요약”
3. TEAM.md + 호명 규칙 — 팀 조율
TEAM.md (팀 헌장)
“우리는 왜 존재하는가”를 정의하는 공유 문서. 모든 에이전트가 세션 시작 시 읽는다.
필수 3가지 섹션:
- 미션 — 팀 전체의 존재 이유 (한 문장)
- 역할 분담 — 누가 어떤 업무를 담당하는지 명확히 + 사람(집사)의 역할도 포함
- 핵심 가치 — 팀이 공유하는 행동 원칙
COLLAB-RULES.md (협업 운영 규칙)
“어떻게 일하는가”를 정의하는 공유 문서.
위임 4요소 — 에이전트→에이전트 업무 위임 시 필수:
| 요소 | 내용 |
|---|---|
| 무엇을 | 구체적 산출물 명시 |
| 왜 | 맥락·배경 설명 |
| 기준 | 품질 기준 명시 |
| 기한 | 완료 시점 명시 |
보고 체계: 각자 담당 영역은 직접 보고, 전체 현황은 상위 에이전트(또는 조율 에이전트)가 종합. 중복 보고로 사람이 같은 정보를 두 번 읽는 상황 방지.
호명 규칙 + NO_REPLY
멀티에이전트가 같은 채팅 공간(Slack 채널, 텔레그램 그룹 등)에 있을 때 필수:
이름을 명시적으로 부를 때만 응답한다.
### 호명 규칙
사용자가 "에이전트명" 또는 이름을 명시적으로 불렀을 때만 응답.
호명 없으면 무조건 NO_REPLYNO_REPLY: 에이전트 완전 침묵 키워드. 반응 자체를 하지 않는다.
설계 원칙: 에이전트 수가 늘어도 사용자 피로도는 늘어나지 않아야 한다. 모든 에이전트가 모든 메시지에 반응하면 사용자가 N배의 답변을 처리해야 한다.
분리 이유 3가지 상세
컨텍스트 과부하 방지
LLM의 컨텍스트 윈도우(한 번에 처리할 수 있는 텍스트 양)는 유한하다. 모든 도메인 문서를 한 에이전트 세션에 로드하면:
- AI가 일부 정보를 놓치거나
- 오래된 정보를 덮어쓰거나
- 관련 없는 도메인 정보가 판단에 개입
역할 분리 시 각 에이전트는 담당 도메인 문서만 컨텍스트에 로드 → 집중도·정확도 향상.
규칙 충돌 방지
같은 LLM이 서로 상충되는 규칙(예: “반말 사용” + “존댓말 사용”)을 동시에 따르면 일관성이 깨진다. 별도 워크스페이스 = 별도 SOUL.md → 각 에이전트가 자신의 규칙만 100% 준수.
이는 agent-identity-design의 핵심 원칙과 직결된다.
전문성 깊이 축적
에이전트의 memory/ 폴더는 해당 에이전트가 처리한 기억을 누적한다. 역할이 분리되면 memory/에 해당 도메인 패턴만 쌓인다:
- CS 전담 에이전트: 반복되는 CS 패턴, 고객별 이력
- 기획 전담 에이전트: 전략 의사결정 이력, 커뮤니티 동향
단일 에이전트라면 이 기억이 뒤섞여 “얕은 전문성”에 머문다.
실전 적용
Tip
OpenClaw 프레임워크가 아니어도 이 원칙은 동일하게 적용된다. “AI를 2개 이상 쓸 때, 역할을 명확히 나누면 성능이 올라간다.”
적용 패턴 예시:
-
마케팅 에이전트 + CS 에이전트
-
기획 에이전트 + 실행 에이전트
-
리서치 에이전트 + 요약 에이전트
-
OpenClaw — sessions_send·TEAM.md를 제공하는 에이전트 프레임워크
-
agent-workspace-structure — 워크스페이스 분리 + shared/team/ 공용 폴더 구조
-
agent-identity-design — 각 에이전트의 SOUL.md가 역할 분리를 가능하게 함
-
harness-engineering — 멀티에이전트는 Phase 4 Orchestration에 해당
sessions_send vs sessions_spawn 비교
Lesson 04에서 다룬 sessions_send와 Lesson 12의 sessions_spawn은 다른 도구다. (출처: bbojjak-openclaw-subagent-orchestration-lesson12)
| 구분 | sessions_send | sessions_spawn |
|---|---|---|
| 대상 | 기존 에이전트(뽀야 등) | 새로 생성한 분신(서브에이전트) |
| 세션 | 기존 세션에 메시지 전달 | 새 세션 생성 |
| 맥락 | 대상 에이전트의 SOUL.md 등 있음 | AGENTS.md + TOOLS.md만 |
| 용도 | 팀 에이전트 간 협업·피드백 | 병렬 작업 위임 |
sessions_send는 동등한 팀원 간 소통(수평), sessions_spawn은 임시 분신에게 단방향 위임(수직). 상세는 subagent-orchestration 참조.
관련 개념
- subagent-orchestration — sessions_spawn으로 분신 생성; 맥락의 격차; 판단 최소화 원칙
- agent-workspace-structure — 워크스페이스 물리 구조 (shared/ 폴더 포함)
- agent-identity-design — 에이전트별 SOUL.md 설계 (역할 분리의 기초)
- agentic-webhook-integration — 외부 이벤트를 팀 내 특정 에이전트에 라우팅
- heartbeat-mechanism — 멀티에이전트에서 각 에이전트가 독립적 하트비트 운영
- harness-engineering — Phase 4 Orchestration (멀티에이전트 팀의 하네스 단계)
채널 분리로 멀티에이전트 라우팅
multichannel-session-management의 토픽별 agentId 설정을 통해 에이전트 팀을 채널(텔레그램 토픽)로 분리 운영할 수 있다. (출처: bbojjak-openclaw-multichannel-session-lesson15)
- 텔레그램 토픽 3 → researcher 에이전트
- 텔레그램 토픽 5 → coder 에이전트
- Slack 운영채널 → 뽀짝이 (AI스터디 운영)
- Slack 개발채널 → 뽀야 (콘텐츠/개발)
효과: 코드 리뷰와 수강생 조회가 구조적으로 섞이지 않음. 사용자가 채널만 바꾸면 담당 에이전트가 바뀜. gateway-architecture의 bindings 설정이 이 라우팅을 자동 처리.
보안 목적의 에이전트 분리
Lesson 04의 역할 분리(컨텍스트 과부하 방지)에 더해, 보안 목적의 에이전트 분리가 추가된다. (출처: bbojjak-openclaw-agent-security-lesson17)
보안 분리 원칙:
외부 대응 에이전트 → 최소 권한·정보 격리·인젝션 방어
내부 작업 에이전트 → 풀 권한·Slack 전용·외부 접근 차단
하나가 인젝션당해도 다른 에이전트와 내부 데이터가 안전하다. → agent-security-design 참조.
멀티 워크스페이스 동기화
에이전트 분리 이후에도 두 에이전트가 같은 팀으로 운영되려면 워크스페이스 간 정보 동기화가 필요하다. (출처: bbojjak-openclaw-information-boundary-lesson20)
일방향 동기화: 본체 워크스페이스 → external 워크스페이스. 역방향 없음. 민감정보 추출: 원본에서 민감정보를 자동 제거한 편집본을 external에 제공. 에스컬레이션: external이 처리 불가한 요청 → 본체로 위임.
→ agent-information-boundary 참조.
”에이전트가 에이전트를 키운다” — 사수-부사수 계층
지피터스 실전 사례: 뽀야(사수/오케스트레이터) - 뽀짝이(부사수/실무) 계층 구조. (출처: yt-gpters-openclaw-ai-native-company-2026)
문제: 집사가 뽀야+뽀짝이를 둘 다 관리 → 집사가 다시 병목. 해결: 뽀야가 뽀짝이를 키우고 리뷰 → 집사는 최종 결과만 확인.
자율 협업 규칙 생성: “너네끼리 가장 잘 협업할 수 있는 방식으로 문서 만들어서 보고해라” → 에이전트들이 TEAM.md/COLLAB.md를 스스로 작성. 이것이 bbojjak-openclaw-multi-agent-team-lesson04의 Lesson 04 실전 버전.
모니터링: sessions_send 내부 대화를 별도 대시보드로 훔쳐봄 → 시스템 개선 루프.
엔터프라이즈 멀티 에이전트 팀 — Google Workspace Gems 사례
Google Workspace Studio에서 Kärcher는 4개 Gem의 순차 오케스트레이션으로 멀티에이전트 팀 패턴을 엔터프라이즈 환경에서 구현했다:
Chat에 기능 아이디어 제안
→ Brainstorming Gem (가치 평가)
→ Technical Gem (기술 타당성 검토)
→ UX Gem (사용자 흐름 설명)
→ Final Gem (User Story 초안 작성)
결과: 드래프팅 시간 90% 단축 (수 시간 → 2분). (출처: google-workspace-studio-agents-2026, valid_as_of: 2025-12)
이는 에이전트의 역할 분리 + 순차 오케스트레이션 원칙을 노코드 GUI 환경에서 구현한 동일한 패턴이다. → workspace-studio 참조.
도구 전환보다 역할 분담 우선 (Hermes vs OpenClaw 실사용)
ZeroCho 실사용 사례에서는 “한 도구로 완전 갈아타기”보다 도구별 강점 분업이 더 현실적이라는 결론이 제시됐다. (출처: yt-zerocho-hermes-openclaw-comparison-2026)
- Hermes 담당: 스킬 축적, 세션 검색, 작업 중 인터럽트 반영, 학습 루프형 운영
- OpenClaw 담당: 텔레그램 토픽/그룹 기반 일상 자동화, 기존 맥락 자산 활용
즉 멀티에이전트 팀 설계는 “에이전트 내부 역할 분리”뿐 아니라, 프레임워크 간 역할 분리까지 확장될 수 있다.
Claude Code /auto 명령 기반 16인팀 오케스트레이션 사례
yt-autopus-adk-16agent-framework-2026는 멀티에이전트 패턴을 CLI 명령 계층으로 압축한 사례다.
/auto setup → idea → plan → go → sync를 통해 역할별 단계를 명시적으로 분리/auto go에서 최대 5개 워크트리 병렬 개발로 충돌을 줄임/auto dev로 전체 파이프라인 일괄 실행 가능
핵심은 “에이전트 수” 자체보다, 역할 경계·통합 지점·검증 단계를 명령 레벨로 표준화해 팀 동작을 재현 가능하게 만든 점이다.
Hermes Profiles — CLI alias 기반 완전 독립 에이전트
hermes-agent의 Profiles 기능은 OpenClaw의 워크스페이스 격리와 유사하지만, CLI 명령 자동 생성이 핵심 차이다. (출처: obsidian-hermes-agent-build-guide)
hermes profile create dap-pm --clone
# → ~/.local/bin/dap-pm 자동 생성
# → dap-pm chat = hermes -p dap-pm chat (완전 동일)| 구분 | OpenClaw | Hermes Profiles |
|---|---|---|
| 격리 방식 | ~/.openclaw/workspace-<name>/ | ~/.hermes/profiles/<name>/ |
| 통신 수단 | sessions_send (실시간) | Shared 볼륨 + Cron (비동기) |
| 공식 멀티에이전트 | ✅ sessions_send/spawn | ❌ 미지원 (로드맵 #344) |
| 볼트 연결 | AGENTS.md 자동 로드 | terminal.cwd 절대 경로 고정 |
| 채널 연동 | Slack·텔레그램 다채널 | 프로필당 별도 Slack 앱 필요 |
Hermes Shared 볼륨 비동기 협업 패턴
Hermes 에이전트 간 직접 통신이 불가능한 현재, inbox 폴더 + Cron으로 실질적 비동기 협업이 가능하다. (출처: obsidian-hermes-agent-build-guide)
~/vault-shared/inbox/
├── for-dap-pm/ ← ax-instructor → dap-pm 요청함
├── for-ax-instructor/ ← dap-pm → ax-instructor 요청함
└── done/ ← 처리 완료 파일 보관
요청 파일 형식 (YAML 프론트매터):
from: ax-instructor
to: dap-pm
requested_at: 2026-04-29T09:00:00
priority: normal
reply_to: ~/vault-shared/inbox/for-ax-instructor/동작 흐름:
- ax-instructor가
ask-dap-pm스킬로 요청 파일 생성 - dap-pm의 5분 주기 cron이 inbox 감지 → 프로필 완전 활성화(SOUL+MEMORY+SKILLS)
- 응답 파일을 reply_to 경로에 저장 + 원본 → done/ 이동
- MEMORY에 협업 경험 기록 → 독립적 진화 유지
핵심: Cron 실행 시 해당 프로필 자체를 온전히 활성화 → delegate_task(백지 임시 에이전트)와 달리 기억·진화가 보존됨.
소스
- bbojjak-openclaw-multi-agent-team-lesson04
- bbojjak-openclaw-subagent-orchestration-lesson12
- bbojjak-openclaw-multichannel-session-lesson15 (토픽별 agentId = 채널 기반 멀티에이전트 라우팅)
- bbojjak-openclaw-agent-security-lesson17 (보안 목적 에이전트 분리)
- bbojjak-openclaw-information-boundary-lesson20 (멀티 워크스페이스 동기화·오탐 관리)
- yt-gpters-openclaw-ai-native-company-2026 (에이전트가 에이전트를 키운다; 사수-부사수 계층 실전)
- google-workspace-studio-agents-2026 (Kärcher 4 Gem 순차 오케스트레이션 엔터프라이즈 사례)
- yt-zerocho-hermes-openclaw-comparison-2026 (완전 전환보다 역할 분담 전략: Hermes↔OpenClaw)
- yt-autopus-adk-16agent-framework-2026 (CLI
/auto명령군 기반 16인 역할 분업·병렬 워크트리 오케스트레이션) - obsidian-hermes-agent-build-guide (Hermes Profiles CLI alias + Shared 볼륨 비동기 협업)