개발도구 도구
LLM 대화 기록 압축 도구 fast-jev-compaction
tamaratran/fast-jev-compaction
GitHub이 도구는 대화 기록을 요약하는 대신, LLM의 판단에 따라 불필요한 도구 호출과 결과를 삭제하여 컨텍스트를 압축합니다.
세 줄 요약
- 기존 요약 방식이 중요한 정보(파일 경로, 오류 메시지 등)를 손실하는 것과 달리, 사용자 및 어시스턴트 텍스트는 원본 그대로 보존합니다.
- 긴 대화 세션에서 중요한 코드 조각이나 정확한 오류 기록을 놓치지 않고, 필요한 핵심 정보만을 높은 신뢰도로 유지할 수 있습니다.
- 일반 텍스트 메시지는 삭제되지 않지만, 토큰 크기는 추정치이며, 요청마다 전체 상태를 재전송하여 비용이 발생할 수 있습니다.
이 라이브러리는 기존의 컨텍스트 요약 방식(summary)을 대체하는 Claude Code 플러그인입니다. 일반적인 요약은 파일 경로, 정확한 오류 메시지 등 중요한 정보를 손실할 수 있지만, 이 도구는 사용자 및 어시스턴트 텍스트를 원본 그대로 보존하며 오직 불필요하다고 판단되는 도구 호출과 결과만을 삭제하여 컨텍스트를 압축합니다.
시스템은 전체 대화 상태(state)를 처리하며, 기본 `maxStateTokens` (25k)에 맞춰 내용을 조정합니다. 만약 제한을 초과할 경우, 시스템은 체계적인 축소 과정을 거칩니다. 예를 들어, 도구 입력값은 1000자, 200자, 60자로 순차적으로 자르고, 긴 텍스트는 시작 부분(head)과 끝 부분(tail)만 남기는 방식으로 상태를 최적화합니다.
각 비고정된 도구 호출에 대해 은 두 가지 질문을 받습니다. 첫째, **호출 자체**가 유지되어야 하는지, 둘째, **결과 내용**이 원본 그대로 필요한지 여부입니다. 이 결정은 `keepThreshold` (기본 0.5)를 기준으로 이루어집니다. 또한, 컨텍스트 연속성을 위해 전체 상태는 요청마다 재전송되므로, 질문 배치(batch of questions)가 늘어날수록 토큰 비용이 발생합니다.
용어 풀이
- 토큰
- AI 모델이 글을 처리하는 단위. 단어보다 작은 조각이며 사용량과 요금을 셀 때 기준이 돼요.
- LLM
- 방대한 글을 학습해 문장을 이해하고 만들어 내는 AI 모델. ChatGPT, Claude, Gemini가 여기에 속해요.