긴 세션을 이어가다 보면 AI가 슬슬 처음 정한 규칙을 어기기 시작합니다. 착각이 아니었죠. 대화를 압축하는 순간 가장 먼저 떨어져 나가는 게 사용자가 건 제약이라는 측정 결과가 나왔습니다.

펜실베이니아 주립대 연구진이 이 현상을 정면으로 잰 논문을 냈습니다. 컨텍스트 창이 빠듯해지면 LLM 시스템은 앞선 대화를 요약해 자리를 비우는데, 그때 정확히 무엇이 사라지는가. 연구진이 지목한 대상은 사용자가 세션 중에 걸어둔 행동 제약, 이른바 ‘세션 제약’입니다.
출처: Lost in Compaction: Evaluating Side-Constraint Loss under Context Compaction – arXiv
세션 제약이라는 취약한 종류
세션 제약은 과제도 아니고 영구 설정도 아닌, 그 중간에 걸쳐 있는 지시입니다. “내가 확인하기 전에는 메일 지우지 마”, “답변에 내 이름은 쓰지 마” 같은 것들이죠. 이번 세션 동안만 유효한 옆조건입니다.
애매한 위치가 곧 약점이 됩니다. 압축기는 과제 연속성을 지키도록 설계돼 있죠. 목표가 무엇이고, 지금 어디까지 왔고, 다음에 뭘 해야 하는지. 사용자가 옆에서 덧붙인 금지 조항은 그 목록에 없습니다.
그래서 조용히 빠집니다. 규칙이 사라졌다는 사실조차 사용자에게는 통보되지 않은 채로.
17%라는 숫자
연구진은 COMPINT라는 평가 스위트를 만들어 세 가지 긴 컨텍스트 상황에서 압축기들을 시험했습니다. 멀티턴 챗, 에이전트 궤적, 그리고 장기 리서치 과제.
주입한 세션 제약 중 평균 17%만 살아남았습니다. 더 곤란한 건 그다음이죠. 대부분의 압축기가 아예 압축하지 않고 같은 과제를 돌린 경우보다 못한 성적을 냈습니다.
압축하지 않은 온전한 컨텍스트에서 규칙 준수율은 59~71% 사이였습니다. 압축을 거치면 이 수치가 급격히 떨어지죠. 제약을 애초에 주지 않았을 때와 크게 다르지 않은 수준까지 내려앉습니다. 제약을 보존하라고 콕 집어 지시한 압축 프롬프트를 써봐도 잔존율은 40% 아래.
손실 폭은 조건에 따라 크게 흔들렸습니다. 어떤 압축기를 쓰는지, 프롬프트가 어떤지, 컨텍스트가 얼마나 긴지, 제약을 어떤 문장으로 썼는지, 대화의 어느 지점에 넣었는지. 편차가 이렇게 넓다는 건 특정 설정의 실수가 아니라 구조에서 오는 문제라는 뜻입니다.
요약문 뒤에 목록 하나 붙이기
해법은 의외로 가볍습니다. 압축기를 고치는 대신, 옆에 작은 모듈을 하나 세워두는 방식.
Qwen3.5-9B 기반의 추출기가 사용자 입력을 매번 읽습니다. 세션 제약처럼 보이는 문장을 감지하면 따로 목록에 모아두죠. 나중에 컨텍스트가 요약될 때, 그 목록을 요약문 뒤에 그대로 붙입니다.
이것만으로 세 시나리오 전부에서 잔존율이 90%를 넘겼습니다. 에이전트 궤적 95.6%, 장기 리서치 95.1%, 멀티턴 챗 90.3%. 추가 학습도 필요 없고, 기존 압축기나 모델을 건드릴 필요도 없다는 게 이 접근의 요점입니다.
평가 스위트와 구현은 GitHub에 공개돼 있습니다.
요약이 지키도록 설계된 것
압축은 “이 대화가 무엇에 관한 것인가”를 보존하도록 만들어졌습니다. “사용자가 무엇을 금지했는가”를 보존하도록 만들어진 게 아니죠. 이 차이가 실제 사용에서는 품질 문제가 아니라 권한 문제로 튀어나옵니다.
승인 없이 도구를 호출하거나, 감춰두라고 한 정보를 흘리거나, 요구한 확인 단계를 건너뛰는 식이죠. 에이전트가 실제로 행동을 하는 환경일수록 대가가 커집니다.
여기서 개인이 가져갈 만한 판단은 하나입니다. 세션 중에 말로 건 규칙과, 설정이나 파일에 박아둔 규칙은 수명이 다르다는 것. 정말 지켜져야 하는 조건이라면 대화 안에만 두지 않는 편이 안전하죠.
참고자료:
- AI systems quietly drop user instructions when they compress context – THE DECODER
- COMPINT 평가 스위트 및 추출기 구현 – GitHub

답글 남기기