2026년 8월 30일 일요일

LLM 서빙 캐싱 ⑤ — 에이전트·멀티턴·RAG: 앱 계층의 캐시 다섯 층

에이전트의 청구서는 대화가 아니라 반복에서 나온다. 매 턴 같은 시스템 프롬프트, 같은 도구 정의, 같은 이력을 다시 보내고, RAG는 같은 문서를 다시 임베딩하고 다시 리랭킹한다. 이 글은 LLM "주변"의 캐시를 다룬다 — 멀티턴을 캐시 친화적으로 설계하는 규칙, RAG 파이프라인의 다섯 캐시 층, 게이트웨이 설정 한 줄, 그리고 캐시하면 안 되는 것.

에이전트 비용의 정체: 입력 100 : 출력 1

Manus는 "KV 캐시 히트율이 프로덕션 에이전트의 단일 최우선 지표"라고 썼다. 입력:출력이 100:1이니 캐시 읽기(정가의 10%)와 미스의 차이가 곧 10배다. PwC 연구팀의 실험(OpenAI·Anthropic·Google, DeepResearch 세션 500+건, 시스템 프롬프트 10K, 도구 호출 3~50회)에서 전략적 캐싱은 비용 −41~80%, TTFT −13~31%였다. 그런데 "무조건 전체 캐시"는 역효과였다 — 동적 도구 결과를 캐시 경계 안에 넣으면 매번 쓰기 할증만 낸다.

대화는 append-only로 — 히트율 7%가 74%가 된 한 줄

  • ProjectDiscovery: 4K 시스템 프롬프트를 매번 보내는데 히트율 7%. 프롬프트 중간의 동적 식별자 하나를 끝으로 옮기자 74%, 월 비용 −59%. 이후 시스템 프롬프트 1시간 캐시·정적 도구 알파벳 정렬·마지막 도구 결과에 5분 슬라이딩 브레이크포인트로 84%까지.
  • 규칙: 초 단위 타임스탬프 금지, JSON 직렬화는 결정적으로, 도구는 제거 대신 마스킹(allowed_tools), 이력은 append만. Anthropic은 최상위 cache_control 하나면 브레이크포인트가 자동 전진하고(20블록 룩백), OpenAI는 prompt_cache_key로 세션을 같은 레플리카에 붙인다.
  • 요약(compaction)은 공짜가 아니다: 실측에서 전체 이력+캐시는 턴당 $0.11·회상 92%, 요약은 $0.24·회상 38%였다. 캐시 단가가 ≈$0.55/M 이하면 요약이 더 비싸다. 도구 출력 길이 제한만으로 −38%가 나왔고, Anthropic도 "tool result clearing"을 가장 안전한 경량 압축으로 권한다.

RAG 파이프라인의 다섯 캐시 층 — 돈은 어디에 있나

  • 쿼리 임베딩 캐시 — 지연용이지 절감용이 아니다. 임베딩 단가는 $0.01~0.15/M(BGE-M3 $0.01, text-embedding-3-small $0.02)이라 월 1,000만 쿼리를 전부 캐시해도 ≈$6.
  • 재인덱싱 콘텐츠 해시 — 변경 없는 청크를 다시 임베딩하지 않는 것. 10억 토큰 코퍼스 1회 = $130~150.
  • 리랭커 캐시 — 가장 무거운 단계. Cohere Rerank $1~2.5/1K 검색이니 100만 검색 = $1,000~2,500. (query+chunks)→순서를 캐시.
  • 검색 결과 캐시 — 유사도 0.85 이상 쿼리는 응답은 달라도 청크는 같다.
  • 청크 KV 재사용(자체 서빙) — 프리픽스가 아닌 위치의 문서 KV를 재사용하는 연구가 실제 제품에 들어왔다. CacheBlend(LMCache)는 토큰 10~15%만 재계산해 TTFT 2.2~3.3배·처리량 2.8~5배, TurboRAG는 모델 수정 없이 TTFT 9.4배, Prompt Cache(Yale)는 GPU 8배·CPU 60배. 코퍼스가 고정적이면 인덱싱 시점에 KV까지 만들어 두는 것이 다음 단계다.

게이트웨이는 헤더 한 줄

LiteLLMcache_params: {type: redis, ttl: 600}(시맨틱은 redis-semantic + similarity_threshold), Cloudflare AI Gatewaycf-aig-cache-ttl: 3600과 응답 cf-aig-cache-status: HIT, HeliconeHelicone-Cache-Enabled + 사용자별 Helicone-Cache-Seed, Portkey는 {"cache":{"mode":"simple","max_age":60}}, Kong은 ai-semantic-cache 플러그인. 도구 결과 캐시는 idempotent이고 TTL 안에 노화하지 않고 부작용이 없을 때만 — TVCache는 키에 인자만이 아니라 상태 이력을 넣어 히트율 70%, 도구 실행 시간 6.9배 단축을 얻었다.

캐시하면 안 되는 것, 그리고 계측

개인화·테넌트 의존 응답(키에 tenant·permission·source version이 없으면 데이터 노출), 시간 민감 정보, 상태 의존 도구 결과, 고위험 응답(환각이 캐시되면 유사 질의 전부 오염), 그리고 임베딩 모델 교체 시 전량 무효화. 국내 실무 가이드의 표현을 빌리면 "자주 히트하는 시스템이 아니라 안전하게 미스하는 시스템". 계측은 cache_read_input_tokens/cached_tokens를 토큰 가중 히트율로 — Langfuse의 OTel 경로에서 캐시 토큰이 정가로 계산되는 버그(2026)가 있었으니 대시보드는 청구서와 대조할 것. 다음 글은 출력 비용까지 없애는 유일한 층, 시맨틱 캐시다.

— LLM 서빙 캐싱 시리즈 ⑤ / 다음 글: 시맨틱 캐시 — 현실 히트율과 오탐의 비용

댓글 없음:

댓글 쓰기

국정원의 댓글 공작을 지탄합니다.

독파모 평가 해부 ⑫ (완결) — 청구서: 방어 가능한 평가는 첫해 2,580만 원이다

마지막 편이다. 열한 편의 비판을 한 장의 설계도로 바꾼다. 우리 회사(그리고 어느 회사든)가 그대로 실행할 수 있는 평가 프로토콜과 그 원화 가격표다. 환율 1,380원/USD, 전부 가정을 명시한 필자 계산이며, 국내 어노테이션 업체들이 문항당 단...