LLM 에이전트가 KV 캐시를 직접 조작해 재계산 없이 비용을 줄인다

Cache Engineering for Agents

arXiv2610.28577v1

Tianyu Fu2026-10-20

무엇인가

이 논문은 LLM 에이전트가 수백 라운드의 도구 호출과 관찰을 거치며 궤적이 길어질 때 KV 캐시의 저장·읽기 비용이 전체 API 비용의 큰 부분을 차지하고, 궤적이 모델의 최대 컨텍스트를 넘어설 수 있는 문제를 다룬다. 논문은 KV 캐시 읽기가 전체 API 비용의 82.4%를 차지한다고 제시한다. 기존 context engineering은 이력을 자르거나 요약해 캐시를 줄이지만, 궤적 접두부를 바꾸는 순간 이후 캐시 상태가 무효화되어 남은 컨텍스트를 다시 prefill해야 하고, 너무 많이 줄이면 정확도가 떨어진다. 저자들은 이 딜레마를 피하려고 궤적 텍스트는 그대로 두고 활성 KV 캐시만 직접 제어하는 cache engineering을 제안한다.

어떻게 동작하나

cache engineering의 기본 연산은 append, drop, repos다. append는 새 토큰의 KV를 기존 캐시 뒤에 붙이는 표준 동작이다. drop은 선택한 KV 엔트리를 이후 어텐션에서 제외하지만 남은 캐시의 상태와 위치 인코딩, 논리 토큰 시퀀스는 바꾸지 않는다. repos는 남은 키들의 위치 인코딩을 논리 토큰 순서대로 다시 매기고 다음 append의 위치 인덱스를 초기화하며, RoPE에서는 회전 행렬을 이용해 키를 p에서 q로 회전시킨다. 논문은 이 연산들을 cache operation sequence로 형식화한다. 핵심은 캐시 상태가 토큰 접두부만으로 결정되지 않고 drop과 repos의 순서에 따라 달라진다는 history dependence다. 같은 B, C 토큰을 남겨도 A를 언제 drop했는지에 따라 C의 KV가 달라질 수 있어 단순 prefix matching으로는 올바른 재사용이 안 된다.

무엇과 다른가

이를 지원하기 위해 저자들은 AKV 서빙 엔진을 co-design한다. AKV는 기존 API와 호환되는 stateless 인터페이스를 제공하지만 내부적으로는 stateful 캐시 재사용·퇴거·복원을 관리한다. 클라이언트는 messages에 전체 논리 토큰 시퀀스를 넣고, 선택적 cache 필드에 drop과 repos를 operate-after 문법으로 지정한다. 서버는 확장된 radix tree에 drop node를 삽입해 토큰과 연산 이력을 함께 매칭하고, drop-aware eviction으로 다른 요청이 아직 쓰는 캐시를 함부로 지우지 않는다. 복원에는 segment-batch attention을 써서 drop 지점마다 쿼리를 나누고 각 세그먼트가 자신의 토큰과 이전 세그먼트의 활성 캐시에 인과적으로 어텐션하게 한다. FFN은 전체 시퀀스를 한 번에 처리해 세그먼트마다 가중치 읽기를 반복하지 않는다. repos는 키 회전과 임시 KV 버전으로 위치가 다른 캐시를 재사용한다.

어떻게 쓰나

실험은 MiniMax-M2.7, GPT-OSS-120B, MiroThinker-1.7-Mini 세 모델과 BrowseComp-Plus, xbench-DeepSearch-2510, GAIA-Text 103개 검증 과제, SWE-Verified 네 벤치마크에서 진행됐다. 비교 대상은 모델별 96K 또는 192K 임계값으로 요약하는 Standard와 48K 임계값의 Text Engineering이다. AKV에는 최근 12개 도구 응답의 KV를 남기는 tool-response rolling-drop 정책을 적용했고 repos 임계값은 Standard와 맞췄다. 논문은 AKV가 세 모델 평균 성공률을 두 베이스라인 대비 각각 1.3~2.1%포인트, 0.9~8.7%포인트 높였고, 평균 비용은 Standard 대비 27.7%, Text Engineering 대비 21.9% 줄였다고 보고한다. 초록 기준으로는 평균 벤치마크 점수 1.7점 향상과 평균 비용 27.7% 절감이다.

