상위: 00_00_MOC

00_06 — 5대 실패모드 분류체계

핵심 명제

Drew Breunig(2025-06-22)이 처음 정리한 네 가지 실패모드에, Chroma(2025-07-14)가 이름 붙인 Context Rot을 더해 다섯 가지로 확장한다. 이 분류가 위키 전체(챕터 01~05)의 뼈대다.

여기서 다루는 범위는 텍스트 컨텍스트다. 멀티모달, 곧 이미지 토큰 점유나 비전-텍스트 충돌, 이미지 기반 프롬프트 인젝션 같은 문제는 향후 확장 주제로 남겨 둔다.

핵심 원리는 Breunig의 한 문장에 압축돼 있다.

“if you put something in the context the model has to pay attention to it.”

컨텍스트에 넣는 모든 것은 유익하든 해롭든 모델이 주목해야 할 어텐션 예산 부담이 된다.


실패모드 1 — 컨텍스트 오염 (Context Poisoning)

정의(Breunig, 2025-06-22):

“Context Poisoning is when a hallucination or other error makes it into the context, where it is repeatedly referenced.”

메커니즘: LLM은 컨텍스트에 담긴 내용을 일단 “사실”로 받아들인다. 초기 오류가 이후 추론의 전제(premise)로 자리 잡으면서 복리(compound)처럼 증폭된다.

증거: Gemini 2.5 Technical Report(Google DeepMind, arXiv:2507.06261)는 Pokémon 플레이 에이전트 사례를 든다. 게임 상태에 대한 오정보가 목표(goals) 섹션에 고정되자, 에이전트는 달성 불가능한 목표를 좇으며 몇 시간을 허비했다. 보고서는 이를 “context poisoning — where many parts of the context (goals, summary) are ‘poisoned’ with misinformation about the game state”로 명시한다.

대응 전략: Verification Layer(컨텍스트 검증 레이어) — 중간 추론 결과를 컨텍스트에 추가하기 전 검증 단계 삽입.

상세: 01 오염


실패모드 2 — 컨텍스트 산만 (Context Distraction)

정의(Breunig, 2025-06-22):

“Context Distraction is when a context grows so long that the model over-focuses on the context, neglecting what it learned during training.”

메커니즘: 히스토리가 지나치게 길어지면 모델은 학습으로 익힌 추론 능력보다 컨텍스트에 쌓인 반복 패턴을 따라가기 시작한다. 새로운 계획을 세우는 대신 과거 행동을 그대로 복제하는 셈이다.

증거: Gemini 2.5 Technical Report(Google DeepMind, arXiv:2507.06261):

“as the context grew significantly beyond 100k tokens, the agent showed a tendency toward favoring repeating actions from its vast history rather than synthesizing novel plans.”

대응 전략: Compaction(주기적 압축·요약) — 히스토리를 고밀도 요약으로 교체.

상세: 02 산만


실패모드 3 — 컨텍스트 혼란 (Context Confusion)

정의(Breunig, 2025-06-22):

“Context Confusion is when superfluous content in the context is used by the model to generate a low-quality response.”

메커니즘: 관련 없는 도구 정의, 불필요한 문서 청크, 과다한 RAG 결과가 모델을 엉뚱한 방향으로 끌고 간다. “넣어 두기만 하면 영향이 없다”는 가정이 틀린 것이다.

증거:

  • Berkeley Function-Calling Leaderboard(BFCL): 도구 수가 늘면 모든 모델의 성능이 떨어지고, 무관한 도구를 호출하는 일이 생긴다.
  • Less is More: Optimizing Function Calling for LLM Execution on Edge Devices(arXiv:2411.15399): 도구 수를 줄이면(46개→19개) 동일 작업의 성공률이 올라간다.

대응 전략: Tool Pruning(최소 필요 도구만 제공) + RAG 기반 도구 선택(정확도 3배 향상).

상세: 03 혼란


실패모드 4 — 컨텍스트 충돌 (Context Clash)

정의(Breunig, 2025-06-22):

“Context Clash is when you accrue new information and tools in your context that conflicts with other information in the context.”

메커니즘: 멀티턴 대화에서 초기에 잘못 나온 응답이 컨텍스트에 그대로 남으면, 뒤늦게 올바른 정보가 들어와도 모순이 해소되지 않는다. LLM은 이 충돌을 정리하지 못한 채 길을 잃는다.

