현장에서 에이전트 PoC가 빨리 좋아 보이는 순간은 대개 fan-out을 붙였을 때다. 리서치 에이전트, 검토 에이전트, 테스트 에이전트를 동시에 돌리면 데모는 빨라진다. 문제는 그 다음이다. 각 에이전트가 서로 다른 전제와 다른 출력 형식으로 돌아오면, 마지막 합류 지점에서 메인 에이전트가 다시 추측을 시작한다.
이때 실패 원인은 모델 성능이 아니다. 하네스 설계 부재다.
서브에이전트는 작은 팀이 아니라 격리된 실행 단위다
Anthropic의 Claude Code 문서와 2026년 6월 블로그는 subagents를 별도 컨텍스트 창에서 실행되는 위임 단위로 설명한다. 메인 세션에는 이름, 설명, 도구 목록 정도만 올라가고, 큰 지시문 본문은 호출될 때만 로드된다. 결과도 전체 대화가 아니라 최종 메시지와 메타데이터 중심으로 돌아온다.
이 설계가 중요한 이유는 명확하다. fan-out은 병렬화가 아니라 오염 차단이다. 고객 데이터 분석, 로그 진단, 정책 검토를 같은 컨텍스트에 밀어 넣으면 빠른 것이 아니라 위험하다. 서로 다른 업무 전제가 섞이고, 이전 에이전트의 임시 판단이 다음 판단의 근거처럼 굳어진다.
안전한 fan-out은 많은 에이전트를 만드는 설계가 아니라, 각 에이전트가 무엇을 모르게 할지 정하는 설계다.
AX Ops에서 서브에이전트 정의서는 역할 설명보다 격리 조건을 먼저 쓴다. 접근 가능한 파일, 호출 가능한 도구, 받는 입력, 반환해야 하는 출력, 실패 시 멈추는 조건이 먼저다. persona는 그 다음이다.
structured output은 보고서 양식이 아니라 합류 계약이다
MCP 2025-11-25 specification은 tool의 inputSchema와 outputSchema, 그리고 structuredContent를 명시한다. output schema가 있으면 서버는 그 schema에 맞는 structured result를 제공해야 하고, 클라이언트는 검증해야 한다. OpenAI Responses API 문서도 JSON Schema 기반 structured output과 strict schema adherence를 에이전트 루프의 중요한 제어점으로 둔다.
이 원칙을 서브에이전트 fan-out에 그대로 적용해야 한다. 각 에이전트가 자유문장 요약을 반환하면 메인 에이전트는 해석자가 된다. 각 에이전트가 계약된 JSON을 반환하면 메인 에이전트는 조립자가 된다.
| 구분 | 프롬프트 fan-out | 하네스 fan-out |
|---|---|---|
| 입력 | 긴 자연어 지시 | schema 기반 task packet |
| 컨텍스트 | 공유·누적 | 에이전트별 격리 |
| 출력 | 요약문 중심 | typed object 중심 |
| 합류 | 메인 에이전트 추론 | validator와 reducer 처리 |
| 실패 | 조용히 섞임 | reject, retry, escalate |
핵심은 reducer다. fan-out 결과를 모으는 단계는 모델에게 “종합해줘”라고 맡길 일이 아니다. 먼저 schema validation을 통과시키고, 누락 필드와 충돌 필드를 표시하고, 같은 evidence ID를 기준으로 병합해야 한다. 모델은 그 다음에 판단한다.
하네스는 권한과 실패를 코드로 묶는다
OpenAI는 2026년 3월 Responses API의 agent loop 설명에서 모델, tool 호출, 실행 환경, 결과 반환이 반복되는 구조를 제시했다. shell 실행은 isolated environment에서 처리되고, 병렬 command output은 structured tool outputs로 다시 context에 들어간다. 이 관점에서 하네스는 프롬프트 wrapper가 아니다. 실행 제어 계층이다.
fan-out 하네스에는 최소 네 가지 계약이 필요하다.
- Task contract: 서브에이전트가 받을 입력 필드와 금지 입력.
- Tool contract: 사용할 수 있는 MCP tool, 파일, 네트워크 범위.
- Output contract: JSON Schema, evidence, confidence, error shape.
- Join contract: 병합 우선순위, 충돌 처리, human-in-the-loop 조건.
NSA의 2026년 MCP security guidance도 chained workflow에서 한 agent의 output이 다음 agent의 input이 될 때 prompt injection, data exfiltration, control-flow hijacking이 전파될 수 있다고 경고한다. 그래서 tool 실행은 sandbox와 least privilege가 기본이고, output은 다음 단계의 신뢰 입력이 아니라 다시 검증할 입력이다.
참고
- Anthropic, “Steering Claude Code: when to use CLAUDE.md, skills, hooks, and subagents”, 2026. https://claude.com/blog/steering-claude-code-skills-hooks-rules-subagents-and-more
- Anthropic, “Create custom subagents”, Claude Code Docs, 2026년 7월 20일 확인. https://code.claude.com/docs/en/sub-agents
- Anthropic, “Subagents in the SDK”, Claude Code Docs, 2026년 7월 20일 확인. https://code.claude.com/docs/en/agent-sdk/subagents
- Model Context Protocol, “Tools”, specification 2025-11-25. https://modelcontextprotocol.io/specification/2025-11-25/server/tools
- OpenAI, “From model to agent: Equipping the Responses API with a computer environment”, 2026. https://openai.com/index/equip-responses-api-computer-environment/
- NSA, “Model Context Protocol: Security Design Considerations”, 2026. https://media.defense.gov/2026/Jun/02/2003943289/-1/-1/0/CSI_MCP_SECURITY.PDF
정리하면 fan-out의 성패는 에이전트 수가 아니라 하네스의 계약 밀도에서 갈린다. 컨텍스트는 나누고, 출력은 묶고, 실패는 드러나게 설계해야 운영에 들어간다. 이 설계를 제품과 운영 사이클에 붙이는 일이 AX Ops의 영역이다. AX Ops 방법론 →



