문제: 반복되는 프롬프트 비용
AI 에이전트는 매번 대화할 때마다 전체 대화 이력을 LLM에 다시 보냅니다.
▸시스템 명령어
▸도구 정의
▸프로젝트 컨텍스트
이 모든 것이 매 턴마다 다시 읽히고, 처리되고, 요금이 부과됩니다.
예시: 20,000토큰의 시스템 프롬프트를 50번 반복하면 = 100만 토큰의 불필요한 비용
해결책: 프롬프트 캐싱
프롬프트의 두 가지 구성 요소
1.정적 접두사 (변하지 않음)
- 시스템 명령어
- 도구 정의
- 프로젝트 컨텍스트
2.동적 접미사 (계속 증가)
- 사용자 메시지
- 어시스턴트 응답
- 도구 출력
작동 원리
LLM 추론은 두 단계로 진행됩니다:
1. Prefill 단계
▸전체 입력 프롬프트 처리
▸모든 토큰에 대해 무거운 행렬 연산 수행
▸계산 집약적이고 비용이 많이 듦
2. Decode 단계
▸토큰을 하나씩 생성
▸주로 기존 상태를 읽음
▸메모리 집약적
캐싱의 핵심
프롬프트 캐싱은 정적 접두사의 수학적 상태(Query, Key, Value 벡터)를 저장합니다.
동일한 접두사를 가진 후속 요청은 계산을 건너뛰고 메모리에서 바로 읽어옵니다.
Claude의 92% 캐시 적중률
장시간 실행되는 에이전트 워크플로우에서:
▸정적 부분은 캐시에서 재사용
▸동적 부분만 새로 처리
▸결과: 비용과 지연시간 대폭 감소
핵심 요점
✅ 변하지 않는 프롬프트 부분을 식별하세요
✅ 정적 컨텍스트를 프롬프트 앞부분에 배치하세요
✅ 프롬프트 캐싱을 지원하는 LLM 제공자를 활용하세요
프롬프트 캐싱은 단순한 최적화가 아니라, AI 인프라 비용에서 가장 큰 절감 효과를 낼 수 있는 전략입니다.