증거: LLMs Get Lost in Multi-Turn Conversation(Philippe Laban, Hiroaki Hayashi, Yingbo Zhou, Jennifer Neville; Microsoft Research & Salesforce Research, arXiv:2505.06120, 2025-05-09)는 프롬프트를 여러 라운드로 샤딩(sharding)했을 때 성능이 평균 39% 떨어졌다고 보고한다.

“when LLMs take a wrong turn in a conversation, they get lost and do not recover.”

대응 전략: Context Isolation(서브에이전트 격리) — 모순 발생 가능 영역을 격리된 컨텍스트로 분리.

상세: 04 충돌


실패모드 5 (확장) — 컨텍스트 부패 (Context Rot)

정의: 컨텍스트 크기가 커질수록 나타나는 전반적이면서도 균일하지 않은 성능 저하다. 앞의 네 가지 실패모드 밑에 깔린 구조적 문제이기도 하다. 개별 실패모드가 “표면 증상”이라면 Context Rot은 그 모두에 공통으로 작용하는 “물리 법칙”에 가깝다.

증거: Chroma Research(Kelly Hong, Anton Troynikov, Jeff Huber, 2025-07-14)는 다음을 관찰했다.

  • 18개 LLM 전부에서 입력 길이가 늘수록 F1이 단조 감소한다.
  • 1M 토큰 모델조차 약 300K~400K 구간에서 뚜렷한 저하를 보인다.
  • 논리적으로 일관된 haystack보다 스크램블된 haystack에서 오히려 더 나은 성능이 나온다.

대응 전략: Just-in-Time Loading(선택적 적시 로딩) + 전반적 토큰 예산 관리.

상세: 05 부패


실패모드 간 상호작용

5대 실패모드는 서로 독립적이지 않다. 오히려 한쪽이 다른 쪽을 키운다.

graph LR
    ROT[Context Rot<br/>기저 구조]

    ROT --> P[오염 Poisoning<br/>환각 고정·증폭]
    ROT --> D[산만 Distraction<br/>히스토리 과부하]
    ROT --> C[혼란 Confusion<br/>불필요 컨텍스트 영향]
    ROT --> CL[충돌 Clash<br/>모순 정보 공존]

    P --> D
    C --> CL

    P --> FP[Verification Layer]
    D --> FD[Compaction·요약]
    C --> FC[Tool Pruning·RAG 선택]
    CL --> FCL[Context Isolation]
    ROT --> FR[JIT Loading·예산 관리]

    style ROT fill:#cc66ff,color:#fff
    style P fill:#ff6666
    style D fill:#ff9933
    style C fill:#ffcc00,color:#333
    style CL fill:#ff6699
    style FP fill:#4477aa,color:#fff
    style FD fill:#44aa77,color:#fff
    style FC fill:#4477aa,color:#fff
    style FCL fill:#44aa77,color:#fff
    style FR fill:#4477aa,color:#fff

연쇄 관계:

  • 오염 → 산만: 오염된 정보가 히스토리에 쌓이면 히스토리 자체가 길어져 산만으로 번진다.
  • 혼란 → 충돌: 불필요한 도구와 정보가 늘면 그중 일부가 다른 정보와 어긋나면서 충돌이 생긴다.

빠른 진단 체크리스트

에이전트가 이상한 행동을 보일 때 의심 순서:

  • 컨텍스트에 환각이나 오류가 고정된 채 반복 참조되는가? → 오염 (01 오염)
  • 히스토리가 100K 토큰을 넘기며 같은 행동을 되풀이하는가? → 산만 (02 산만)
  • 불필요한 도구·정보가 너무 많아 엉뚱한 호출을 하는가? → 혼란 (03 혼란)
  • 멀티턴에서 모순된 정보가 쌓여 길을 잃고 회복하지 못하는가? → 충돌 (04 충돌)
  • 별다른 이유 없이 입력이 길어질수록 전반적으로 나빠지는가? → 부패 (05 부패)

참고문헌


관련 노트: 00_03-Transformer-어텐션-KV캐시 · 00_04-컨텍스트-로트-Context-Rot · 00_05-에이전트-컨텍스트-누적 · 00_07-4대-전략-Write-Select-Compress-Isolate · 01 오염 · 02 산만 · 03 혼란 · 04 충돌 · 05 부패