데이터

컨텍스트 압축

Context Compression

LLM에 넣을 긴 대화 이력이나 문서에서 지금 필요한 정보만 남기고 나머지는 요약하거나 덜어내는 기법이다. 대화가 계속 길어지는 에이전트나 검색해 온 문서가 너무 긴 RAG에서 비용을 줄이고 답의 정확도를 지키려고 쓴다.

방식하는 일대표 예
요약오래된 대화를 짧은 사실 요약으로 바꾼다ConversationSummaryMemory
골라내기질문과 관련된 문장·문서만 남긴다LangChain Contextual Compression
토큰 줄이기덜 중요한 단어를 지워 프롬프트를 짧게 만든다LLMLingua, Selective Context

길게 넣을수록 비싸고 흐려진다

입력 토큰은 모두 요금으로 잡힌다. 에이전트는 매 턴 이전 대화를 다시 보내므로 대화가 길어질수록 비용이 계속 쌓이고, 결국 컨텍스트 창 한계에 부딪힌다.

정확도도 떨어진다. 긴 입력 속에 묻힌 정보는 모델이 놓치기 쉽다. 관련 없는 내용을 덜어내면 모델이 핵심에 더 잘 집중한다.

한번 요약하면 되돌릴 수 없다

압축은 정보를 버리는 일이다. 요약하다가 파일 경로, 숫자, 에러 메시지 같은 세부가 빠지면 뒤에서 엉뚱한 답이 나온다. 그래서 결정 사항, 제약 조건, 아직 안 끝난 작업처럼 꼭 남길 항목을 요약 지시에 적어 두는 게 좋다.

LLM으로 요약하거나 추출하면 그 호출에도 비용과 시간이 든다. 대화가 짧거나 계약서처럼 원문 그대로 인용해야 하는 작업이면 압축하지 않는 편이 낫다.

RAG·캐싱과는 줄이는 대상이 다르다

기법줄이는 것방식
컨텍스트 압축이미 모은 컨텍스트의 길이내용 자체를 줄인다
RAG처음부터 넣을 문서의 양필요한 문서만 찾아온다
프롬프트 캐싱반복 입력의 처리 비용내용은 그대로 두고 값만 낮춘다

셋은 함께 쓸 수 있다. RAG로 문서를 찾고, 압축으로 다듬고, 매번 똑같이 들어가는 앞부분은 캐싱하면 된다.

상황마다 압축 방법이 다르다

가장 흔히 쓰는 곳은 대화가 길게 이어지는 에이전트다. 직접 만든다면 오래된 대화는 요약하고, 최근 몇 턴과 꼭 지켜야 할 조건은 원문으로 남기는 방식부터 시작하면 된다. 검색 결과가 길면 질문과 관련된 부분만 골라 넣는다.

상황이렇게 압축한다
긴 대화 에이전트초기 대화를 "Python 백엔드 개발자, React 사용, Docker 환경"처럼 요약하고, 최근 몇 턴만 원문으로 둔다
RAG 검색 결과검색된 문서에서 질문과 관련된 문장만 뽑아 넣는다
코딩 에이전트작업이 길어지면 한 일과 남은 일을 요약해 이어 간다 (Claude Code의 /compact)

LangChain에서는 기존 검색기를 ContextualCompressionRetriever로 감싸고, LLM으로 관련 부분만 뽑아내는 압축기를 지정해서 쓴다.

#압축#요약#효율화
참고 자료
← AI Wiki에서 더 보기
updated at 2026-10-20