병렬 에이전트 세션 운영
한 줄 정의
병렬 에이전트 세션 운영은 하나의 거대한 작업을 역할별 에이전트 세션으로 나누어 처리하되, 각 세션의 책임(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)를 설계한다.
상세
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 관점에서 세션당 권한 능력을 채점하면 위험 관리가 단순해진다.
예시
- 세션 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 [이름]으로 이름을 붙여두면 나중에 쉽게 재개할 수 있다.
충돌
현재 확인된 충돌 없음.