상위: 01_00_MOC
오염의 자기강화(Self-reinforcing) 메커니즘 — 왜 되돌리기 어려운가
한 줄 정의
컨텍스트 오염은 한 번 기록되면 스스로 강도를 높이는 피드백 루프를 형성한다. LLM이 컨텍스트 안 정보의 출처(provenance)를 추적하지 않고 반복과 위치만으로 신뢰도를 가늠하는 탓에, 오염된 정보는 요약과 재추론, 재기록을 반복하면서 점점 “확인된 사실”로 굳는다. Gemini 기술보고서는 이를 “very long time to undo”라 표현했고, Lam et al. (2026)은 입력 주입에서 메모리 통합을 거쳐 메모리 검색에 이르는 세 인터페이스를 가로지르는 복합 실패 루프(compounding failure loop)로 정의했다.
1. 왜 중요한가 — 오류와 오염은 다르다
보통의 LLM 오류, 곧 환각이나 잘못된 추론은 일시적이다. 세션이 끝나거나 새로운 추론이 교정하면 사라진다. 반면 컨텍스트 오염(context poisoning)은 동역학이 다르다.
오염이 보통의 오류와 갈라지는 지점은 오류가 그대로 기록되어 남는다(persist)는 데 있다.
“Context Poisoning is when a hallucination or other error makes it into the context, where it is repeatedly referenced.” — Breunig (2025)
오염된 정보가 일단 컨텍스트, 특히 goals(목표 목록)나 summary(요약), memory(메모리), knowledge base(지식 베이스)에 기록되고 나면, 이후의 모든 추론이 그것을 신뢰할 만한 선례로 참조한다. 다음 추론은 그 선례를 근거로 새로운 추론을 만들어 내고, 그 결과가 다시 기록된다. 전형적인 스노우볼 효과(snowball effect)다.
Breunig은 Gemini 2.5 기술보고서(Google DeepMind, 2025)를 인용해 이 동역학을 구체화했다.
“Context poisoning… where many parts of the context (goals, summary) are ‘poisoned’ with misinformation about the game state, which can often take a very long time to undo. As a result, the model can become fixated on achieving impossible or irrelevant goals.” — Gemini 2.5 Technical Report (2025), Breunig 경유
“되돌리기에 매우 오랜 시간이 걸릴 수 있다(can often take a very long time to undo)“는 표현은 그저 부풀린 말이 아니다. 이 문서 전체가 풀어내려는 메커니즘의 핵심을 짧은 한 구절로 압축한 셈이다.
2. 구조적 원인 1 — LLM은 출처(Provenance)를 추적하지 않는다
자기강화 루프가 작동하는 가장 밑바닥 이유는 LLM이 컨텍스트를 처리하면서 각 토큰의 출처를 추적하지 않는다는 구조적 사실이다.
현재의 LLM 아키텍처는 컨텍스트 창 안의 모든 토큰을 똑같은 입력으로 다룬다. 어텐션 메커니즘(attention mechanism)은 토큰들 사이의 관계를 학습하지만, 다음을 구별하지는 못한다.
- 어떤 정보가 외부 도구(tool) 호출 결과인지
- 어떤 정보가 에이전트 자신의 추론 출력인지
- 어떤 정보가 신뢰할 수 없는 외부 문서에서 온 것인지
- 어떤 정보가 이미 오염된 요약으로부터 파생된 것인지
이 provenance(출처 추적)의 부재는 두 가지 치명적 결과를 낳는다.
결과 1, 탐지가 불가능하다. 오염된 정보는 멀쩡한 정보와 구분되지 않는다. 모델이 스스로 “이 정보는 믿을 수 없다”고 판단할 근거가 없는 것이다.
결과 2, 반복이 신뢰도를 끌어올린다. 어텐션 가중치는 반복 빈도와 위치에 민감하다. 오염된 정보가 요약을 타고 거듭 등장할수록 모델은 그것을 점점 더 단단한 “사실”로 취급한다. 자기강화(self-reinforcing)의 물리적 실체가 바로 여기 있다.
graph TD A["오염 발생<br/>(환각/주입)"] --> B["컨텍스트 기록<br/>(goals / summary / memory)"] B --> C["다음 추론 사이클<br/>→ 오염 정보를 근거로 참조"] C --> D["새 추론 생성<br/>(오염 증폭)"] D --> E["재요약 / 메모리 업데이트"] E --> B E --> F["어텐션 가중치 증가<br/>(반복 참조 효과)"] F --> C style A fill:#ff6b6b,color:#fff style B fill:#ffa94d,color:#fff style C fill:#ffd43b,color:#333 style D fill:#ff6b6b,color:#fff style E fill:#ffa94d,color:#fff style F fill:#cc5de8,color:#fff
3. 구조적 원인 2 — 반복 참조가 어텐션 가중치를 높인다
어텐션 메커니즘의 동작 방식을 좀 더 깊이 들여다보면 자기강화 루프의 물리적 정체가 한결 선명해진다.
반복(frequency) 효과. 같거나 의미상 비슷한 내용이 컨텍스트 안에서 여러 번 등장하면 그 표현들 사이의 어텐션 스코어가 서로를 강화한다. 원본이 들어 있는 컨텍스트에 요약이 추가되면, 요약된 내용은 컨텍스트 안에 두 번 존재하는 것과 비슷한 효과를 낸다.
위치(position) 효과. 최근 연구들은 LLM이 컨텍스트 창의 앞쪽(시스템 프롬프트)과 끝쪽(가장 최근 발화)에 더 강한 어텐션을 두는 경향, 이른바 “lost in the middle” 현상을 보고한다. 오염된 요약이 rolling summary 방식으로 컨텍스트 앞부분을 계속 차지하면 이 위치 효과까지 얹힌다.
결합 효과. 오염된 정보가 요약과 재등장, 재요약을 거듭할수록 반복 빈도와 위치 우선도가 함께 올라간다. Gemini 보고서의 “very long time to undo”가 가리키는 바가 이것이다. 오염이 진행될수록 그것을 밀어내는 데 필요한 반대 증거의 양도 기하급수적으로 불어난다.
4. 4단계 자기강화 루프 — 상세 분해
다음은 오염 발생 후 자기강화가 진행되는 표준 경로다.
sequenceDiagram participant CTX as 컨텍스트 participant LLM as LLM 추론 participant SUM as 요약(Summary) participant MEM as 메모리/Goals Note over CTX,MEM: 오염 발생 (예: 환각된 목표가 goals에 기록됨) CTX->>LLM: 1단계: 오염된 정보 포함 컨텍스트 제공 LLM->>LLM: 오염 정보를 "사실"로 취급, 근거로 사용 LLM->>SUM: 2단계: 새 요약 생성 (오염 정보 포함) SUM->>MEM: 3단계: 요약이 메모리/goals 업데이트에 반영 MEM->>CTX: 4단계: 업데이트된 메모리가 다음 컨텍스트 구성 Note over CTX,MEM: 오염 강도 증가 → 루프 반복
1단계, 오염 정보가 담긴 컨텍스트 제공. 에이전트는 이전 요약과 목표 목록이 포함된 컨텍스트를 받는다. 이 시점에 이미 오염된 정보가 “과거에 확인된 사실”처럼 자리 잡고 있다.
2단계, 오염 정보를 근거로 한 추론과 새 요약 생성. LLM은 오염된 정보를 바탕으로 새 추론을 만들고 이를 포함한 요약을 작성한다. 요약은 본질적으로 압축(compression)이므로 원본 맥락, 곧 오류가 어떻게 생겼고 어떤 불확실성이 있었는지는 사라지고 결론만 남는다.
3단계, 요약이 메모리와 goals 업데이트에 반영. 요약이 에이전트의 장기 기억이나 목표 목록에 기록된다. 이 순간부터 오염된 정보는 시스템의 공식 상태(official state)가 된다.
4단계, 업데이트된 메모리가 다음 컨텍스트를 구성. 다음 추론 사이클이 이 갱신된 메모리에서 출발한다. 오염 강도는 단계를 거칠 때마다 올라간다.
Lam et al. (2026)은 이 루프를 “compounding failure loop across three critical interfaces”로 정식화했다.
“Unlike static RAG systems, where errors are isolated to a single retrieval step, errors in evolving memory systems are cumulative and persistent.” — Lam et al., SSGM Framework (arXiv:2603.11768, 2026)
5. SSGM 프레임워크의 3개 인터페이스 복합 실패 루프
Lam et al. (2026)의 SSGM(Stability and Safety Governed Memory) 프레임워크는 자기강화 루프의 구조를 에이전트 메모리 시스템의 세 가지 핵심 접점(interface)으로 매핑한다.
“This creates a compounding failure loop across three critical interfaces: input ingestion (poisoning), memory consolidation (drift), and memory retrieval (hallucination).” — Lam et al. (2026)
인터페이스 1: 입력 주입(Input Ingestion) — 독소 삽입 단계
오염의 진입점이다. 외부 문서나 도구 호출 결과, 사용자 입력, 혹은 에이전트 자신의 환각이 메모리 시스템으로 흘러드는 순간이다. 이 단계에는 무결성 검증(integrity check)이 없다. 새로 들어온 정보가 기존 지식과 어긋나지 않는지 확인하지 않은 채 통합 대기 큐로 들어간다.
인터페이스 2: 메모리 통합(Memory Consolidation) — 의미론적 편향 발생 단계
요약과 압축, 재인코딩이 일어나는 단계다. SSGM은 이 단계에서 semantic drift(의미론적 편향)가 발생한다고 분석한다.
의미론적 편향의 수학적 정의는 다음과 같다.
“δ(M_T, K_true) = 1 − sim(E(M_T), E(K_true))”
현재 메모리의 임베딩 표현과 정답 참조 레저(ground-truth reference ledger)의 임베딩 사이 거리를 잰다. δ가 1에 가까울수록 메모리가 원래 사실에서 멀리 벗어난 것이다.
구체적인 메커니즘은 논문의 Figure 2가 보여준다.
“Iterative summarization gradually distorts a specific user preference through lossy compression and semantic intensification. For example, an originally mild preference (e.g., ‘I like mild spicy food’) may be progressively rewritten as ‘likes spicy food’ and later ‘loves very spicy food,’ ultimately causing a preference violation.” — Lam et al. (2026)
여기가 핵심이다. 오염은 누가 일부러 악의를 보태지 않아도 반복 요약만으로 진실을 야금야금 비튼다. “약간 매운 음식을 좋아함”이 요약 세 번을 거쳐 “매우 매운 음식을 사랑함”으로 변한다. 이 원리가 에이전트의 목표 목록(goals list)에 적용되면 어떤 일이 벌어지는지는 Gemini 포켓몬 에이전트 사례가 잘 보여준다.
인터페이스 3: 메모리 검색(Memory Retrieval) — 환각 발현 단계
오염된 메모리가 검색되어 추론의 근거로 쓰이는 단계다. RAG 시스템에서는 임베딩 유사도 기반 검색이 오염된 정보에 멀쩡한 정보보다 더 높은 관련성 점수를 매기기도 한다. 컨텍스트에 이미 오염된 정보가 잔뜩 쌓여 있다면 그 오염된 맥락과 의미상 가까운 오염 메모리가 먼저 검색된다. 오염이 오염을 부르는 셈이다.
flowchart LR subgraph "인터페이스 1: Input Ingestion" I1["외부 입력<br/>(문서/도구/환각)"] I2["무결성 검증 없음"] I1 --> I2 end subgraph "인터페이스 2: Memory Consolidation" C1["요약/압축/재인코딩"] C2["Semantic Drift 발생<br/>δ = 1 - sim(E(M), E(K_true))"] C1 --> C2 end subgraph "인터페이스 3: Memory Retrieval" R1["임베딩 유사도 기반 검색"] R2["오염 맥락 → 오염 메모리 우선 검색"] R1 --> R2 end I2 -->|"독소 통합"| C1 C2 -->|"편향된 메모리 저장"| R1 R2 -->|"오염된 근거로 추론"| I1 style I2 fill:#ff6b6b,color:#fff style C2 fill:#ffa94d,color:#fff style R2 fill:#ff6b6b,color:#fff
6. 실증 사례 — Gemini 포켓몬 에이전트
Google DeepMind Gemini 2.5 기술보고서(2025)에 등장하는 포켓몬 Red/Blue 플레이 에이전트 사례는 자기강화 루프의 가장 유명한 실증 사례다.
발생 시나리오. Gemini 에이전트가 포켓몬을 플레이하다 환각을 일으켜, 실제로는 없는 아이템이나 달성 불가능한 목표를 goals list(목표 목록)에 기록한다.
강화 과정. 이 잘못된 목표가 goals list에 들어가는 순간 자기강화 루프가 시작된다. 다음 플레이 사이클에서 에이전트는 그 목표를 “아직 못 이룬 공식 목표”로 취급하고, 모든 전략이 그 불가능한 목표로 수렴한다. 요약을 할 때마다 그 목표가 다시 기록되고 강화된다.
행동 증상. 에이전트가 이른바 “black-out 전략”을 되풀이한다. 파티의 포켓몬을 전부 기절시켜 포켓몬 센터로 강제 이동하는 비합리적 행동이다. 정상이라면 pathfinder 같은 도구로 경로를 찾아야 하지만, 컨텍스트가 오염된 상태에서는 그 도구가 있다는 사실조차 잊어버린다.
관찰 가능성. 트위치(Twitch) 채팅 시청자들이 각자 알아챌 만큼 행동이 반복적이고 이상했다. 오염이 단순한 통계적 잡음이 아니라 체계적이고 눈에 보이는 패턴을 만든다는 뜻이다.
“very long time to undo”의 의미. 오염된 목표를 없애려면 goals list 전체를 갈아 끼우거나, 새 추론 흐름이 수십 사이클 동안 한결같이 그 목표를 “달성 불가”로 재분류해야 한다. 그런데 오염된 목표가 사이클마다 다시 강화되고 있으니, 교정 신호는 오염 신호와의 경쟁에서 밀린다.
7. 다단계 작업에서 오염 시점 역추적이 어려운 이유
에이전트가 도구 호출을 수십에서 수백 번 수행하는 다단계 작업(multi-step task)에서는, 오염이 일어나도 그것이 언제 어디서 시작됐는지 추적하기가 구조적으로 까다롭다.
이유 1, audit trail의 부재.
대부분의 에이전트 프레임워크는 다음을 기록하지 않는다.
- 각 컨텍스트 항목의 생성 시점과 원천 도구
- 어떤 추론이 어떤 이전 기록을 참조했는지
- 요약이 어떤 원본으로부터 생성됐는지
도구 호출이 100번 있었고 오염이 20번째 호출에서 생겼다면, 101번째 추론 시점에서 그것을 짚어내려면 전체 로그를 일일이 거슬러 올라가야 한다.
이유 2, 도구 호출 결과와 에이전트 자신의 추론이 뒤섞인다.
컨텍스트 창 안에는 다음이 구분 없이 뒤섞여 있다.
- 도구 호출 원본 결과(외부 사실)
- 에이전트가 그 결과를 해석한 추론(내부 추론)
- 요약(두 가지를 혼합한 압축물)
- 이전 요약을 근거로 생성된 새 추론
LLM은 이것들을 형식적으로 구분하지 않는다. “이 정보는 믿을 수 없는 외부 소스에서 왔다”는 메타정보를 컨텍스트에 명시적으로 넣고, 또 모델이 그 메타정보를 실제로 처리하지 않는 한 구분은 불가능하다.
이유 3, 오염이 요약에 흡수되면 원본이 사라진다.
요약은 본질적으로 손실 압축(lossy compression)이다. 오염된 주장이 요약에 들어가고 원본 컨텍스트, 곧 도구 호출 전체 로그가 컨텍스트 창에서 빠지면, 오염된 결론만 남고 그것을 의심할 근거였던 원본은 자취를 감춘다.
이 세 이유가 맞물린 결과를 Hannecke(2026)는 간결하게 표현했다.
“Existing defenses (tool contracts, circuit breakers, I/O moderation) fail because they detect malicious actions, not corrupted beliefs.”
현재의 방어 수단들은 행동(action)을 감시할 뿐, 신념(belief)이 오염됐는지는 살피지 않는다. 오염은 믿음의 문제이니, 행동 감시만으로는 잡아낼 수 없다.
8. 의미론적 편향(Semantic Drift)이 탐지를 더 어렵게 만드는 이유
자기강화 루프의 또 다른 얼굴은 오염의 경계가 차츰 흐려진다는 데 있다. 갑작스러운 오류라면 탐지가 쉽다. 그러나 semantic drift는 반복 요약을 통해 진실에서 조금씩, 눈치채기 어려운 속도로 멀어진다.
Lam et al. (2026)의 반복 요약 메커니즘을 다시 보자. “약간 매운 음식을 좋아함”에서 “매운 음식을 좋아함”으로, 다시 “매우 매운 음식을 사랑함”으로 이어지는 왜곡은 단계마다 그럴듯한 요약처럼 보인다. 첫 요약인 “매운 음식을 좋아함”을 보고 “이건 명백히 틀렸다”고 단정하기는 어렵다. 원본과의 미묘한 강도 차이가 쌓이고 쌓여 결국 선호 위반(preference violation)을 빚는다.
에이전트 목표 맥락에서는 이것이 더 위험하다. 원래 “가능하면 간단한 코드를 작성해라”였던 지침이 반복 요약을 거쳐 “항상 최소한의 코드만 작성해라”가 되고, 다시 “테스트와 문서는 생략해라”로까지 변할 수 있다. 요약의 각 단계는 정당해 보이지만 결과는 원래 의도를 통째로 어긴다.
탐지가 어려운 까닭이 여기 있다. 단순히 “오염된 값”을 찾는 게 아니라, 원래 값과의 연속적인 의미론적 거리를 재야 하기 때문이다.
9. Gemini 보고서 “very long time to undo”의 수학적 직관
오염을 되돌리는 데 왜 그토록 오랜 시간이 드는가. 간단한 직관으로 설명할 수 있다.
오염 정보가 컨텍스트 안에서 N번 반복 참조됐다고 하자. 이를 교정하려면 다음이 필요하다.
- 새로운 추론 사이클이 오염 정보를 부정(negate)하는 강력한 반증을 만들어 내야 한다.
- 그 반증이 오염된 기존 항목의 수(N)를 압도할 만큼 거듭 컨텍스트에 나타나야 한다.
- 그런데 오염 루프는 사이클마다 오염 강도를 키우고 있으니, 교정 신호는 갈수록 세지는 오염 강도를 따라잡아야 한다.
결국 교정 비용이 오염 지속 시간에 비례해 늘어나는 구조다. 오염이 10 사이클 진행됐다고 교정이 10배로 끝나는 게 아니다. 그 10 사이클 동안 쌓인 모든 파생 추론까지 함께 교정해야 하므로 실질적으로는 기하급수적이다.
Context Window Reset, 즉 컨텍스트 창 전체를 비우고 다시 시작하는 방식이 오염 대응의 핵심 수단으로 거론되는 이유가 여기 있다. 방어전략·컨텍스트 리셋 참조.
10. 자기강화 루프와 다른 실패 모드의 교차
컨텍스트 오염의 자기강화 루프는 Breunig(2025)이 분류한 다른 실패 모드와 교차하며 복잡도를 높인다. 01 오염 참조.
Context Distraction과의 교차. 오염이 길어질수록 오염된 목표나 가정이 컨텍스트를 점점 더 많이 차지한다. 컨텍스트가 길어지면 모델은 새 계획을 짜기보다 과거 행동을 되풀이하는 쪽으로 기운다(Breunig 2025: “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”). 오염과 산만이 겹치면 에이전트는 과거에 갇힌(stuck-in-the-past) 상태가 된다.
Context Confusion과의 교차. 오염된 정보가 쌓이면 컨텍스트 안에 충돌하는 정보가 늘어난다. 이 혼란이 다시 에이전트의 판단력을 떨어뜨리고, 오염된 정보가 도리어 더 “일관되게 보이는” 정보로 부각되기도 한다. 오염이 스스로를 정당화하는 아이러니다.
11. 현재 방어의 한계와 필요한 새 프리미티브
자기강화 루프에 대응하려고 제안된 방어들은 다음과 같은데, 저마다 한계를 안고 있다.
| 방어 수단 | 핵심 아이디어 | 한계 |
|---|---|---|
| Context Pruning | 긴 컨텍스트를 주기적으로 요약 제거 | 요약 자체가 semantic drift의 원인 |
| Context Window Reset | 오염된 컨텍스트를 완전히 비움 | 오염 시점 파악이 선행되어야 함 |
| SSGM (Lam et al. 2026) | 메모리 진화를 실행에서 분리, 일관성 검증 | 구현 복잡도, 표준화 미완 |
| Dual LLM / CaMeL | 신뢰 경계 기반 데이터 흐름 분리 | 사용자 경험 저하, 에이전트 유연성 제약 |
| 주기적 재초기화 | 에이전트 목표/메모리를 원점에서 재수립 | 정당한 과거 상태도 손실 |
Hannecke(2026)가 내놓은 새로운 방어 프리미티브는 세 가지다.
-
메모리 계약(memory contracts). 에이전트가 무엇을 믿어도 되는지에 대한 명세서다. 무엇이 불변(immutable)이고 무엇이 갱신 가능(mutable)한지, 갱신이 허용되는 조건은 무엇인지를 형식적으로 정의한다.
-
신념 편향 탐지(belief drift detection). 지금의 에이전트 신념과 원래 목표·제약 사이의 의미론적 거리를 잰다. Lam et al.의 δ(M_T, K_true) 지표가 이 방향을 구체화한 예다.
-
컨텍스트 출처 추적(context provenance tracking). 각 메모리 항목에 출처 소스, 주입 타임스탬프, 신뢰 레벨, 검증 상태를 메타데이터로 붙인다. 오염 역추적을 가능하게 하는 audit trail을 구조적으로 내장하는 셈이다.
이 가운데 provenance tracking은 LLM 아키텍처 자체가 받쳐줘야 하는 기능이다. 지금 대부분의 LLM은 토큰 수준의 출처를 추적하지 않으므로, 외부 래퍼(wrapper) 시스템이 그 역할을 대신 맡아야 한다.
핵심 인사이트 요약
-
자기강화 루프의 물리적 실체. 오염된 정보의 반복 참조가 어텐션 가중치를 높이고, 그 정보를 더 단단한 “사실”로 만들고, 더 많은 파생 추론을 낳아 루프를 가속한다.
-
4단계 루프. 오염 기록 → 오염 기반 추론 → 새 요약에 포함 → 메모리 업데이트 → 다음 사이클에서 더 강하게 반복.
-
세 인터페이스(SSGM). 입력 주입(poisoning), 메모리 통합(semantic drift), 메모리 검색(hallucination 재발현)이 연쇄 루프를 이룬다.
-
탐지의 근본 장벽. 출처 추적의 부재다. LLM은 “이 정보가 어디서 왔는가”를 따지지 않는다.
-
복구 비용의 비대칭. 오염은 사이클마다 저절로 강해지지만, 교정은 의도적 개입을 요구하고 그 비용은 오염 지속 시간에 비례해 커진다.
-
현재 방어의 맹점. 기존 방어는 행동(action)을 감시할 뿐 신념(belief)은 살피지 않는다.
관련 노트
- 01 오염 — 챕터 01 MOC: 컨텍스트 오염 전체 개요
- 01_01-정의-분류 — 컨텍스트 오염의 정의와 우발적/적대적 분류
- 01_03-사례-Gemini-포켓몬 — Gemini 포켓몬 에이전트 사례 상세
- 01_04-적대적-오염-AgentPoison — AgentPoison, PoisonedRAG, MemoryGraft 상세
- 01_07-해결전략-컨텍스트-리셋 — 컨텍스트 리셋 및 방어 전략
- 02 산만 — Context Distraction: 오염과 교차하는 실패 모드
- 07 거버넌스 — 메모리 거버넌스 심화
참고문헌
- How Long Contexts Fail (and How to Fix Them) — David Breunig, 2025-06-22, dbreunig.com
- Governing Evolving Memory in LLM Agents: Risks, Mechanisms, and the SSGM Framework — Chingkwun Lam, Jiaxin Li, Lingfei Zhang, Kuo Zhao, 2026, arXiv:2603.11768
- Gemini 2.5 Technical Report — Google DeepMind, 2025, 기술보고서