멀티 에이전트 시스템의 가장 큰 걸림돌은 비용입니다. 에이전트 5개를 병렬로 돌리면 비용도 5배가 되는 게 상식입니다. 그런데 2026년 3월 Claude Code 소스 유출에서 드러난 아키텍처는 이 상식을 뒤집는 설계를 보여줍니다. "5개 에이전트를 스폰해도 1개와 거의 같은 비용"이라는 것입니다.
이 글에서는 유출된 코드에서 드러난 캐시 공유 메커니즘, 학계에서 제시된 새로운 접근법, 그리고 실전 비용 최적화 전략을 분석합니다.
왜 멀티 에이전트는 비쌈?
LLM API는 무상태(stateless)입니다. 매 요청마다 시스템 프롬프트, 도구 정의, 대화 기록을 처음부터 다시 보내야 합니다. 단일 에이전트가 50턴을 진행하면서 10,000 토큰의 시스템 프롬프트를 매번 전송한다면, 동일한 지시를 500,000 토큰이나 중복 지불하는 셈입니다.
멀티 에이전트에서는 이 문제가 배수로 증폭됩니다. 에이전트 5개가 각각 독립적으로 API를 호출하면, 시스템 프롬프트와 도구 정의만으로도 5배의 입력 토큰 비용이 발생합니다.
유출 코드에서 드러난 해법: Fork 모델의 캐시 공유
Claude Code 소스에서 발견된 3가지 서브에이전트 실행 모델 중 Fork 모델이 이 문제의 핵심 해법입니다.
Fork 모델은 부모 에이전트 컨텍스트의 바이트 동일 복사본(byte-identical copy)으로 서브에이전트를 생성합니다. 이것이 의미하는 바는 부모와 자식 에이전트가 동일한 프롬프트 캐시 프리픽스를 공유한다는 것입니다.
Anthropic의 프롬프트 캐싱에서 캐시된 입력 토큰은 일반 토큰 대비 90% 저렴합니다. 따라서 공유 프리픽스(시스템 프롬프트 + 도구 정의 + CLAUDE.md + 공통 컨텍스트)에 대해서는 한 번만 정가를 지불하고, 나머지 에이전트들은 캐시 히트로 10분의 1 가격에 동일한 컨텍스트를 사용합니다.
수식으로 표현하면 다음과 같습니다:
캐시 공유 없이 에이전트 5개:
총 비용 = 5 × (시스템 프롬프트 + 도구 정의 + 태스크 지시)
= 5X
캐시 공유 Fork 모델:
총 비용 = 1X(정가) + 4 × 0.1X(캐시 히트) + 5Y(태스크별 고유 비용)
= 1.4X + 5Y
X = 공유 프리픽스 비용, Y = 태스크별 고유 비용
공유 프리픽스가 전체의 80%라면:
→ 기존 대비 약 72% 비용 절감
유출된 소스를 분석한 한 개발자의 표현: "하나의 스레드에서 지식 기반을 쌓은 뒤, 워커를 스핀오프하면 축적된 컨텍스트를 거의 무료로 상속받는다."
캐시를 깨뜨리는 14가지 벡터
캐시 공유의 효과는 캐시가 유지될 때만 존재합니다. 유출된 promptCacheBreakDetection.ts에서 14개의 캐시 브레이크 벡터가 추적되고 있음이 발견되었습니다.
캐시가 깨지는 주요 원인은 다음과 같습니다. 시스템 프롬프트의 어떤 변경이든(타임스탬프, 세션 ID 포함) 즉시 캐시를 무효화합니다. 도구 정의가 바뀌는 것도 마찬가지입니다. MCP의 동적 도구 디스커버리는 요청마다 도구 목록이 달라질 수 있어 특히 위험합니다. 권한 모드 전환(Default → Plan → Auto)도 프롬프트 구조를 변경합니다. CLAUDE.md 파일 변경, 모델 전환, 컴팩션 후 컨텍스트 재구성 등도 캐시를 깨뜨립니다.
"스티키 래치" — 캐시를 지키는 방어 메커니즘
Claude Code는 스티키 래치(Sticky Latch) 메커니즘으로 불필요한 캐시 파괴를 방지합니다.
예를 들어, 사용자가 Plan 모드에서 Default 모드로 전환할 때, 단순 구현이라면 시스템 프롬프트가 변경되어 캐시가 깨집니다. 스티키 래치는 이런 모드 전환이 캐시된 콘텐츠를 무효화하지 않도록 "래치를 걸어" 캐시 프리픽스의 안정성을 유지합니다.
이 메커니즘이 없다면, 사용자가 모드를 자주 전환할 때마다 캐시가 깨져서 수만 토큰의 재처리 비용이 발생합니다. 하루에 여러 세션을 운영하는 환경에서는 이 작은 최적화가 상당한 비용 차이를 만듭니다.
학계의 새로운 접근: Agentic Plan Caching (APC)
유출 사건과 별개로, 학계에서도 멀티 에이전트 비용 절감에 대한 새로운 연구가 등장했습니다. Agentic Plan Caching(APC)은 2025년 NeurIPS에서 발표된 논문으로, 기존 프롬프트 캐싱과는 다른 차원의 접근법을 제시합니다.
기존 프롬프트 캐싱이 "동일한 토큰 시퀀스의 KV 텐서를 재사용"하는 하드웨어 수준의 최적화라면, APC는 "완료된 에이전트 실행에서 계획 템플릿을 추출하여 유사한 새 태스크에 재사용"하는 소프트웨어 수준의 지능적 캐싱입니다.
작동 방식은 이렇습니다. 에이전트가 태스크를 완료하면 그 실행 과정에서 구조화된 계획 템플릿을 추출합니다. 새 요청이 들어오면 키워드 추출로 캐시된 계획과 매칭합니다. 매칭된 템플릿을 경량 모델이 새 태스크의 컨텍스트에 맞게 적응시킵니다. 적응된 계획으로 에이전트가 실행하므로 처음부터 계획을 세우는 비용이 절약됩니다.
성과도 인상적합니다. 평균 비용 50.31% 절감, 지연 시간 27.28% 감소입니다. GAIA 벤치마크에서는 비용 76.42% 절감($69.02 → $16.27)에 정확도 하락은 0.61%에 불과했습니다.
이것이 Claude Code의 프롬프트 캐싱과 다른 점은, 프롬프트 캐싱은 "같은 프리픽스를 반복 전송하지 않는" 입력 최적화인 반면, APC는 "같은 종류의 태스크를 반복 계획하지 않는" 추론 최적화라는 것입니다. 두 기법은 상호 보완적이므로 함께 적용하면 비용 절감이 중첩됩니다.
프롬프트 구조 설계: 캐시 효율을 위한 실전 전략
arxiv의 "Don't Break the Cache" 연구(2601.06007)에서는 에이전틱 워크로드에서의 캐싱 전략을 체계적으로 평가했습니다. 결론은 명확합니다. 무조건 전체를 캐싱하는 것보다, 전략적으로 캐시 경계를 설정하는 것이 더 효과적입니다.
가장 안정적인 전략은 시스템 프롬프트만 캐싱하는 것입니다. 동적 콘텐츠를 시스템 프롬프트의 끝에 배치하여 안정적인 부분이 캐시 혜택을 받도록 합니다. Claude Sonnet 4.5에서 22.9%, GPT-4o에서 30.9%의 지연 시간 개선이 확인되었습니다.
도구 결과 제외 전략도 유효합니다. 각 도구 결과 뒤에 캐시 브레이킹 식별자를 삽입하여, 세션 고유의 동적 콘텐츠가 불필요하게 캐시되지 않도록 합니다. 전체 컨텍스트를 무작정 캐시하면 오히려 지연 시간이 증가할 수 있다는 역설적 결과도 보고되었습니다.
동적 함수 호출을 회피하는 것도 중요합니다. MCP의 동적 도구 디스커버리처럼 도구 정의가 요청마다 달라지면 캐시가 깨집니다. 고정된 범용 도구 정의를 유지하고, 동적 기능은 코드 생성으로 구현하는 것이 캐시 친화적입니다.
Claude Code에서 MCP 도구를 지연 로딩(ToolSearch)하는 설계도 같은 맥락입니다. 모든 도구 스키마를 초기에 로딩하면 프리픽스가 커지고 캐시 히트 확률은 높아지지만, 도구가 추가/제거될 때마다 캐시가 깨집니다. 온디맨드 로딩은 프리픽스를 안정적으로 유지하면서 필요한 도구만 동적으로 추가합니다.
CLAUDE.md 최적화의 숨은 비용 효과
유출 코드 분석에서 발견된 또 하나의 실전 패턴이 있습니다. 잘 구조화된 CLAUDE.md가 멀티 에이전트 비용을 크게 줄인다는 것입니다.
모듈 경계, 검증 명령, 운영 컨텍스트가 명확한 CLAUDE.md는 공유 프리픽스의 일부로 캐시됩니다. 3명의 팀원이 명확한 CLAUDE.md를 읽는 비용은, 3명이 각자 코드베이스를 탐색하며 파악하는 비용보다 훨씬 저렴합니다. CLAUDE.md에 정보가 있으면 에이전트가 Read 도구로 파일을 읽어 컨텍스트에 추가하는 횟수가 줄고, 결과적으로 컨텍스트 윈도우 소비도 줄어듭니다.
인터럽트의 경제학
유출 코드에서 드러난 작지만 의미 있는 최적화가 있습니다. 스트리밍 아키텍처 덕분에 사용자가 Claude Code를 중간에 인터럽트하면, 아직 생성되지 않은 토큰은 과금되지 않습니다.
이것은 단순한 편의 기능이 아니라 실제 비용 절감 수단입니다. 에이전트가 잘못된 방향으로 가고 있다면 빨리 끊을수록 돈을 아깁니다.
정리: 캐시가 멀티 에이전트의 경제성을 결정한다
이번 유출과 관련 연구들이 보여주는 핵심 메시지는 분명합니다.
첫째, Fork 모델의 캐시 공유는 멀티 에이전트를 경제적으로 실현 가능하게 만드는 핵심 메커니즘입니다. 5개 에이전트의 공유 프리픽스 비용이 1.4배에 불과합니다.
둘째, 캐시를 지키는 것이 캐시를 쓰는 것만큼 중요합니다. 14개 브레이크 벡터를 추적하고, 스티키 래치로 불필요한 파괴를 방지하는 설계가 이를 증명합니다.
셋째, APC(Agentic Plan Caching)는 프롬프트 캐싱과 직교하는 새로운 최적화 축입니다. 입력을 반복하지 않는 것(프롬프트 캐싱)과 추론을 반복하지 않는 것(APC)을 함께 적용하면 비용 절감이 중첩됩니다.
넷째, 전체를 캐싱하는 것보다 전략적 캐시 경계 설정이 더 효과적입니다. 안정적인 프리픽스는 캐싱하고, 동적 콘텐츠는 의도적으로 캐시에서 제외하는 것이 최적입니다.
멀티 에이전트 시스템의 미래는 더 똑똑한 모델이 아니라, 더 똑똑한 캐싱에 달려 있을지 모릅니다.
참고 자료:
- Alex Kim - The Claude Code Source Leak
- Keith Manaloto - The Claude Code Leak: Lessons Worth Keeping
- Jock.pl - Claude Code Source Leak: What's Worth Learning for AI Agents
- arxiv - Don't Break the Cache: Prompt Caching for Agentic Tasks
- arxiv - Agentic Plan Caching: Test-Time Memory for Cost-Efficient LLM Agents
- Anthropic - Prompt Caching Documentation
'프로그래밍 PROGRAMMING > 인공지능 AI' 카테고리의 다른 글
| 클로드 코드 team-onboarding 스킬 - 신규 팀원 온보딩을 자동화하는 최신 기능 (5) | 2026.04.16 |
|---|---|
| claude code 생명주기 - 프롬프트에서 결과까지, 내부에서 무슨 일이 일어나는가 (0) | 2026.04.14 |
| Claude Code 소스 유출이 밝힌 멀티 에이전트의 비밀 — 오케스트레이션은 코드가 아니라 프롬프트다 (1) | 2026.04.10 |
| Claude Code Hooks 란? - AI 코딩 워크플로우를 자동화하는 강력한 무기 (0) | 2026.04.08 |
| Claude Code 소스코드 51만 줄 유출 사건 — npm 설정 실수로 드러난 내부 구조 분석 (2) | 2026.04.05 |