볼트 홈: README

비교 — 4대 해결전략: Write · Select · Compress · Isolate 언제 무엇을 쓰나

한 줄 정의

LangChain(2025)의 4대 컨텍스트 엔지니어링 전략 Write(밖에 쓰기) · Select(골라 끌어오기) · Compress(짜내기) · Isolate(분리하기)를 “어떤 실패모드가 보이면 어느 전략을 꺼내는가”라는 역방향 처방의 관점에서 한 표로 묶는다. 전략끼리 겹치고 부딪히는 지점까지 함께 짚는 비교 노트다.


왜 중요한가

06 해결전략은 4전략을 각각 깊게 다루지만, 실무자는 정반대 방향으로 일한다. 전략을 먼저 고르는 게 아니라 증상(실패모드)을 먼저 본다. “응답이 자꾸 옛 사실을 우긴다(오염)”, “툴이 30개라 엉뚱한 걸 부른다(혼란)”, “100K 넘으니 답이 무뎌진다(산만)” 같은 증상에서 곧장 전략으로 건너뛴다.

게다가 4전략은 서로 독립적이지 않다. Compress를 과하게 하면 정보가 소실되어 오히려 오염·충돌을 부르고, Isolate를 과하게 하면 결정이 흩어져 또 다른 충돌을 만든다. 한 전략의 처방이 다른 실패모드의 원인이 되는 이 트레이드오프를 모르면, 약을 쓰다 새 병을 얻는다. 이 노트는 그 경계선을 정리한다.


1. 4전략 정면 비교표 — 정의·막는 실패모드·대표 기법

전략한 줄 정의막는 실패모드대표 기법핵심 출처
Write컨텍스트 창 밖에 저장한다소실 F1 · 과부하 F3스크래치패드, todo.md 재기록, 파일시스템 외부화, Memory 선저장Write
Select필요한 것만 끌어온다혼란 F4 · 충돌 F5RAG·하이브리드 검색, Tool Loadout ~20개, 최신 우선 선택Select
Compress필수 토큰만 남긴다과부하 F3 · 산만 F8 · 비용 F7계층 요약, Provence 프루닝, KV-캐시 최적화, 압축 전용 LLMCompress
Isolate컨텍스트를 분리한다혼란 F4 · 충돌 F5 · 암묵적 결정 분산 F6멀티에이전트, Context Quarantine, 서브에이전트 격리Isolate

주의: Isolate는 양날의 검이다. 격리로 충돌(F5)을 막을 수도 있지만, 병렬 격리가 과하면 암묵적 결정 분산(F6)이라는 새로운 충돌을 부른다. 아래 4절에서 자세히 다룬다.


2. 역방향 처방표 — 실패모드를 보면 어느 전략을 꺼내는가

실무의 진입점은 언제나 증상이다. 증상을 보고 1순위, 2순위 전략 순으로 처방한다.

보이는 실패모드1순위 전략2순위(보강) 전략왜 이 조합인가
오염(잘못된 사실이 반복 참조)SelectIsolateSelect로 오염 소스를 끌어오지 않고, Isolate로 오염된 컨텍스트를 격리·차단
산만(100K+ 토큰에서 무뎌짐)CompressWriteCompress로 토큰을 짜내고, Write로 핵심을 밖에 빼 컨텍스트 길이 자체를 줄임
혼란(불필요 정보·툴로 품질 저하)Select관련성 필터·Tool Loadout으로 애초에 안 들이는 게 근본 처방
충돌(상충 정보로 불일치)IsolateSelectIsolate로 충돌 주체를 분리하고, Select로 최신·정답 정보만 우선
부패(길이 누적으로 성능 저하)CompressWriteCompress로 길이를 줄이고, Write로 누적분을 외부화해 컨텍스트를 짧게 유지
flowchart LR
    O["오염<br/>F2"] --> SEL1["Select"]
    O --> ISO1["Isolate"]
    D["산만<br/>F8"] --> COM1["Compress"]
    D --> WR1["Write"]
    C["혼란<br/>F4"] --> SEL2["Select"]
    K["충돌<br/>F5"] --> ISO2["Isolate"]
    K --> SEL3["Select"]
    R["부패<br/>F1·F3"] --> COM2["Compress"]
    R --> WR2["Write"]

이 표는 06_09-실패모드-전략-매핑표의 정방향(전략→기법) 매핑을 거꾸로 뒤집은 것이다. 둘을 함께 보면 양방향으로 조회할 수 있다. 5대 실패모드의 감별 자체는 09_01-감별진단-5대모드-종합비교를 참고하라.


3. 전략별 “쓰는 순간 / 안 쓰는 순간”

전략이럴 때 꺼낸다이럴 때 피한다
Write세션을 넘겨 기억이 필요할 때, 관측값이 거대할 때, 계획을 잃으면 안 될 때정보가 작고 단발성일 때(외부화 오버헤드만 늘어남)
Select지식·도구가 많아 다 못 넣을 때, 신선도가 중요할 때후보가 애초에 적을 때(검색 비용·tool call 손익분기 미달)
Compress길이가 임계(약 100K)에 접근할 때, KV-캐시 비용이 클 때정보 손실이 치명적인 정밀 태스크(요약이 오염·충돌 유발)
Isolate하위문제가 독립·병렬 가능할 때, 도구 로드아웃을 나눠야 할 때결정이 상호의존적일 때(분산이 충돌을 부름)

