상위: 00_00_MOC
00_05 — 에이전트는 왜 컨텍스트를 누적시키는가
핵심 명제
단일 LLM 호출과 달리 에이전트는 루프 안에서 스스로 도구를 쓰며 컨텍스트를 복리(compound)로 쌓아 간다. 그래서 장기 태스크에서는 컨텍스트 윈도우 초과가 사실상 피할 수 없고, 바로 이 점이 에이전트에서 컨텍스트 관리가 핵심 병목이 되는 이유다.
1. 에이전트의 기본 패턴: LLM-in-a-Loop
현대 AI 에이전트의 작동 패턴:
[시스템 프롬프트 + 목표]
↓
LLM 추론 → 도구 선택
↓
도구 실행 (웹 검색, 코드 실행, 파일 읽기...)
↓
결과를 컨텍스트에 추가
↓
다음 LLM 추론 (누적된 컨텍스트 기반)
↓
... (반복) ...
↓
최종 결과 생성
매 루프 라운드마다 컨텍스트에 축적되는 항목:
| 항목 | 설명 | 라운드당 토큰 추정 |
|---|---|---|
| 툴 호출 입력/출력 | 각 도구의 요청·응답 | 수백~수천 |
| 중간 추론 | reasoning traces, scratchpad | 수백~수천 |
| 오류 메시지·재시도 기록 | 실패한 시도 전체 | 수십~수백 |
| 검색 문서 청크 | RAG로 가져온 문서 | 수천~수만 |
| 서브에이전트 결과물 | 위임한 태스크의 전체 출력 | 수천~수만 |
수십 라운드만 돌아도 수십만 토큰이 쌓이는 것은 산술적으로 당연한 일이다.
2. 컨텍스트 누적의 구조적 원인 3가지
2.1 프론티어 모델은 단일 호출에서 이미 강하다
GPT-4.1, Claude 4, Gemini 2.5 같은 모델은 잘 정의된 one-shot 문제를 거의 풀어낸다. 실패는 단일 호출이 아니라 장기 루프, 멀티소스 통합, 툴 오케스트레이션에서 터진다.
2.2 에이전트의 모든 실패 시나리오는 컨텍스트 문제로 환원된다
Philipp Schmid(2025):
“Most agent failures are not model failures anymore, they are context failures.”
모델을 갈아 끼우기 전에 컨텍스트를 먼저 의심하는 편이 맞다.
2.3 멀티에이전트 아키텍처는 토큰 소비를 더 키운다
Lance Martin(LangChain, 2025)이 인용하는 Anthropic 데이터:
“Anthropic reported multi-agent systems use up to 15× more tokens than single-turn chat interactions.”
멀티에이전트가 복잡한 태스크에서 성능 우위를 보이는 데는 이유가 있지만, 그 대가는 최대 15배에 이르는 토큰 소비다.
3. 툴 수 증가의 혼란 효과
에이전트에 도구가 많을수록 성능이 저하된다. Lance Martin(2025)의 인용:
“Recent papers have shown that applying RAG to tool descriptions improves tool selection accuracy by 3-fold.”
도구를 전부 컨텍스트에 욱여넣는 대신 필요한 도구만 RAG로 골라 넣는 쪽이 3배 더 정확하다는 뜻이다. 모든 도구 정의를 컨텍스트에 끌어안고 있으면 00_06-5대-실패모드-분류의 Context Confusion(혼란) 실패모드로 이어진다.
4. 컨텍스트 누적 흐름 다이어그램
sequenceDiagram participant U as 사용자 participant A as 에이전트 (LLM) participant T as 도구들 participant CTX as 컨텍스트 윈도우 U->>CTX: 시스템 프롬프트 + 목표 (초기 로딩) A->>T: 툴 호출 1 (웹 검색) T->>CTX: 결과 추가 (+수천 토큰) A->>T: 툴 호출 2 (코드 실행) T->>CTX: 결과 추가 (+수천 토큰) Note over CTX: 중간 추론·오류 기록도 누적 A->>T: 툴 호출 N... T->>CTX: 결과 추가 (누적 수십만 토큰) Note over CTX: ⚠️ 윈도우 임계값 접근 A->>A: Compaction / Sub-agent 전환 필요
5. Anthropic이 제시하는 3가지 솔루션
Anthropic Applied AI Team(2025-09-29):
5.1 Compaction (압축)
컨텍스트가 임계값(Claude Code: 95%)에 도달하면 전체 히스토리를 요약해 새 컨텍스트로 다시 시작한다. 요약은 재귀적(recursive) 또는 계층적(hierarchical) 전략을 쓴다.
- 장점: 윈도우를 비워 작업 지속 가능
- 단점: 미묘하지만 중요한 컨텍스트를 잃을 위험
5.2 Structured Note-Taking (구조화 노트)
에이전트가 컨텍스트 외부에 NOTES.md 같은 파일을 유지한다. Anthropic의 멀티에이전트 리서처 사례:
“saving its plan to Memory to persist the context, since if the context window exceeds 200,000 tokens it will be truncated.”
5.3 Sub-agent Architectures (서브에이전트)
주 에이전트는 고수준 계획만 들고 있고, 실제 작업은 서브에이전트에 맡긴다. 서브에이전트는 전체 출력 대신 1,000~2,000 토큰 분량의 요약본만 주 에이전트로 돌려준다.
6. Claude Code 실제 구현 사례
Anthropic의 Claude Code가 실제로 적용하는 컨텍스트 전략:
| 전략 | 구현 방식 |
|---|---|
| 즉시 로딩 | CLAUDE.md 파일을 세션 시작 시 즉시 로딩 |
| Just-in-Time 로딩 | glob/grep으로 필요한 파일을 필요한 순간에만 로딩 |
| Auto-compact | 95% 도달 시 자동 압축 실행 |
| 서브에이전트 | 복잡 태스크를 서브에이전트에 위임, 요약만 회수 |
참고문헌
- Effective Context Engineering for AI Agents — Prithvi Rajasekaran et al., 2025-09-29, Anthropic Engineering Blog
- The New Skill in AI is Not Prompting, It’s Context Engineering — Philipp Schmid, 2025-06-30, 개인 블로그
- Context Engineering for Agents — LangChain Team, 2025-07-02, LangChain Blog
- Context Engineering for Agents — Lance Martin, 2025-06-23, 개인 블로그
- ContextBudget: Budget-Aware Context Management for Long-Horizon Search Agents — Yong Wu et al., 2026-04-02, arXiv:2604.01664
관련 노트: 00_04-컨텍스트-로트-Context-Rot · 00_06-5대-실패모드-분류 · 00_07-4대-전략-Write-Select-Compress-Isolate · 06 해결전략 · 08 실전