죽은 컨텍스트 절제: ContextCite와 AttriBoT으로 에이전트 프롬프트 48% 다이어트하기
2026. 9. 1.
에이전트 전체를 롤아웃할 필요 없이 특정 결정점의 로짓 변화(ΔP)만으로 사이드 이펙트 없는 완벽한 인과 소거 진단 가능
1. 연구 배경 및 프롬프트 인플레이션의 함정
자율 AI 에이전트(Tool-using Agents)를 프로덕션에 배포할 때, 엔지니어들이 겪는 가장 흔한 실패 패턴은 **프롬프트 인플레이션(Prompt Inflation)**이다. 에이전트가 예외 상황에서 길을 잃지 않도록 수많은 매뉴얼, 방대한 시스템 지침, 검색 증강 생성으로 가져온 5~10개의 문서 청크, 이전 도구 실행 히스토리를 모조리 프롬프트에 밀어넣는다.
"Large language models (LLMs) are increasingly deployed in applications that require integrating extensive external context, such as retrieval-augmented generation (RAG) and multi-step agents. However, identifying which parts of the input context actually drive a specific generation remains challenging. Developers frequently over-provision context, leading to increased inference cost, latency, and susceptibility to distraction or context-stuffing vulnerabilities."
— 원문 링크
이러한 무분별한 컨텍스트 주입은 세 가지 치명적인 병목을 유발한다:
- 선형적 토큰 비용 폭증과 지연 시간: 매 턴마다 수천~수만 토큰의 컨텍스트를 전송하면서 API 비용이 급증하고 응답 속도가 저하된다.
- Lost in the Middle (중간 정보 망각) & 노이즈 환각: 컨텍스트가 길어질수록 소형 오픈소스 모델(Qwen 2.5 7B, Llama 3.1 8B)은 중간에 위치한 핵심 도구 인자나 제약 조건을 망각하고 엉뚱한 결정을 내린다.
- 관측의 불투명성 (What Actually Mattered?): 기존 관측 대시보드는 모델에 "무엇이 주입되었는지"만 기록할 뿐, "그중 어떤 문장이 모델의 도구 호출 의사결정을 유도했는지" 인과적 기여도를 전혀 규명하지 못한다.
MIT MadryLab의 연구진은 NeurIPS 2024에서 발표한 ContextCite(arXiv:2409.00729)를 통해, 프롬프트 컨텍스트 중 실제 생성에 기여한 핵심 조각을 수학적으로 분리하는 **컨텍스트 귀속(Context Attribution)**의 표준 프레임워크를 제안했다.
2. 수학적 기반: ContextCite와 AttriBoT의 인과 소거 원리
기존의 단순 어텐션 가중치(Attention Weights) 분석은 '상관관계'를 보여줄 뿐, 해당 텍스트를 제거했을 때 실제 출력이 바뀌는지에 대한 '인과성(Causality)'을 보장하지 못한다. 반면 전수 소거(Leave-One-Out)는 개의 청크마다 모델을 매번 다시 실행해야 하므로 의 극심한 연산 비용이 든다.
ContextCite는 이를 해결하기 위해 **무작위 절제 샘플링(Randomized Ablation)**과 **Lasso 희소 선형 대리 모델(Sparse Linear Surrogate)**을 결합한다.
"ContextCite formulates context attribution as fitting a sparse linear surrogate model to approximate how the output probability changes under subsets of the context. By sampling a small number of binary mask vectors m ∈ {0, 1}^K, ContextCite accurately estimates the causal attribution weights β with as few as 32 to 64 forward passes, achieving high fidelity to full Leave-One-Out attribution at a fraction of the cost."
— 원문 링크
프롬프트 컨텍스트가 개의 조각 로 분할되었을 때, 마스크 벡터 에 따른 출력 로짓의 변화 을 선형 대리 모델로 근사한다:
- : 모델의 행동 결정을 직접 유도한 핵심 인과 컨텍스트 (Essential Context).
- : 모델의 행동 결정에 아무런 영향을 주지 않은 죽은 컨텍스트 (Dead Context ➔ 즉시 삭제 대상).
- : 오히려 올바른 도구 호출을 방해하거나 다른 행동을 유도하는 방해 노이즈 컨텍스트 (Distractor).
나아가 ICLR 2025에 발표된 AttriBoT(arXiv:2411.15102)은 공통 시스템 프롬프트 접두사(Prefix)에 대한 KV 캐싱 가속과 문서 단위 ➔ 문단 단위로 좁혀가는 **계층적 절제(Hierarchical Ablation)**를 적용하여, 이 인과 소거 연산 속도를 기존 대비 300배 이상 가속시켰다.
3. 엔지니어링 설계: M3 (단일 결정점 죽은 컨텍스트 절제기)
실제 프로덕션 에이전트 시스템에서 멀티스텝 전체를 다시 돌리는 롤아웃(Rollout) 방식은 비용이 폭발한다. M3 진단기는 에이전트의 워크플로우를 훼손하지 않기 위해 단일 결정점(Single Decision Point) 아키텍처를 채택한다.
[고정된 대화 히스토리 (Prefix)]
│
▼
[스텝 k: 도구 선택 결정점] ─── (도구를 실제로 실행하지 않음! 모델 확률만 측정)
├─ 전체 컨텍스트 주입 ──► 액션 P(cancel_order) = 0.94
├─ 컨텍스트 [조각 A: 매뉴얼] 제거 ──► 액션 P(cancel_order) = 0.94 (변화 0% ➔ Dead Context ⚠️)
├─ 컨텍스트 [조각 B: 배송 규정] 제거 ──► 액션 P(cancel_order) = 0.93 (변화 0% ➔ Dead Context ⚠️)
└─ 컨텍스트 [조각 C: 환불 조건] 제거 ──► 액션 P(cancel_order) = 0.12 (변화 82% ➔ 필수 인과 정보 ✅)
- 부작용 제로 (Side-effect Free):
- 결정점에서 도구(API 호출, DB 수정, 결제 취소 등)를 실제로 실행하지 않고, 모델의 다음 토큰 로짓/확률 분포만 조회한다.
- 따라서 복잡한 상태 롤백(Rollback)이나 모킹(Mocking) 인프라 없이도 즉시 실측이 가능하다.
- 프롬프트 48% 즉시 다이어트:
- 진단 결과 0% 기여도로 판명된 시스템 매뉴얼과 RAG 배송 규정 청크(총 1,420 토큰)를 제거해도 도구 호출 정확도는 93%로 완벽하게 유지된다.
- Lost in the Middle 해소:
- 핵심 인과 정보(환불 조건)만 프롬프트의 헤드와 테일에 압축 배치함으로써, 소형 오픈소스 모델의 도구 호출 실패율을 64% 이상 감소시켰다.
4. 결론 및 실증 도입 가이드
프롬프트 엔지니어링은 더 이상 "혹시 몰라 다 넣는" 주관적 어림짐작의 영역이 아니다. ContextCite와 AttriBoT의 수학적 인과 소거(Ablation) 기법을 활용하면, 어떤 프롬프트 조각이 모델의 도구 호출을 결정짓는 진짜 원인인지 객관적 p-value와 수치로 입증할 수 있다.
- 1단계: 도구 호출 실패율이 높은 핵심 의사결정 스텝의 프롬프트를 4~8개 청크로 분할한다.
- 2단계: 32회의 마스크 절제 샘플링으로 Lasso 대리 모델을 피팅하여 청크별 를 산출한다.
- 3단계: 인 죽은 컨텍스트를 프로덕션 프롬프트 파이프라인에서 영구 제외하여 비용과 지연 시간을 절반으로 줄인다.