볼트 홈: README
5대 컨텍스트 실패모드 종합 감별진단
한 줄 정의
감별진단(differential diagnosis)은 “출력이 이상하다”는 하나의 증상에서 출발해, 그 원인이 오염·산만·혼란·충돌·부패 다섯 모드 중 무엇인지를 배제와 분기로 좁혀가는 과정이다. 이 노트는 09장의 중심 허브로, 다섯 모드를 한 표·한 트리·한 문장으로 변별하고 혼동 쌍과 공존 시나리오까지 잇는다.
왜 중요한가
실무에서 모델 오류는 증상으로 먼저 도착한다. “엉뚱한 답을 했다”, “툴을 잘못 불렀다”, “이전 답을 뒤집었다”. 증상은 비슷해 보여도 처방은 정반대일 때가 많다. 오염을 길이 문제로 오진해 컨텍스트만 줄이면 오염원은 그대로 남고, 부패를 내용 문제로 오진해 사실검증 레이어만 붙이면 길이는 그대로다.
핵심 분기점은 단 하나, “내용(WHAT)이 문제냐, 길이(HOW MUCH)가 문제냐”다(README의 한눈표 참조).
- 내용 축: 오염(정의) · 충돌(정의) — 무엇이 들어왔고, 그것들이 정합한가.
- 길이 축: 산만(정의) · 부패(정의) — 얼마나 쌓였고, 단조 하락하는가.
- 교차점: 혼란(정의) — 불필요한 것이 너무 많이 섞여 신호가 묻힌다.
이 축을 먼저 세우면 같은 증상이라도 처방이 갈라지는 지점을 정확히 짚을 수 있다. 04장의 04_11-compare-인접개념-비교가 충돌을 중심으로 인접 개념을 갈랐고 05장의 05_02-분류-다른-실패모드와의-관계가 부패를 분류학적으로 떼어냈다면, 이 노트는 다섯 모드 전체를 같은 자리에 펼친 진단 매트릭스다.
1. 5×N 종합 비교표
각 행은 임상 진단의 항목 순서를 따른다. 정의 → 핵심 축 → 유발 조건 → 증상 → 탐지 → 처방 → 헷갈리는 짝 순이다. 표 셀의 위키링크는 해당 모드의 캐노니컬 노트로 연결된다.
| 항목 | 01 오염 (Poisoning) | 02 산만 (Distraction) | 03 혼란 (Confusion) | 04 충돌 (Clash) | 05 부패 (Rot) |
|---|---|---|---|---|---|
| 한줄 정의 | 거짓·악의 정보가 안착해 이후 추론을 자기강화적으로 왜곡 (정의) | 임계 토큰 초과 시 추론 대신 누적 히스토리에 과의존 (정의) | 무관 정보·툴 과부하가 주의를 빼앗아 오답·오툴 유발 (정의) | 컨텍스트 내 정보들이 서로 모순돼 일관된 답 실패 (정의) | 길이가 늘수록 어텐션 희석·위치편향으로 활용도 단조 하락 (정의) |
| 핵심 축 | 내용 WHAT — 무엇이 들어왔나 (틀린/적대 정보) | 길이 HOW-MUCH — 누적 양이 추론을 압도 | 내용+길이 교차 — 불필요한 게 너무 많아 신호가 묻힘 | 내용 WHAT — 들어온 정보들끼리의 정합성 | 길이 HOW-MUCH — 토큰 증가 자체가 원인 변수 |
| 유발 조건(trigger) | 할루시네이션 캐싱, 악성/간접 인젝션, 잘못된 관찰 기록 | 장기실행 에이전트, 임계점 초과 히스토리 누적 (임계점) | 툴 20개+ 동시로드, MCP 과다 등록 (툴과부하), 과잉 RAG 청크 | 멀티턴 누적, 앵커링·아첨, RAG 출처 간 모순, 위치편향 | 입력 길이 증가 자체 — 내용 무해·완전 마스킹에도 잔존 |
| 대표 증상 | 확신에 찬 틀린 전제를 반복 강화, 달성 불가 목표 추구 | 신선한 전략 합성 실패, 과거 행동 패턴 반복 | 관련 없는 툴 호출, 엉뚱한 맥락으로 답이 치우침 | 답이 흔들림·번복, 한쪽 무시/평균내기 | 정보가 있는데 “없다”고 답함, 길이 따라 성능 하락 |
| 탐지 방법 | 반복 참조되는 사실의 실측 검증, 오류 최초 진입 위치 추적 | 컨텍스트 토큰량·연속작업 시간 모니터, 행동 반복 패턴 | 로드 툴 수 카운트, 무관 참조 로그 | 동일 변수에 2개+ 진술 공존 여부, 번복 추적 | 길이별 성능 곡선 측정(focused vs full 입력 비교) |
| 1차 처방 | 사실검증 레이어·출처관리·격리 (방어전략) | 요약·프루닝·세션분할 (체크리스트) | 툴 최소화·less-is-more (less-is-more) | 격리·명시적 우선순위·CCR (체크리스트) | 컨텍스트 최소화·증거암송·집중입력 (체크리스트) |
| 가장 헷갈리는 짝 | ↔ 충돌(둘 다 내용) / ↔ 부패(시간축) | ↔ 부패(둘 다 길이) / ↔ 혼란 | ↔ 산만 / ↔ 충돌 | ↔ 오염(둘 다 내용) / ↔ 혼란 | ↔ 산만(둘 다 길이) / ↔ 오염(시간축) |
읽는 법: 위에서 아래로 한 열을 읽으면 한 모드의 임상 카드가 되고, 가로로 한 행을 읽으면 다섯 모드의 같은 항목을 대조하게 된다. 진단할 때는 “핵심 축” 행을 먼저 보고 내용과 길이를 가른 뒤 “대표 증상”으로 좁힌다.
2. 감별 결정 트리
“출력이 왜 틀렸나?”에서 시작해 배제 질문을 거치며 다섯 모드 중 하나에 도달한다. 임상의 rule-out 순서가 그렇듯, 가장 치명적이고 처방이 다른 내용 문제(오염·충돌)를 먼저 배제한 뒤 길이 문제로 내려간다.
flowchart TD START["출력이 왜 틀렸나?"] Q0{"필요한 정보가<br/>컨텍스트에 다 들어있나?"} Q1{"잘못된/악의 정보가<br/>박혀 반복 참조되나?"} Q2{"같은 대상에 대해<br/>두 정보가 모순되나?"} Q3{"컨텍스트 양이<br/>임계점을 넘었나?"} Q4{"무관 정보·툴이<br/>과다하게 섞였나?"} Q5{"길이만 늘렸을 뿐인데<br/>단조 하락하나?"} P["01 오염<br/>Poisoning"] X["04 충돌<br/>Clash"] D["02 산만<br/>Distraction"] C["03 혼란<br/>Confusion"] R["05 부패<br/>Rot"] U["미분류·파라메트릭 오류<br/>단일턴 재현으로 격리"] START --> Q0 Q0 -->|아니오, 정보가 누락| Q4 Q0 -->|예, 정보는 있다| Q1 Q1 -->|예| P Q1 -->|아니오| Q2 Q2 -->|예| X Q2 -->|아니오| Q3 Q3 -->|예| D Q3 -->|아니오| Q4 Q4 -->|예| C Q4 -->|아니오| Q5 Q5 -->|예| R Q5 -->|아니오| U style P fill:#ffaa00,color:#000 style X fill:#ff4444,color:#fff style D fill:#4488ff,color:#fff style C fill:#44aa44,color:#fff style R fill:#ff6b6b,color:#fff
트리 사용 노트:
- Q1·Q2(내용)를 먼저 두는 이유. 오염·충돌은 컨텍스트를 줄여도 해결되지 않으므로, 길이 처방으로 헛걸음하기 전에 배제해야 한다.
- Q5(부패)가 맨 끝인 이유. 부패는 오염·충돌·혼란·위치편향을 모두 통제한 뒤에도 잔존하는 길이 의존 현상이다(05_02-분류-다른-실패모드와의-관계). 다른 모드를 배제하고도 길이만으로 하락이 남으면 부패다.
- U(미분류)에 도달했을 때. 같은 정보를 짧은 단일턴으로 재현해 본다. 단일턴에서도 틀리면 컨텍스트 실패가 아니라 모델 파라메트릭 한계다.
3. “이 한 문장으로 구분한다”
각 모드를 다른 넷과 갈라내는 변별 문장은 하나씩이다.
- 오염: “정보가 틀렸는데, 컨텍스트 안에서는 서로 모순 없이 일관되게 반복된다.” 모순이 없다는 점이 충돌과 갈리는 결정적 단서다.
- 산만: “정보는 다 맞는데, 그저 너무 쌓여서 모델이 추론 대신 과거를 따라 한다.” 오류가 없는데도 무너진다.
- 혼란: “필요한 건 들어 있는데, 무관한 것과 툴이 같이 섞여 신호를 덮는다.” 핵심은 양보다 무관함(irrelevance)이다.
- 충돌: “같은 대상을 두고 두 진술이 정면으로 서로를 부정한다.” 모순의 직접성이 오염·혼란과 갈리는 지점이다.
- 부패: “내용을 무해화하고 위치를 최적화하고 무관 토큰을 마스킹해도, 길이만 늘리면 여전히 하락한다.” 통제 후 잔존이 결정적이다.
암기 단서: 오염=틀림+일관 / 산만=맞음+과다 / 혼란=무관+혼입 / 충돌=정면 모순 / 부패=통제 후에도 길이로 하락.
4. 혼동 쌍(confusable pairs) 지도
다섯 모드 사이에서 실무자가 가장 자주 오진하는 다섯 쌍이다. 각 쌍은 09장의 전용 비교 노트에서 깊게 다룬다.
flowchart LR P["01 오염"] D["02 산만"] C["03 혼란"] X["04 충돌"] R["05 부패"] P ---|"둘 다 내용 WHAT"| X P -.->|"시간축: 즉시 vs 점진"| R D ---|"둘 다 길이 HOW-MUCH"| R C ---|"무관 vs 과다"| D C ---|"무관 vs 정면모순"| X style P fill:#ffaa00,color:#000 style X fill:#ff4444,color:#fff style D fill:#4488ff,color:#fff style C fill:#44aa44,color:#fff style R fill:#ff6b6b,color:#fff
| 혼동 쌍 | 왜 헷갈리나 | 갈라내는 단서 | 전용 노트 |
|---|---|---|---|
| 오염 ↔ 충돌 | 둘 다 내용(WHAT) 축, 틀린 정보가 끼어 있음 | 오염=모순 없이 일관, 충돌=정면 모순 공존 | 09_02-비교-오염-vs-충돌 |
| 오염 ↔ 부패 | 둘 다 “정보가 있는데 못 쓴다”처럼 보임 | 오염=틀린 내용이 박힘(공간), 부패=길이가 늘며 서서히 못 찾음(시간축) | 09_03-비교-오염-vs-부패 |
| 산만 ↔ 부패 | 둘 다 길이(HOW-MUCH) 축, 길어지면 무너짐 | 산만=임계점 넘어 히스토리 반복, 부패=내용 무해·마스킹에도 단조 하락 | 09_04-비교-산만-vs-부패 |
| 혼란 ↔ 산만 | 둘 다 “정보가 많아서” 문제로 보임 | 혼란=무관한 것의 혼입(질), 산만=과다한 누적(양) | 09_05-비교-혼란-vs-산만 |
| 혼란 ↔ 충돌 | 둘 다 정보가 추론을 흐트러뜨림 | 혼란=서로 다른 대상의 무관 정보, 충돌=같은 대상의 상충 진술 | 09_06-비교-혼란-vs-충돌 |
두 개의 메타 축으로 정리하면, 내용 패밀리(오염·충돌)는 검증·격리·출처관리로, 길이 패밀리(산만·부패)는 압축·선택·세션분할로 처방한다. 혼란은 두 패밀리에 걸쳐 있어 툴·정보 가지치기(Select)가 1차, 길이 측면 압축(Compress)이 병행이다. 매핑은 README 전체 지도를 참조한다.
5. 공존(co-occurrence) 시나리오
실전 에이전트에서는 한 모드만 깨끗하게 나타나는 일이 드물다. 흔한 복합 패턴 셋:
시나리오 A — 산만 → 충돌 → 오염 (장기실행 코딩 에이전트)
히스토리가 임계점을 넘으며 산만이 시작되고(과거 패턴 반복), 중간에 들어온 새 지시(“CSV→JSON”)가 누적 기록과 충돌한다. 충돌이 풀리지 않은 채 잘못된 결론이 다시 컨텍스트에 쌓이면 오염으로 고착된다. 한 모드 처방만으로는 풀리지 않고, 컨텍스트 초기화와 구조화된 상태관리가 함께 필요하다. 상세 전개는 04_11-compare-인접개념-비교의 6절 시나리오를 참조한다.
시나리오 B — 부패가 충돌을 증폭 (장문 RAG)
긴 컨텍스트에서 부패로 검색 정확도가 떨어지면, 모순된 정보 가운데 어느 것이 관련 있는지 가려내는 능력도 함께 떨어져 충돌 증상이 더 쉽게 드러난다. Chroma(2025) LongMemEval에서 날짜 정보가 명시돼 있는데도 “제공되지 않았다”고 답한 사례가 부패→충돌 증폭의 전형이다(05_02-분류-다른-실패모드와의-관계).
시나리오 C — 혼란 + 오염 (가장 진단하기 어려운 조합)
무관한 정보가 잔뜩 섞인 혼란 컨텍스트에 오염된 정보까지 끼면, 출력 오류가 어느 원인에서 왔는지 바깥에서 가려내기가 매우 어렵다. 로깅 없이는 디버깅이 사실상 불가능하다. 이때는 오염원 격리(내용 처방)와 무관 정보 제거(혼란 처방)를 동시에 적용한다.
공존의 원칙: 복합 사례에는 결정 트리를 반복해서 적용한다. 가장 상류(upstream) 모드를 먼저 처방하고(예컨대 산만→충돌→오염 연쇄라면 산만부터), 재측정한 뒤 남은 증상에 트리를 다시 돌린다.
요약·체크리스트
핵심 정리
- 모든 감별은 “내용(WHAT) vs 길이(HOW-MUCH)” 한 축에서 시작한다. 오염·충돌은 내용, 산만·부패는 길이, 혼란은 교차다.
- 결정 트리는 내용 문제(오염·충돌)를 먼저 배제한 뒤 길이 문제(산만·부패)로 내려간다. 부패는 다른 모든 모드를 통제하고도 잔존할 때 확정한다.
- 다섯 혼동 쌍은 모두 09장 전용 비교 노트로 이어진다. 오진이 의심되면 해당 노트로 간다.
- 실전에서는 단일 모드가 드물다. 공존할 때는 상류 모드부터 처방하고 재측정한다.
진단 체크리스트
- 필요한 정보가 컨텍스트에 다 들어있는가? (없으면 혼란/누락부터 의심)
- 반복 참조되는 사실이 실제로 틀렸는가? → 오염 (처방)
- 같은 대상에 모순된 두 진술이 공존하는가? → 충돌 (처방)
- 컨텍스트 토큰·연속작업 시간이 임계점을 넘었는가? → 산만 (처방)
- 로드된 툴/무관 정보가 과다한가? → 혼란 (처방)
- 위 전부 배제했는데 길이만으로 하락하는가? → 부패 (처방)
- 둘 이상이 헷갈리면? → 해당 09_02-비교-오염-vs-충돌 류 전용 비교 노트로 이동
- 복합 의심 시 상류 모드부터 처방 → 재측정 → 트리 재적용
관련 노트
- README — 5대 실패모드 한눈표·내용/길이 축·전체 지도
- 09_02-비교-오염-vs-충돌 · 09_03-비교-오염-vs-부패 · 09_04-비교-산만-vs-부패 · 09_05-비교-혼란-vs-산만 · 09_06-비교-혼란-vs-충돌 — 혼동 쌍 전용 비교
- 04_11-compare-인접개념-비교 — 충돌 중심 인접개념 비교 (보완)
- 05_02-분류-다른-실패모드와의-관계 — 부패의 분류학적 위치 (보완)
- 01 오염 · 02 산만 · 03 혼란 · 04 충돌 · 05 부패