한 줄 정의
병렬 에이전트 세션 운영은 하나의 거대한 작업을 역할별 에이전트 세션으로 나누어 처리하되, 각 세션의 책임(Write Scope), 공유 상태(Shared State) 병합 정책, 검증 필터, 그리고 인간 개입 경계를 통제하여 조율 비용과 충돌을 최소화하는 하이브리드 오케스트레이션 방식이다.
핵심 요지
- 단일 프롬프트의 한계 극복: 단일 모델에 너무 긴 작업을 위임하면 일관성 붕괴, 톤 변조, 컨텍스트 용량 한계가 발생한다. 작업을 Syllabus, Content, Assessment, Production 등으로 에이전트 역할을 파편화해 조율한다.
- 컨텍스트 오염 방지와 속도: 병렬 분기 실행(Parallel Fan-out)은 도구 실행 시간을 획기적으로 낮출(예: 15분에서 90초로 단축) 뿐 아니라, 각 에이전트의 대화 맥락(Context)을 고립시켜 상호 모순이나 context drift를 완전히 제거한다 (출처: 한 문장을 500달러짜리 온라인 코스로 바꾸는 멀티 에이전트 시스템 구축하기).
- 공유 상태(Shared State) 관리: 병렬 세션이 전역 상태를 오염시키지 않도록 Pydantic 등으로 엄격한 데이터 계약(Data Contract)을 정의하고, 수집 단계에서 키(Key) 기준으로 기존 상태를 덮어쓰거나 병합하는 커스텀 리듀서(Custom Reducer)를 설계한다.
- 학술적 검증: Yao et al., Arizona State University, EACL 2026의 [Instructional Agents] (arxiv:2508.19611) 논문은 CS 대학 과목 설계 시 독단적 자율 생성보다 인간 개입 기반의 Full Co-Pilot 병렬 에이전트 조율이 최종 설계 품질을 향상함을 입증함.
- 속도 및 고립성 성과: 12개 강의 작성을 순차적으로 실행 시 15분이 소요되나, 병렬 분기(Parallel Fan-out) 수행 시 90초 수준으로 단축되며, 각 세션이 독립 context로 동작해 상호 모순 및 context drift가 소멸함.
- 비용 및 경제성: 한 문장의 코스 제작 지시를 받아 syllabus, lectures, quizzes, slides를 14분 만에 빌드 완료하며, 사용료는 0.26달러 수준에 불과해 시간당 250~500달러(iSpring 2026 레벨 1 가이드 기준)에 상당하는 커스텀 교육 초안을 생산함.
- Anti-slop Reviewer: buzzword 및 filler phrases(“in today’s ever-evolving landscape”)를 regex 프리체크 및 Gemini 2.5 Flash 구조화 verdict를 통해 차단하며, MAX_REWRITES = 2 회귀 제한 후 인간에게 이관함.
- 결정론적 슬라이드 빌드: 모델에게 슬라이드 레이아웃 조립을 맡기면 개행 및 겹침 버그가 다량 발생하므로, 에이전트는 엄격한 마크다운 규격 작성을 담당하고 조립은 Marp CLI 컴파일러 코드를 통해 결정론적(deterministic)으로 수행함.
상세
1. 병렬 오케스트레이션 설계 패턴 (LangGraph 모델)
효과적인 병렬 에이전트 조율을 위해 하네스는 다음 구성 요소를 갖춘다:
- Curriculum/Plan Agent: 한 줄의 목표에서 세부 스펙(학습 목표, 파일 범위 등)을 도출하는 지능형 오케스트레이터.
- Human Approval Gate (
interrupt): 상태를 보존한 채 실행을 영속 정지(Checkpointing)하고, 사람이 계획을 승인하거나 수정 피드백을 주면 이를 반영해 다시 뒤로 루프(Revision Loop)를 타게 만드는 경계면 (출처: 한 문장을 500달러짜리 온라인 코스로 바꾸는 멀티 에이전트 시스템 구축하기). - Parallel Fan-out Nodes: 고립된 최소 정보(예: Lesson Outline, Ticket Brief)만
Send명령어로 분배하여 다수의 작업 에이전트에 병렬 전송한다. - State Merging Reducer: 병렬 작업물 취합 시
merge_dicts같은 리듀서를 사용해 전역 상태 딕셔너리에 덮어쓰도록 유도하여, 재작업된 초안이 누적 중복되지 않고 갱신되도록 제어한다.
2. Adversarial Validation과 결정론적 생산
- 적대적 검증자 (Anti-slop Reviewer): 작업 에이전트가 완성한 본문을 받아 filler word, buzzword, 구체적 코드의 결여 등을 regex 프리체크 및 평가 가이드로 교차 검증하고, 반려 시 모델에 구체적인 수정 방향(Verdict)을 제공해 재작성 루프를 밟게 한다 (출처: 한 문장을 500달러짜리 온라인 코스로 바꾸는 멀티 에이전트 시스템 구축하기).
- 결정론적 아웃풋 빌드 (Deterministic Production): 슬라이드 덱이나 최종 PDF 포맷팅 등 레이아웃이 붕괴하기 쉬운 부분은 LLM에 생성을 맡기지 않는다. 에이전트는 프롬프트 상의 H2 등 엄격한 Markdown 규격 준수까지만 수행하며, 최종 빌드는 Marp CLI 등 결정론적 컴파일러 코드로만 완성한다 (출처: 한 문장을 500달러짜리 온라인 코스로 바꾸는 멀티 에이전트 시스템 구축하기).
보리스의 모바일 + Loop 운영
보리스 체르니는 2026-05-16 인터뷰에서 자신의 일상 운영 방식을 공개했다. 휴대폰 Claude 앱의 “코드” 탭에서 동시에 5~10개 세션을 열어두고, 각 세션 안에 수백 개의 에이전트가 실행 중이다. 밤에는 수천 개 에이전트가 깊은 작업을 수행한다. 지난주에는 하루 150개 PR을 처리한 기록도 있다(한계 테스트용).
이 규모를 가능하게 하는 것은 Loop와 Routines다. cron 표현으로 미래 시점 작업을 예약하는 Loop와 노트북을 닫아도 서버에서 지속되는 Routines가 일급 객체로 운영된다. 보리스는 수십 개의 Loop를 동시에 운영한다 — PR 돌봄, CI 건강 관리, 트위터 피드백 클러스터링 등.
운영 시사점: 병렬 세션 수가 폭발하면 사람의 검토 처리량이 병목이 된다. 따라서 각 세션은 사람 승인이 필요한 경계(머지, 배포, 비밀 키 접근)와 자동 진행 가능한 경계를 명확히 나눠야 한다. Lethal Trifecta 관점에서 세션당 권한 능력을 채점하면 위험 관리가 단순해진다.
멀티 에이전트 코스 빌더 파이프라인 흐름
- Curriculum Agent: 사용자의 지시에서 Bloom’s Taxonomy(Remember, Apply, Analyze 등) 등급을 지닌 학습 목표(Objectives) 및 syllabus 빌드. (3개 모듈, 15개 lesson 한도 제약)
- Human Approval Gate:
interrupt()로 런타임을 정지시키고 인간이 syllabus를 최종 승인/수정 피드백(Revision edge)을 주도록 설계. - Content Agents:
Send명령어로 각 lesson outline과 objectives를 병렬 fan-out 배포하여 90초 만에 본문 작성. - Anti-slop Reviewer: Gemini 2.5 Flash를 이용해 filler words 차단 필터 적용.
- Assessment Agent: Bloom’s Taxonomy 목표 비율 분포(Apply 40%, Analyze 30% 등)에 따라 10문항 퀴즈 및 Rubric을 포함한 과제 생성.
- Production Agent: Marp CLI를 호출해 템플릿 마크다운을 PDF/HTML로 컴파일.
예시
- 세션 A:
app/components/Cart*UI만 수정하고 Playwright 스크린샷으로 검증한다. - 세션 B: 결제 API 테스트만 추가하고 구현 파일은 건드리지 않는다.
- 세션 C: 변경 후 문서와 릴리즈 노트만 작성한다.
- 온라인 코스 자동 빌더: Curriculum 에이전트가 스펙을 확정하고 Approval Gate에서 사람이 검수한 뒤, 12개 강의 본문을 12개 병렬 Content 에이전트 세션이 충돌 없이 작성하고 Marp 코드로 조립함 (출처: 한 문장을 500달러짜리 온라인 코스로 바꾸는 멀티 에이전트 시스템 구축하기).
CC101 보강: 터미널 자동화와 원격 실행
터미널에서만 가능한 고급 병렬 운영 기법들이다.
Pipe Scripting
다른 도구의 출력을 Claude에 바로 먹여 결과를 얻는다:
cat error.log | claude -p "원인 분석"Cron 자동화
정기적인 작업을 cron으로 예약해 자동 실행한다:
# 매일 아침 의존성 검사
crontab -e
0 9 * * * cd /path/to/project && claude -p "npm outdated 확인하고 보고서 생성"SSH 원격 실행
서버에 접속해 원격으로 Claude Code를 실행한다:
ssh user@server "cd /var/log && claude -p '로그 분석해줘'"세션 관리: --continue와 --resume
# 가장 최근 세션 이어받기
claude --continue
# 세션 목록에서 선택해서 재개
claude --resume
# 이름 붙인 세션 재개
claude --resume auth-refactor긴 작업은 /rename [이름]으로 이름을 붙여두면 나중에 쉽게 재개할 수 있다.
- Bloom’s Taxonomy 기반 State 스키마 정의 (Pydantic):
class LearningObjective(BaseModel):
id: str = Field(description="short stable id, e.g. 'lo-2-3'")
text: str = Field(description="measurable verb phrase")
bloom: Literal["remember", "understand", "apply", "analyze", "evaluate", "create"]
module_id: str충돌
현재 확인된 충돌 없음.