전제와 한계

정확도 개선의 원인도 분석한다. GPT-OSS-120B의 BCP 첫 100개 과제에서 세 방법은 48K 논리 토큰 아래에서는 비슷한 정확도를 보였지만, Text Engineering은 48~96K 구간에서, Standard는 96K 초과 구간에서 가장 낮았다. 각자의 요약 임계값에서 갑자기 컨텍스트를 줄이면서 정보가 손실되는 반면, rolling drop은 오래된 도구 응답 캐시를 점진적으로 제거하기 때문이라고 설명한다. 서빙 효율에서는 최대 처리량 설정에서 AKV가 동시성 14, Standard가 12일 때 평균 요청 지연 1.36배, P95 지연 1.51배 빨라졌고, 입력 처리량 1.53배, 출력 처리량 1.18배를 기록했다. GPT-OSS-120B로 SWE-bench Verified 첫 100개 과제를 온라인 평가했을 때도 AKV가 가장 적은 GPU 시간으로 최종 통과율이 가장 높았다.

추가 실험은 정책 설계의 영향을 보여준다. 도구 응답 drop에 repos를 더하면 BCP 통과율이 55%에서 62%로 올라 위치 한계를 넘어 탐색할 수 있었다. 반면 추론 캐시를 drop하거나 도구 응답과 함께 drop하면 두 벤치마크 모두 통과율이 더 낮았다. MiniMax-M2.7로 20개 BCP 과제에서 정책을 재��적으로 개선한 뒤 100개 held-out 과제에서 평가한 RSI 정책은 3회차와 6회차에서 Standard 대비 과제당 비용을 각각 15.6%, 17.8% 줄였고, 논문은 RSI가 전문가 설계보다 비용을 7.1% 더 줄였다고도 보고한다. 캐시 관리를 도구로 노출해 에이전트가 직접 시점과 대상을 고르게 한 실험에서는 BCP 100개 부분집합에서 GPT-OSS-120B 61.0%, MiniMax-M2.7 64.0% 통과율을 냈다. 이때 GPT-OSS-120B의 과제당 비용은 13.4센트에서 12.1센트로 줄었고, MiniMax-M2.7은 더 많은 턴을 실행해 5.4센트에서 5.9센트로 늘었다.

개발자에게 이 논문은 긴 도구 호출 궤적을 다루는 에이전트에서 KV 캐시가 비용과 지연의 주범이 될 때, 이력을 요약해 접두부를 다시 쓰는 대신 오래된 도구 응답 캐시를 drop하고 필요하면 repos로 위치를 재조정하는 접근을 검토할 근거가 된다. 다만 일반적인 prefix caching만으로는 연산 이력이 다른 캐시를 잘못 재사용할 수 있으므로, 서빙 계층이 drop/repos 이력을 추적하고 요청 간 격리와 퇴거·복원을 보장하는지 확인해야 한다. 모델의 RoPE 지원, 캐시 연산 API의 표현력, 동시성에서의 캐시 압력과 재-prefill 비용도 실무 검증 항목이다.

저자들이 밝힌 한계는 cache engineering 전략을 더 탐구하는 일, 이 방식 아래에서 에이전트를 학습시키는 일, 서빙 지원을 linear attention 모델로 확장하는 일이 남은 과제라는 점이다. 실험은 특정 모델과 벤치마크에 한정되며, A800 GPU가 MXFP4를 지원하지 않아 모든 가중치를 BF16으로 두고, 비용은 Groq·MiniMax·Qwen3-30B-A3B 공식 요율로 계산했다. repos 비용은 캐시 히트 요율로 매겨 보수적으로 비교했다는 전제도 있다.