4. 전략 간 중첩·상충 — 약이 병이 되는 경계

4전략은 서로를 보강하기도 하고 서로를 무너뜨리기도 한다. 핵심 트레이드오프는 셋이다.

4-1. Compress 과잉 → 소실·오염·충돌 (가장 흔한 함정)

Compress의 본질은 “무엇을 버릴지”를 결정하는 일이고, Cognition은 이를 두고 “hard to get right”라 못 박았다. 요약이 과하면 이런 일이 벌어진다.

  • 버린 토큰에 결정의 근거가 있었다면, 이후 단계가 그 결정과 충돌(F5)한다.
  • 요약이 사실을 미세하게 왜곡하면, 그 요약이 반복 참조되며 오염(F2)으로 번진다.
  • 중간 핵심을 날리면, 소실(F1) 자체를 Compress가 유발한다.

결국 Compress는 산만(F8)을 막으려다 오염·충돌을 새로 만들 수 있다. 처방은 이렇다. 손실이 치명적인 구간은 요약 대신 Write로 외부화해 원본을 보존하고, 압축은 도메인 특화 모델로 정밀하게 돌린다.

4-2. Isolate 과잉 → 암묵적 결정 분산 (F6)

Isolate로 병렬 서브에이전트를 띄우면, 각자 독립된 컨텍스트에서 암묵적 결정을 내린다. Cognition의 Flappy Bird 사례가 그렇다. 한 워커가 “마리오 아트 스타일”을 골랐다는 걸 다른 워커가 모르면, 결과를 합칠 때 충돌(F6)한다. Isolate가 충돌(F5)을 막으려다 다른 종류의 충돌(F6)을 빚는 역설이다. 도메인별 분기는 09_08-비교-멀티에이전트-격리-찬반에서 다룬다.

4-3. Select ↔ Compress: KV-캐시 상충

Select는 동적 관련성을 좇아 매번 다른 컨텍스트를 만들기 때문에 KV-캐시를 깬다. 이는 캐시를 고정(Append-only)하려는 Compress의 최적화와 충돌한다. 캐시 적중과 미적중은 $0.30 대 $3.00/MTok으로 10배 차이라 무시할 수 없다. 동적 관련성과 캐시 안정성을 동시에 잡는 일은 아직 미해결 과제로 남아 있다.

flowchart TD
    W["Write<br/>외부화"] -->|보강| C["Compress<br/>짜내기"]
    C -->|과잉 시| RISK1["소실·오염·충돌<br/>F1·F2·F5"]
    I["Isolate<br/>분리"] -->|과잉 시| RISK2["암묵적 결정 분산<br/>F6"]
    S["Select<br/>골라오기"] -->|상충| C2["KV-캐시 안정성<br/>F7"]
    RISK1 -->|처방| W2["Write로 원본 보존"]
    RISK2 -->|처방| SEQ["순차·전체 트레이스 공유"]

5. 전략 조합 의사결정 플로우

flowchart TD
    START(["어떤 증상이 보이는가"]) --> Q1{"길이·비용이<br/>문제인가"}
    Q1 -->|"예"| Q2{"정보 손실이<br/>치명적인가"}
    Q1 -->|"아니오"| Q3{"틀린 정보가<br/>섞여 있는가"}

    Q2 -->|"예"| WC["Write 우선<br/>원본 외부화 후<br/>최소 Compress"]
    Q2 -->|"아니오"| CMP["Compress 적극<br/>요약·프루닝·KV캐시"]

    Q3 -->|"예"| Q4{"하위문제가<br/>독립적인가"}
    Q3 -->|"아니오"| SEL["Select 우선<br/>관련성 필터·Tool Loadout"]

    Q4 -->|"예 (독립)"| ISO["Isolate<br/>격리·병렬 서브에이전트"]
    Q4 -->|"아니오 (의존)"| SEQ2["Isolate 자제<br/>순차+전체 트레이스 공유"]

결정의 갈림길은 두 변수다. 하나는 정보 손실 허용도로, Compress와 Write 중 무엇을 앞세울지를 가른다. 다른 하나는 하위문제 상호의존성으로, Isolate를 쓸지 말지를 가른다. 이 둘만 확정하면 4전략의 조합이 거의 자동으로 정해진다.


요약·체크리스트

  • 증상부터 본다. 전략을 먼저 고르지 말고, 보이는 실패모드에서 역방향 처방표(2절)로 진입한다.
  • 오염은 Select+Isolate, 산만은 Compress+Write, 혼란은 Select, 충돌은 Isolate+Select, 부패는 Compress+Write.
  • Compress 과잉을 경계한다. 요약은 소실·오염·충돌을 부를 수 있으니, 손실이 치명적이면 Write로 원본을 보존한다.
  • Isolate 과잉을 경계한다. 병렬 격리는 암묵적 결정 분산(F6)을 부르므로, 결정이 의존적이면 순차로 묶고 전체 트레이스를 공유한다.
  • Select와 KV-캐시의 상충을 잊지 않는다. 동적 관련성은 캐시를 깬다($0.30 대 $3.00/MTok). 캐시 안정성과 저울질한다.
  • 두 분기 변수, 곧 정보 손실 허용도와 하위문제 상호의존성으로 조합을 확정한다.

관련 노트