02-구조
02 · 컨텍스트는 어떻게 채워지고 어떻게 비워지는가
섹션 제목: “02 · 컨텍스트는 어떻게 채워지고 어떻게 비워지는가”한 호출의 컨텍스트 구성
섹션 제목: “한 호출의 컨텍스트 구성”API 한 호출의 컨텍스트는 보통 다음 순서로 직렬화된다.
[시스템 프롬프트][도구 정의들][과거 메시지 1] (user)[과거 메시지 1 응답] (assistant)[과거 메시지 2] (user / tool_result)[과거 메시지 2 응답] (assistant)...[새 사용자 메시지]→ 모델 응답 (max_tokens 까지)이 직렬화의 어디 한 곳이라도 늘면 다른 모든 슬롯이 좁아진다. Anthropic의 문서는 이를 정확히 짚는다 — 도구 정의 자체가 매 호출마다 토큰을 잡아먹고, 모델별로 그 양이 다르다(앞 장 표 참조).
윈도우가 가득 차면
섹션 제목: “윈도우가 가득 차면”윈도우가 한도에 닿으면 어떤 일이 벌어질까. 클라이언트는 보통 다음 중 하나를 한다.
- 잘라내기(truncate) — 가장 오래된 메시지부터 단순히 버린다. 가장 단순하고, 가장 손실이 큰 방식.
- 요약(summarize) — 오래된 구간을 모델로 한 줄~몇 줄 요약으로 압축해 끼워 넣는다. Claude Code의
/compact가 이 패턴이다. - 외부 저장소 + 검색(RAG) — 과거 내용을 외부 벡터 저장소에 적재해 두고, 필요할 때만 관련 조각을 검색해 컨텍스트에 끼워 넣는다.
- 서브에이전트(subagent)로 격리 — 무거운 탐색이나 위험한 시도를 별도 컨텍스트에서 수행해 메인 컨텍스트가 더러워지지 않게 한다.
Anthropic의 Claude Code 베스트 프랙티스는 이 4번을 정면으로 권장한다.
원문: “Subagents for context isolation — spawn fresh agents for verification, search, or risky exploration so the main thread keeps a clean context.”
의역: “검증·검색·위험한 탐색에는 새 서브에이전트를 띄워 메인 컨텍스트를 깨끗하게 유지하라.”
— sources/14-research-notes/2026-04-07-anthropic-claude-code-best-practices.md
”context rot” — 시간이 지날수록 컨텍스트가 썩는다
섹션 제목: “”context rot” — 시간이 지날수록 컨텍스트가 썩는다”긴 트라젝토리에서 자주 보고되는 현상이 있다 — 처음에는 잘 작동하던 에이전트가 턴이 쌓일수록 점점 엉뚱해진다. Anthropic은 이를 “context rot”이라고 부른다.
원문: “Warns about ‘context rot’ — irrelevant or outdated content silently degrading later reasoning — and proposes periodic context audits.”
의역: “관련 없는/오래된 내용이 조용히 후속 추론을 갉아먹는 ‘context rot’ 현상을 경고하며, 주기적 컨텍스트 감사 권장.” — Effective Context Engineering for AI Agents
대응 패턴은 단순하다 — 주기적으로 컨텍스트를 정리 한다(요약·서브에이전트로 분기·just-in-time 검색으로 교체). 본 위키 Part 3 컨텍스트 엔지니어링 챕터가 이 운영을 본격적으로 다룬다.
”긴 컨텍스트 모델”이 생긴다고 해서 윈도우 관리가 끝나는 건 아니다
섹션 제목: “”긴 컨텍스트 모델”이 생긴다고 해서 윈도우 관리가 끝나는 건 아니다”2025년 들어 100K~1M 토큰급 컨텍스트를 지원하는 모델이 흔해졌다. 그렇다고 컨텍스트 위생이 사라지지는 않는다. 두 가지 이유다.
- 비용이 여전히 N에 비례 — 100만 토큰을 매 호출마다 보내면 요금·지연이 폭주한다.
- lost in the middle 현상 — 긴 컨텍스트의 중간 정보는 양 끝보다 약하게 반영된다. Long Code Arena 같은 벤치마크 논문(sources/18-research-papers/context/long-code-arena-arxiv-2406-11612.md)이 이 약점을 정량적으로 다룬다.
따라서 “긴 컨텍스트 모델 = 컨텍스트 엔지니어링 불필요”는 잘못된 등식이다.
- 한 호출의 컨텍스트는 시스템·도구·과거·새 메시지·응답 슬롯이 한 자루 안에 직렬화된 것.
- 한도가 차면 잘라내기·요약·RAG·서브에이전트 중 하나로 정리해야 한다.
- “context rot”은 긴 트라젝토리의 조용한 적이다.
- 긴 컨텍스트 모델이 등장해도 관리의 필요는 사라지지 않는다.