AI 기능을 서비스에 붙이면 요청마다 같은 내용이 반복돼요. 역할 설명, 답변 규칙, 상품 목록이나 매뉴얼 같은 참고 자료가 매번 맨 앞에 붙고, 사용자 질문만 뒤에서 바뀌죠. 이 반복되는 앞부분도 요청할 때마다 입력 비용으로 계산돼요.
LLM API 비용을 어림하는 글에서 캐싱을 짧게 소개했는데, 이번에는 프롬프트 캐싱을 실제로 붙일 때 알아야 할 원리와 설계 기준을 Anthropic과 OpenAI의 공식 문서로 정리했어요.
프롬프트 캐싱은 무엇을 저장하나
프롬프트 캐싱은 요청의 앞부분(접두부)을 서버가 잠시 저장해 두고, 다음 요청의 앞부분이 똑같으면 저장해 둔 것을 다시 쓰는 기능이에요. 다시 쓴 부분은 처리 시간이 줄고, 입력 요금도 할인돼요.
핵심은 "앞에서부터 똑같아야 한다"는 점이에요. Anthropic 문서는 캐시가 맞으려면 표시한 지점까지 프롬프트가 100% 같아야 한다고 설명하고, OpenAI 문서도 앞부분 전체가 일치해야 캐시가 맞는다고 안내해요.
두 회사 방식 비교
| 항목 | Anthropic | OpenAI |
|---|---|---|
| 켜는 방법 | cache_control 지정(자동 · 직접 표시) | 지원 모델은 기본으로 켜짐 |
| 다시 쓸 때 입력 요금 | 기본 입력의 0.1배(일부 최신 모델은 더 낮음) | 최대 95% 할인 |
| 저장 시간 | 기본 5분(1시간 옵션은 추가 요금) | 최신 모델 기준 마지막 사용 후 최소 30분 |
| 최소 길이 | 모델별 512~4,096토큰 | 최신 모델 1,024토큰 |
캐시에 처음 쓸 때는 추가 요금이 붙어요. Anthropic은 기본 입력의 1.25배(1시간 저장은 2배), OpenAI도 최신 모델(GPT-5.6 이후)은 1.25배로 안내해요. 그래서 한 번 쓰고 끝나는 프롬프트에는 효과가 작고, 같은 앞부분을 여러 번 다시 쓰는 기능에서 효과가 커요. 숫자는 모델마다 다르니 붙이기 전 쓰는 모델의 요금을 각 사 문서에서 확인하세요.
우리 회사 자료로 직접 확인해 보고 싶다면AI 도입 진단 · 자료를 보고 적용 후보와 순서를 정리해 드려요상담 신청캐시가 잘 맞게 프롬프트 순서 짜기
캐싱 효과는 대부분 프롬프트 순서에서 갈려요.
- 변하지 않는 것을 맨 앞에: 역할 설명 · 답변 규칙 · 도구 정의 · 참고 자료
- 바뀌는 것은 맨 뒤에: 사용자 질문, 오늘 날짜, 사용자별 정보
- 앞부분에 시각 넣지 않기: Anthropic 문서는 요청마다 바뀌는 값(예: 현재 시각)이 들어간 블록에 캐시 지점을 두면 매번 새로 저장만 되고 다시 쓰이지 않는다고 경고해요
- 도구 정의는 자주 바꾸지 않기: Anthropic 기준 도구 정의가 바뀌면 그 뒤 캐시가 모두 무효가 돼요
실제로 캐시가 맞았는지 확인하기
붙였다고 끝이 아니라, 응답에 함께 오는 사용량 값으로 확인해야 해요.
- Anthropic: cache_creation_input_tokens(새로 저장한 양) · cache_read_input_tokens(다시 쓴 양). 둘 다 0이면 캐시가 안 된 거예요
- OpenAI: 응답 사용량에 표시되는 캐시된 입력 토큰 수로 확인해요
배포 후 며칠은 이 값을 기록해 두고, 다시 쓴 양이 거의 없다면 프롬프트 앞부분에 요청마다 바뀌는 값이 섞였는지부터 보세요. 참고로 Anthropic 기준 캐시는 조직(워크스페이스)별로 따로 저장돼요.
붙이는 순서 정리
- 요청마다 반복되는 앞부분이 얼마나 긴지 먼저 재요(최소 길이보다 짧으면 효과 없음)
- 프롬프트를 "고정 → 변동" 순서로 다시 배치해요
- Anthropic은 cache_control을 켜고, OpenAI는 지원 모델인지 확인해요
- 응답의 캐시 사용량 값을 기록해 효과를 확인해요
같은 지시를 매일 반복해서 보내는 기능이라면, 캐싱은 기능을 바꾸지 않고 비용과 대기 시간을 함께 줄이는 방법이에요.
참고
- Anthropic, Prompt caching: https://platform.claude.com/docs/en/build-with-claude/prompt-caching
- OpenAI, Prompt caching: https://developers.openai.com/api/docs/guides/prompt-caching