상위: 00_00_MOC
00_07 — 4대 전략 개관: Write · Select · Compress · Isolate
한 줄 정의
LangChain이 2025년 7월 2일 제시한 Write / Select / Compress / Isolate 4버킷은 컨텍스트 엔지니어링의 표준 어휘로 자리 잡았다.
왜 중요한가
네 전략은 챕터 00의 관문 격으로, 이 노트는 각각을 개관하는 데 목적이 있다. 상세 구현과 실전 적용은 06 해결전략과 08 실전에서 다룬다.
“We group common strategies for agent context engineering into four buckets — write, select, compress, and isolate.” — LangChain Team, 2025
1. Write (쓰기) — 컨텍스트 밖에 정보 저장
핵심 아이디어는 간단하다. 중간 결과물, 계획, 메모를 컨텍스트 윈도우 밖에 저장해 두었다가 필요할 때 골라 불러온다.
구현 패턴은 크게 세 가지다.
- Scratchpad: 에이전트가 도구 호출로 노트를 저장한다(예:
NOTES.md,plan.txt). - 장기 메모리: ChatGPT, Cursor, Windsurf처럼 세션 사이에 메모리를 자동으로 만들어 둔다.
- 외부 데이터베이스: 벡터 DB나 지식 그래프에 결과를 저장한다.
Anthropic의 멀티에이전트 리서처는 계획을 Memory에 저장한다.
“saving its plan to Memory to persist the context, since if the context window exceeds 200,000 tokens it will be truncated.”
대응하는 실패모드는 Context Distraction(산만)이다. 히스토리를 밖으로 빼내 컨텍스트 부담을 던다.
2. Select (선택) — 필요한 정보만 컨텍스트로
핵심 아이디어는 “전부 넣기”가 아니라 “필요한 것만”이다. 그때그때 필요한 정보만 컨텍스트로 가져온다.
구현 패턴은 다음과 같다.
- RAG(Retrieval-Augmented Generation): 임베딩 검색으로 관련 문서만 골라 넣는다.
- 도구 선택 RAG: 모든 도구 정의를 다 넣는 대신, 태스크에 맞는 도구만 검색해 제공한다.
- 메모리 검색: 에피소딕·절차적·의미론적 메모리에서 관련 항목만 추린다.
이 효과는 수치로도 드러난다.
“Recent papers have shown that applying RAG to tool descriptions improves tool selection accuracy by 3-fold.” — Lance Martin (LangChain), 2025
Claude Code는 glob과 grep으로 필요한 파일을 just-in-time 방식으로 불러온다. 전체 코드베이스를 미리 올려두지 않는다.
대응하는 실패모드는 Context Confusion(혼란)이다. 불필요한 도구와 문서를 애초에 넣지 않는 것이 요점이다.
3. Compress (압축) — 핵심 토큰만 유지
핵심 아이디어는 이미 컨텍스트에 들어 있는 정보를 더 적은 토큰으로 다시 표현하는 것이다.
구현 패턴은 다음과 같다.
- 요약(Summarization): 대화 히스토리나 문서를 요약한다. 재귀적·계층적 전략을 쓴다.
- 트리밍(Trimming): 오래된 메시지와 중복된 도구 출력을 걷어낸다.
- Trained Context Pruner: Provence 같은 전용 모델로 중요한 토큰만 남긴다.
- Auto-compact: Claude Code가 95% 임계값에서 자동으로 압축한다.
Claude Code의 동작은 다음과 같이 정리된다.
Claude Code runs auto-compact after exceeding 95% context window capacity using recursive or hierarchical strategies. (Anthropic / LangChain, 2025)
다만 압축을 너무 공격적으로 밀어붙이면 미묘하지만 중요한 맥락을 잃을 수 있다. 임계값과 방식은 태스크 특성에 맞게 조정하는 편이 안전하다.
대응하는 실패모드는 Context Rot(부패)와 Context Distraction(산만)이다. 전반적인 토큰 부담을 줄여 준다.
4. Isolate (격리) — 컨텍스트를 분리된 에이전트에
핵심 아이디어는 컨텍스트를 여러 독립 에이전트나 환경으로 나누는 것이다. 각 에이전트는 자기 태스크에만 집중하는 소형 컨텍스트를 갖는다.
구현 패턴은 다음과 같다.
- 멀티에이전트 아키텍처: 주 에이전트가 고수준에서 조율하고, 서브에이전트가 상세 실행을 끝낸 뒤 요약(1K~2K 토큰)만 돌려준다.
- 샌드박싱(Sandboxing): 이미지·오디오처럼 토큰을 많이 잡아먹는 객체를 코드 실행 환경에 격리한다(HuggingFace deep researcher 방식).
- State Schema: 턴마다 LLM에 노출하는 상태 필드를 선택적으로 제한한다.
비용은 수치로 분명하게 드러난다.
“Anthropic reported multi-agent systems use up to 15× more tokens than single-turn chat interactions.”
격리는 복잡한 태스크에서 성능을 끌어올리지만, 그 대가로 토큰을 최대 15배까지 더 쓴다. 이 트레이드오프를 알고 적용해야 한다.
대응하는 실패모드는 Context Clash(충돌)다. 상충하는 정보를 서로 독립된 컨텍스트로 떼어 놓는다.
전략 요약표
| 전략 | 핵심 질문 | 주요 기법 | 측정 효과 | 주의사항 |
|---|---|---|---|---|
| Write | 이 정보를 밖에 저장할 수 있나? | Scratchpad, 장기 메모리 | — | 재로딩 타이밍 설계 필요 |
| Select | 지금 진짜 필요한 것만 넣고 있나? | RAG, 도구 선택 RAG | 도구 선택 정확도 3배↑ | 검색 품질이 성능 결정 |
| Compress | 같은 정보를 더 적은 토큰으로? | 요약, 트리밍, auto-compact | — | 중요 맥락 손실 위험 |
| Isolate | 별도 에이전트로 분리 가능한가? | 서브에이전트, 샌드박싱 | — | 토큰 최대 15배↑ 비용 |
전략 실행 흐름
flowchart TD TASK[에이전트 태스크 시작] TASK --> W[WRITE<br/>중간 결과를 외부 저장] W --> |scratchpad / NOTES.md / 장기 메모리| EXT[외부 메모리] TASK --> S[SELECT<br/>필요한 정보만 로딩] S --> |RAG 기반 선택 → 정확도 3배↑| CTX[컨텍스트 윈도우] CTX --> COMP[COMPRESS<br/>핵심 토큰만 유지] COMP --> |요약 / auto-compact 95%| CTX2[압축된 컨텍스트] CTX2 --> ISO[ISOLATE<br/>서브에이전트 분리] ISO --> SA1[서브에이전트 1<br/>독립 컨텍스트] ISO --> SA2[서브에이전트 2<br/>독립 컨텍스트] SA1 --> |요약 1-2K 토큰만 반환| MAIN[주 에이전트] SA2 --> |요약 1-2K 토큰만 반환| MAIN EXT --> |필요 시 재선택·재로딩| CTX MAIN --> RESULT[최종 결과] style W fill:#4477aa,color:#fff style S fill:#44aa77,color:#fff style COMP fill:#aa7744,color:#fff style ISO fill:#aa4477,color:#fff style RESULT fill:#228833,color:#fff
ContextBudget — 전략 선택 자동화 (2026)
최근에는 전략 선택 자체를 자동화하려는 흐름이 보인다. ContextBudget(Yong Wu et al., arXiv:2604.01664, 2026)은 네 전략 중 무엇을 적용할지를 강화학습으로 학습한다. 에이전트가 현재 예산 상황을 스스로 평가해 전략을 고르는 방식이다. 고복잡도 태스크에서 강한 baseline 대비 1.6배 이상의 성능 향상을 보고했다.
요약·체크리스트
- Write — 이 정보를 컨텍스트 밖에 저장해 둘 수 있는가.
- Select — 지금 진짜 필요한 것만 넣고 있는가.
- Compress — 같은 정보를 더 적은 토큰으로 표현할 수 있는가.
- Isolate — 별도 에이전트로 분리할 수 있는가.
네 질문을 순서대로 던지면 대부분의 컨텍스트 관리 결정이 정리된다. 각 전략은 특정 실패모드(산만·혼란·부패·충돌)에 대응하므로, 어떤 증상을 겪고 있는지부터 짚으면 전략을 고르기 쉽다.
참고문헌
- Context Engineering for Agents — LangChain Team, 2025-07-02, LangChain Blog (4버킷 원출처)
- Context Engineering for Agents — Lance Martin, 2025-06-23, 개인 블로그
- Effective Context Engineering for AI Agents — Prithvi Rajasekaran et al., 2025-09-29, Anthropic Engineering Blog
- Context Engineering — What it is, and techniques to consider — Tuana Çelik, Logan Markewich, 2025-07-03, LlamaIndex Blog
- ContextBudget: Budget-Aware Context Management for Long-Horizon Search Agents — Yong Wu et al., 2026-04-02, arXiv:2604.01664
관련 노트
00_05-에이전트-컨텍스트-누적 · 00_06-5대-실패모드-분류 · 06 해결전략 · 08 실전 · 00_핵심용어집