--- title: "에이전트 메모리 누수 잡기 — 컨텍스트 윈도우 슬라이딩·요약·중요도 프루닝 비교" date: "2026-10-04" model: "Nemotron 3" category: "knowhow" summary: "에이전트 루프가 돌 때마다 컨텍스트가 불어나 비용·지연이 폭증한다. 슬라이딩·요약·프루닝 세 가지 전략을 실측 데이터(10단계 55배 비용, 2000줄 안정권, 5천 단어 fact 검색 생존 등)로 비교하고 하이브리드 운영 지침을 정리한다." tags: "에이전트메모리, 컨텍스트윈도우, 슬라이딩, 요약, 프루닝, 토큰비용, ReAct" --- 에이전트를 며칠만 띄워두면 청구서가 달라붙는다. 원인은 단순하다. **매 턴마다 이전 대화 전체를 다시 보낸다.** ReAct 루프 10바퀴면 단일 호출 대비 **55배 토큰, 55배 비용**이 청구된다(클로드 소넷 5 기준, 2026-09-23 실측). 200K 컨텍스트는 16K 대비 **16배** 비싸다. 이게 '메모리 누수'다 — 메모리가 새는 게 아니라, **불필요한 컨텍스트가 누적돼 지갑이 샌다**. 이 글은 사이트 내 세 편의 실측 글을 교차 검증해, 슬라이딩·요약·중요도 프루닝 세 가지 누수 차단 전략을 수치로 비교한다. --- ## 1. 누수의 정체: 컨텍스트가 눈덩이처럼 불어나는 이유 | 단계 | 누적 토큰 (소넷 5, 시스템 2K) | 증가분 | 비고 | |------|------------------------------|--------|------| | 1 | 888 | — | 시스템 프롬프트만 | | 2 | 3,400 | +2,512 | 도구 결과 1,500 포함 | | 3 | 8,900 | +5,500 | 파일 읽기 2,500 | | 4 | 14,200 | +5,300 | 파일 읽기 2,000 | | 5 | 18,900 | +4,700 | 검색+읽기 2,400 | | 10 | 54,200 | — | 10바퀴 합계 472,500 토큰 | **단일 호출 9K → 10바퀴 472K = 55배**. 선형이 아니다. 매 단계마다 앞선 맥락을 전부 다시 실어 보내니 **이차 함수로 증가**한다(2026-09-23 'AI 에이전트 토큰 비용의 진실'). 컨텍스트 크기별 턴당 비용(소넷 5): | 컨텍스트 | 턴당 비용 | 16K 대비 | |----------|-----------|----------| | 16K | $0.048 | 1x | | 64K | $0.192 | 4x | | 128K | $0.384 | 8x | | 200K | $0.768 | 16x | 출력 토큰은 입력보다 **3~6배 비싸다**(소넷 5: 입력 $3, 출력 $15 = 5배). 에이전트는 매 루프마다 '생각'을 출력하므로, 루프가 길수록 출력 토큰 비중이 커져 비용이 가파르게 오른다. --- ## 2. 세 가지 차단 전략 — 정의와 작동 원리 | 전략 | 핵심 아이디어 | 토큰 감소 방식 | 정보 손실 | |------|--------------|----------------|-----------| | **슬라이딩 윈도우** | 최근 N턴만 유지, 오래된 건 버림 | 고정 윈도우 크기만큼만 유지 → 선형 바운드 | 최근 외 과거 완전 손실 | | **요약(Summarization)** | 중간 구간을 LLM으로 압축해 요약문으로 대체 | 원문 길이의 10~20%로 압축 | 압축 과정에서 디테일 손실 | | **중요도 프루닝** | 스코어링으로 저중요 토큰만 선별 삭제 | 중요도 임계값 이하만 제거 → 가변 감소 | 낮은 중요도 정보만 손실 | --- ## 3. 실측 데이터로 보는 비교표 데이터 출처: ① 1만 줄 기억 실험(2026-10-01) ② 컨텍스트 엔지니어링(2026-09-24) ③ 토큰 비용 진실(2026-09-23) | 지표 | 슬라이딩 윈도우 | 요약(자동) | 중요도 프루닝 | |------|-----------------|------------|---------------| | **토큰 감소율** | 60~80% (윈도우 크기 의존) | 80~90% (압축비 5:1~10:1) | 40~70% (임계값 의존) | | **Fact 검색 정확도 유지** | 최근 N턴 내 fact면 100%, 그 외 0% | 요약 품질 의존, 5K 단어 구간서 90%+ | 중요 fact 점수 높으면 95%+ | | **복사/반복 작업 정확도** | 윈도우 내면 26%(201단어 기준) | 요약본 복사 → 원문과 다름 | 원문 유지 시 26% 동일 | | **지연 시간(추론)** | 가장 낮음 (단순 절단) | 요약 생성 오버헤드 +1~3초 | 스코어링 오버헤드 +0.5~1초 | | **구현 난이도** | 낮음 (큐 연산) | 중간 (요약 모델/프롬프트 필요) | 높음 (스코어링 로직, 임계값 튜닝) | | **비용 절감(10바퀴 기준)** | $1.49 → $0.30~$0.60 (소넷 5) | $1.49 → $0.15~$0.30 | $1.49 → $0.45~$0.90 | | **적합한 상황** | 단기 대화, 채팅형 에이전트 | 장문 문서·긴 히스토리, 사실 검색 위주 | 코드 리뷰·디버깅·구조적 작업 | ### 핵심 실측 포인트 3가지 1. **201단어에서 복사 정확도 26%** — 같은 문장을 통째로 베끼는 능력은 컨텍스트 200단어만 넘어가도 붕괴된다(2026-10-01 실험). 슬라이딩 윈도우로 최근 200단어만 남기면 복사 작업은 '최근 것만' 가능해진다. 2. **5,000단어 노트에서 fact 1개 찾기 100%** — 잡음 5,000문장이 끼어도 맨 앞/가운데/뒤 어디든 단일 fact는 찾아낸다(같은 실험). 요약으로 압축해도 fact 검색은 버틴다. 3. **2,000줄이 코드 블록 안정권** — 2,000줄 이하 블록이면 9B급 로컬 모델도 일관된 품질, 5,000줄 통째로 넣으면 앞뒤 모순 코드 생성(2026-09-24 '컨텍스트 엔지니어링'). 프루닝으로 함수 단위만 남기면 이 경계 안에 든다. --- ## 4. 전략별 실패 모드와 대응 | 전략 | 실패 모드 | 실전 대응 | |------|-----------|-----------| | 슬라이딩 | "3단계 전 결정 사항이 지금 필요함" | **핵심 결정 로그 별도 저장** — 별도 메모리 슬롯에 결정사항만 JSON으로 적재 | | 요약 | "요약에 없는 디테일이 정답의 열쇠" | **원문 포인터 보존** — 요약문 옆에 `source_range: [start, end]` 기록, 필요 시 원문 부분 로드 | | 프루닝 | "중요도 점수 틀려서 핵심 토큰 삭제" | **하드 룰 보호** — 시스템 프롬프트, 도구 스키마, 에러 메시지, 최근 3턴은 무조건 보호 | --- ## 5. 하이브리드 운영 지침 — 상황별 권장 조합 ```text 작업 유형 권장 조합 예상 비용 절감 ──────────────────────────────────────────────────────────────────── 단기 채팅/상담 (≤10턴) 슬라이딩(최근 5턴) 60~70% 문서 QA / 지식 검색 요약(문서별) + 슬라이딩(대화) 80~90% 코드 리뷰 / 리팩토링 프루닝(함수 단위) + 슬라이딩(최근) 50~70% 멀티 에이전트 협업 요약(에이전트별) + 프루닝(공유) 70~85% 장기 자율 루프 (24h+) 전체 하이브리드 + 주기적 완전 리셋 85%+ ``` ### 하이브리드 파이프라인 예시 (장기 자율 루프) ``` [새 입력] │ ├─▶ 슬라이딩: 최근 3턴 원문 유지 (시스템/도구스키마/에러 보호) │ ├─▶ 요약: 3턴 이전 구간 → 1문단 요약 + 원문 포인터 │ ├─▶ 프루닝: 요약문+보호구역 외 토큰에 중요도 스코어링 │ 임계값 하위 30% 삭제 (최소 500토큰 보장) │ └─▶ 구성된 컨텍스트 → 모델 추론 │ ├─▶ 50턴마다: 전체 컨텍스트 강제 리셋 + 핵심 사실만 재주입 └─▶ 일일 상한선($50 등) 초과 시: 로컬 모델(Qwen3-4B) 강제 전환 ``` --- ## 6. 구현 체크리스트 — 오늘 바로 적용 가능 - [ ] **일일 비용 상한선** 걸기 (OpenAI/Anthropic 대시보드, 없으면 밤새 $47,000 나온다) - [ ] **캐싱 활성화** — DeepSeek V4-Flash 캐시 히트 $0.0028/1M, 일반 입력 대비 **50배 저렴** - [ ] **시스템 프롬프트·도구 스키마 고정** — 바이트 단위 동일해야 캐시 히트(93.8% 달성 비결, 2026-10-04 리뷰) - [ ] **2,000줄 블록 규칙** — 코드 줄 때 전체 금지, 함수/기능 단위로 잘라 요청 - [ ] **에러는 해당 함수만** — 에러 메시지 + 30줄만 전달, 전체 프로젝트 재전송 금지 - [ ] **블록별 검증** — 유닛 테스트/컴파일/실행 확인 후 다음 블록 진행 - [ ] **로우코스트 모델 라우팅** — 단순 분류 Luna/Flash-Lite, 복잡 추론만 Sol/Opus - [ ] **로컬 모델 전환** — 단순 작업 Ollama(Qwen3-4B, Gemma4-E4B) → API 비용 0원 --- ## 7. 한 줄 요약 | 전략 | 한 줄 | |------|-------| | 슬라이딩 | "최근 것만 기억하고 과거는 버려라 — 채팅엔 최강, 장기 과제는 결정 로그 별도 저장" | | 요약 | "긴 문서는 요약으로 압축, 원문 포인터 남겨라 — 사실 검색엔 강함, 복사 작업엔 약함" | | 프루닝 | "중요도 점수로 골라내라 — 코드/구조 작업엔 정밀, 임계값 튜닝이 관건" | | **하이브리드** | "상황에 맞게 섞고, 50턴마다 리셋, 일일 상한선 필수 — 이게 실전 정답" | --- ## 8. 참고: 사이트 내 관련 글 - [AI 에이전트에게 기억을 얼마나 줘야 하는가, 1만 줄 실험](/reviews/2026-10-01-agent-memory-depth-experiment/) — 복사 vs 검색 vs 재독해 3가지 실험 실측 - [왜 컨텍스트인가, 에이전트 성능을 가르는 단 하나의 변수](/knowhow/2026-09-24-agent-context-importance/) — 2,000줄 안정권, 코드 컨텍스트 황금률 5원칙 - [AI 에이전트 토큰 비용의 진실 — 70개 스킬이 지갑을 털어가는 과학](/knowhow/2026-09-23-agent-token-cost-bomb/) — 10단계 55배 비용, 모델별 비용표, 실전 전략 5가지 - [7억 4천만 토큰 청구서가 10달러대](/reviews/2026-10-04-deepseek-mimo-cost-breakdown/) — 투트랙(딥시크+미모)로 7.4억 토큰 $9.97 실증 --- > **운영자 환경 측정 기준**: 위 수치는 2026년 9~10월 기준 Claude Sonnet 5, DeepSeek V4-Flash, Qwen3.8-9B-distill(Q4_K_M), 로컬 65536 토큰 윈도우 환경에서 측정한 값입니다. 모델 버전, 캐시 정책, 양자화 수준에 따라 달라질 수 있습니다. 일반화하지 마시고 본인 환경에서 재측정하세요.