// LOOP 확장 · 다중 에이전트

한 명이 잘하는 것과
여럿이 맞물리는 것은 다른 설계다.

작업자↔채점자 분리는 한 에이전트 안에서 끝나지 않는다. 여럿이 일할 땐 누가 무엇을 만들고, 어떤 순서로 맞물리고, 하나가 무너지면 팀이 어떻게 되는지를 설계해야 한다. 머릿수가 늘어도 핵심은 그대로다 — 채점 게이트는 늘 작업자 바깥에 둔다.

오케스트레이터 작업자 A 작업자 B 작업자 C 종합 · 합류 채점자 · 분리 통과 ↗ ↺ 반려
오케스트레이터가 나누고 → 작업자들이 병렬로 만들고 → 합류해 종합하고 → 분리된 채점자가 통과를 결정한다
01 분해

언제 나누는가

기본값은 한 명이다. 팀은 컨텍스트·조율·실패 면적을 모두 늘린다 — 나눔은 정당화가 필요한 결정이다.

분해 신호네 개 중 둘 이상
·
컨텍스트 격리 필요
한 역할의 맥락·참조가 다른 역할을 오염시킨다
·
독립된 도메인 지식
역할마다 다른 기준·용어·출처를 쓴다
·
독립된 성공 기준
역할별로 "잘했다"의 판정이 따로 선다
·
병렬 이득
서로를 기다릴 필요가 없어 동시 실행이 시간을 줄인다
// 둘 이상이면 팀을 적극 검토. 단 강한 단일 신호 하나로도 근거를 대면 정당화된다 — 임계는 가이드지 법이 아니다.
02 위상

토폴로지 — 팀의 모양

팀이 정해지면 모양을 고른다.

먼저 물을 것 — 합성이 필요한가? 독립 작업을 병렬로 돌린 뒤 합쳐야 하거나, 둘 이상 위상이 겹치면 합성으로 설계한다. 단일 패턴으로 욱여넣지 않는다. 합성은 예외가 아니라 흔한 경우다.
PIPELINE · 순차
A B C

단계가 엄격한 선후를 가질 때 (생성 → 검토 → 정리)

약점 · 가장 느린 단계가 전체 처리량을 잡는다

FAN-OUT / FAN-IN · 병렬→합류
분배 A B C 합류

독립 작업을 동시에 처리한 뒤 종합할 때

약점 · 합류 역할이 단일 병목·단일 실패점

EXPERT POOL · 라우터 택1
라우터 전문가 1 전문가 2 전문가 3 택 1

입력이 갈래로 나뉘어 갈래마다 다른 전문가가 받을 때

약점 · 라우팅 오분류 시 엉뚱한 전문가

HIERARCHICAL · 계층 위임
관리자 하위 A 하위 B

작업 트리가 커서 한 층의 분해로 부족할 때

약점 · 무겁다 — 정말 필요할 때만. 층마다 조율·실패 면적이 는다

03 계약

의존성과 I/O 계약

모양에 방향과 의무를 새긴다. 누가 누구를 기다리고, 누가 무엇을 반드시 받아야 하는가.

구조적 입력 의무

다 받기 전엔 시작 안 한다

합류 역할은 받아야 할 산출을 전부 받기 전에 작업을 시작하지 않는다. 빠진 자리를 추측으로 메우지 않는다.

비순환 · DAG

서로 기다리지 않는다

두 역할이 서로의 산출을 대기하는 순환은 금지. 반복 정련이 필요하면 순환이 아니라 순차 마디로 펼친다.

공통 스키마

합류는 같은 형식으로

한 곳으로 모이는 산출은 같은 스키마를 따른다. 제각각이면 검증도 합류도 무너진다.

역할 계약 · 템플릿

책임한 문장 — 한 문장으로 안 끝나면 과대 역할
입력어디서 · 어떤 형식
출력형식 — 합류 대상이면 공통 스키마
병렬가능 / 아니면 선행 의존
필수·선택선택이면 실패 시 graceful degradation
합류 의무시작 전 반드시 받아야 할 산출 목록
04 조율

오케스트레이션

다른 역할의 산출물을 읽는 것은 협력이다 — 허용된다. 하지만 다른 역할을 직접 부르는 것은 금지한다. 호출은 언제나 오케스트레이터를 거친다. 출력 참조는 데이터 흐름이고, 직접 호출은 제어 흐름이다 — 전자는 열려 있고, 후자는 닫혀 있다.

채점 게이트는 작업자 바깥. 머릿수가 늘어도 변하지 않는 단 하나 — 만드는 손과 판정하는 눈을 같은 자리에 두지 않는다. 팀의 완료는 팀 안에서 선언되지 않는다.
05 실패

실패는 어떻게 번지는가

한 역할이 무너지면 팀은 어떻게 되나 — 쓰러진 뒤가 아니라 설계할 때 정한다.

상황팀 동작
!
필수 역할 실패
팀 중단 · 에스컬레이션. 부분 산출을 "완료"로 위장하지 않는다
~
선택 역할 실패
누락을 명시한 채 진행 (graceful degradation). 무엇이 왜 빠졌는지 산출에 남긴다
합류 입력 결손
은폐 없이 부분 종합. 신뢰도를 낮추고 빠진 것을 단서로 명시한다 — 추측으로 메우지 않는다
// 단계 하나의 재시도·스킵은 일반 실패 처리. 여기서 다루는 건 그 실패가 팀 전체로 번지는 방식이다.
06 함정

피해야 할 것

분해를 위한 분해

나누면 다 좋은 게 아니다

격리 이득 없이 비용만 는다. 신호가 약하면 한 명으로 둔다.

합류점 누락

병렬만 시키고 끝

종합이 없으면 산출은 인사이트가 아니라 데이터 더미다.

순환 의존

서로를 기다린다

DAG를 깨면 디버깅과 실패 전파가 폭발한다. 반복은 순차 마디로.

채점을 팀 안에 둠

게이트가 형식이 된다

작업자가 자기 팀을 통과시키면 통과는 의미를 잃는다.

도메인 모양 베끼기

위상은 재사용, 모양은 아님

특정 작동 사례는 본보기가 아니라 진단 자료다. 위상만 빌리고 도메인 형태는 베끼지 않는다.

// 이 페이지는 작업자·채점자 분리 원리를 팀 규모로 확장한 사상이다. 토폴로지 선택·계약·실패 전파의 구체 조항은 각 프로젝트의 설계 문서를 따른다 — 여기서는 사상만 적었다.

← LOOP 허브로