Eazler AI Lab AI Engineering Journal

프롬프트 캐싱은 좁게 잡을수록 유리했다
12개 조건 측정

에이전트는 한 번의 질문을 수십 번의 API 호출로 바꿉니다. 그 호출마다 같은 시스템 프롬프트를 다시 보내고, 요금은 매번 다시 붙습니다. 프롬프트 캐싱이 이 반복분을 줄여 주는데, 많이 넣을수록 이득이 커지지는 않았습니다. 논문이 모델 4종 × 전략 3가지, 총 12개 조건을 측정한 결과 가장 좁게 잡은 전략이 비용에서 4개 중 3개, 첫 토큰 시간에서 다시 4개 중 3개로 최고였습니다(두 축의 3개가 같은 모델은 아닙니다). 프롬프트 캐싱은 켜고 끄는 기능이 아니라, 무엇을 캐시에 넣고 뺄지 정하는 일입니다.

작성일: 2026-09-08 범위: 프롬프트 캐싱 / 배치 처리 / 에이전트 호출 구조 대상: 개발자 · 1인 스튜디오 · 소규모 팀 근거: arXiv 논문 1편 + 제공자 3곳 공식 문서

1. 핵심 요약

토큰은 모델이 글을 처리하고 요금을 매기는 기본 단위입니다. 그런데 토큰당 단가만 비교해서는 에이전트 비용을 설명할 수 없습니다. 에이전트 비용은 같은 내용을 몇 번 다시 보내느냐에 따라 달라지고, 이 반복 전송을 줄이는 기능이 프롬프트 캐싱입니다. 앞부분이 똑같은 요청이 이어지면 그 공통 부분을 다시 계산하지 않고 재사용합니다.

27.8~81.4%12개 조건에서 줄어든 API 비용
제공자 3곳 · 세션 500회 이상
3/4시스템 프롬프트만 캐시한 전략이
비용에서 최고였던 모델 수
첫 토큰 시간에서도 따로 3/4
0.1배캐시를 재사용할 때의 입력 토큰 단가
Anthropic·OpenAI 기준
결론: 프롬프트 캐싱을 켜되 캐시 구간을 넓게 잡지 마세요. 12개 조건에서 시스템 프롬프트만 캐시한 쪽이 두 축 모두 가장 자주 최고였고, 더 넣는다고 절감이 비례해 커지지 않았습니다. 그다음이 배치 처리이고, 토큰 단가 비교는 마지막입니다.

2. 한 번의 질문이 수십 번의 청구가 되는 구조

일반 챗봇은 질문 하나가 호출 하나입니다. 에이전트는 다릅니다. 도구를 부르고, 결과를 읽고, 다시 판단하고, 또 부릅니다. 이 반복 하나하나가 별도의 API 호출이고 각각 요금이 붙습니다.

비용은 호출 횟수 × 호출당 다시 보내는 토큰입니다. 호출 횟수만 세면 뒤쪽 항을 놓칩니다 — 호출할 때마다 그때까지의 맥락을 통째로 다시 보내기 때문입니다. 시스템 프롬프트와 도구 정의, 지금까지의 대화가 호출할 때마다 입력 토큰으로 다시 집계됩니다. 논문 저자들은 실험에서 길이 1만 토큰짜리 시스템 프롬프트를 쓰고, 도구 호출 횟수를 3회부터 50회까지 달리했습니다. 50회면 같은 1만 토큰을 50번 다시 보내는 셈입니다.

용어: 첫 토큰까지의 시간(TTFT, time to first token)은 요청을 보낸 뒤 응답의 첫 글자가 돌아오기까지 걸리는 시간입니다. 에이전트는 한 작업에서 이 대기를 수십 번 반복하므로, 호출마다 생기는 수백 밀리초의 차이가 전체 소요 시간을 좌우합니다.

3. 캐시는 실제로 얼마나 줄이나

Lumer 등(arXiv:2601.06007)은 제공자 3곳(OpenAI·Anthropic·Google)에서 캐싱 전략 세 가지를 비교했습니다. 웹 검색 도구를 실제로 호출하며 요청과 응답을 여러 차례 주고받는 벤치마크(DeepResearch Bench)에서 에이전트 세션을 500회 이상 실행하고, API 비용과 첫 토큰까지 걸린 시간을 함께 측정했습니다.

비교한 세 전략은 이렇습니다.

전략캐시에 넣는 것성격
전체 맥락시스템 프롬프트 + 대화 + 도구 결과 전부가장 단순. 요청마다 달라지는 것까지 들어감
시스템 프롬프트만지시문과 도구 정의바뀌지 않는 부분만
도구 결과 제외시스템 프롬프트 + 대화, 도구 실행 결과는 뺌세션마다 달라지는 값만 제외

논문은 초록에서 비용 41~80% 절감, 첫 토큰까지 걸린 시간 13~31% 단축이라고 요약합니다. 다만 모델별 표를 열어 보면 범위가 더 넓고, 어느 전략이 좋았는지도 모델마다 갈립니다. 12개 조건을 그대로 옮깁니다.

모델전략비용 절감첫 토큰 시간 변화
GPT-5.2전체 맥락79.3%−9.5%
시스템 프롬프트만81.4%−10.5%
도구 결과 제외79.6%−13.0%
Claude Sonnet 4.5전체 맥락77.8%−21.8%
시스템 프롬프트만78.5%−22.9%
도구 결과 제외78.1%−20.9%
Gemini 2.5 Pro전체 맥락38.3%−6.0%
시스템 프롬프트만41.4%−6.1%
도구 결과 제외27.8%+2.9%
GPT-4o전체 맥락47.8%+8.8%
시스템 프롬프트만45.9%−30.9%
도구 결과 제외46.8%−28.1%

출처 · arXiv:2601.06007 원문 표 확인. 첫 토큰 시간은 음수가 단축, 양수가 지연 증가입니다. 굵게 표시한 것이 각 모델에서 그 항목의 최고값입니다.

읽는 법 세 가지.시스템 프롬프트만 캐시한 전략이 비용에서 4개 모델 중 3개, 첫 토큰 시간에서도 4개 중 3개로 최고였습니다. 두 축에서 동시에 최고인 모델은 Claude Sonnet 4.5와 Gemini 2.5 Pro 둘입니다. ② 더 넣는다고 절감이 커지지 않습니다. Gemini에서 도구 결과까지 넣은 전체 맥락(38.3%)보다 시스템 프롬프트만 넣은 쪽(41.4%)이 더 쌌습니다. ③ 비용 최고와 지연 최고가 다른 전략인 모델이 있습니다. GPT-5.2와 GPT-4o가 그렇습니다.

4. 넓게 잡으면 역효과가 나는 지점

비용은 12개 조건 전부에서 줄었습니다. 그러나 첫 토큰까지 걸린 시간은 두 조건에서 오히려 늘었습니다. GPT-4o에서 전체 맥락을 캐시했을 때 8.8%, Gemini 2.5 Pro에서 도구 결과를 제외했을 때 2.9%입니다. 논문은 “요청마다 바뀌는 내용을 캐시하면 추가 처리 부담 때문에 응답 시간 단축 효과가 상쇄될 수 있다”고 설명합니다.

일반화하지 마세요. 전체 맥락 캐싱이 늘 느려지는 것은 아닙니다. 나머지 세 모델에서는 전체 맥락으로도 첫 토큰 시간이 6.0~21.8% 단축됐습니다. 역효과는 모델과 전략의 조합에서 나왔지, 전략 하나에서 나온 것이 아닙니다.

논문이 제시한 세 가지 규칙은 모두 요청할 때마다 바뀌는 내용을 캐시 구간에서 빼라는 하나의 원칙으로 모입니다. 다만 세 번째는 위 표에서 보듯 모델을 탑니다.

동적인 내용은 뒤로

시스템 프롬프트 안에서 자주 바뀌는 부분을 끝쪽으로 보냅니다. 캐시는 요청의 앞부분이 직전 요청과 일치하는 데까지만 재사용되므로, 바뀌는 내용이 앞에 있으면 그 뒤도 함께 재사용할 수 없게 됩니다.

적용: 4개 모델 공통.

도구 정의를 흔들지 않기

도구 정의를 요청할 때마다 다시 만들면 기존 캐시를 쓸 수 없습니다. 논문은 “요청 사이에 도구 정의가 바뀌면 캐시가 무효가 될 수 있다”고 설명합니다. 정의는 고정하고, 호출할 때 넘기는 값만 바꾸세요.

적용: 4개 모델 공통.

도구 실행 결과 제외 — 재 보고 정하세요

검색 결과나 API 응답은 세션마다 다릅니다. 논문은 이 둘을 캐시에서 빼는 전략을 따로 두었지만 결과가 갈렸습니다. GPT-5.2에서는 첫 토큰 시간이 가장 좋았고(−13.0%), Gemini 2.5 Pro에서는 비용이 셋 중 최악(27.8%)이고 지연도 늘었습니다(+2.9%).

적용: 쓰는 모델에서 직접 측정한 뒤 결정.

주의: 세션 도중 모델을 바꾸면 캐시는 처음부터 다시 쌓입니다. 요청을 더 싼 모델로 보내는 모델 라우팅으로 아낀 금액보다, 캐시를 다시 못 쓰게 되어 더 낸 금액이 클 수 있습니다. 모델 라우팅과 프롬프트 캐싱은 함께 설계해야 합니다.

5. 제공자별 조건이 다르다

같은 “프롬프트 캐싱”이라도 켜는 방법, 최소 길이, 유지 시간이 다릅니다. 아래는 각 제공자 공식 문서에서 직접 확인한 값입니다.

항목AnthropicOpenAIGoogle Gemini
켜는 방식 수동 — cache_control 지정 기본 활성. GPT-5.6 이상은 prompt_cache_options로 제어 암묵적 캐싱이 기본 활성
최소 길이 모델별 512 · 1,024 · 2,048 · 4,096 토큰 1,024 토큰(GPT-5.6 이상) / 2,048 토큰(이전) 2,048 토큰(2.5 Flash·Pro) / 4,096 토큰(3.x Flash·3.1 Pro Preview)
캐시 읽기 단가 기본 입력 토큰 단가의 0.1배 0.1배(GPT-5.6 이상). 이전 모델은 모델별 비율 명시 없음 — 재사용 시 절감분을 자동 반영한다고만 설명
캐시 쓰기 추가 비용 1.25배(5분) / 2배(1시간) 1.25배(GPT-5.6 이상) / 추가 요금 없음(이전 모델) 문서에 별도 쓰기 요금 명시 없음
유지 시간 기본 5분, 옵션 1시간 마지막 사용 후 30분(GPT-5.6 이상) 문서에 명시 없음
구간 지정 요청당 캐시 분기점 최대 4개 prompt_cache_breakpoint로 선택 지정 암묵적 캐싱은 지정 불가

출처 · 각 제공자 공식 문서(2026-09-08 확인). “명시 없음”은 해당 공식 문서에서 값을 확인하지 못했다는 뜻이며, 그런 요금이나 조건이 없다는 뜻은 아닙니다.

쓰기 비용까지 넣어 손익을 계산하세요. 캐시 쓰기는 내용을 캐시에 처음 저장하는 것이고, 그때 추가 요금이 붙습니다. 입력 토큰 단가를 1이라 하면 캐시 없이 같은 내용을 두 번 보낼 때가 2입니다. Anthropic의 5분 캐시는 한 번만 재사용해도 1.25 + 0.1 = 1.35라 이미 이득입니다. 반면 1시간 유지는 쓰기가 2배라 한 번 재사용으로는 2 + 0.1 = 2.1로 손해이고, 두 번 재사용부터(2 + 0.2 = 2.2 대 3) 이득입니다. 재사용 횟수를 먼저 세고 유지 시간을 고르세요.

6. 캐시 다음에 오는 것

프롬프트 캐싱은 즉시 응답해야 하는 요청에서 반복 계산을 줄입니다. 즉시 결과가 필요 없는 작업은 아예 다른 경로로 보내는 편이 낫습니다.

배치 처리

Anthropic의 Message Batches API는 모든 사용량을 표준 가격의 50%로 계산합니다. 대신 요청을 보내고 기다리지 않다가 나중에 결과를 받는 비동기 방식입니다. 대부분 1시간 안에 끝나지만 최대 24시간이 걸릴 수 있고, 24시간 안에 끝나지 않은 요청은 만료됩니다. 결과는 29일간 조회할 수 있습니다.

맞는 일: 대량 분류, 재색인, 정기 평가 실행처럼 사람이 기다리지 않는 작업.

모델 라우팅

쉬운 단계는 작은 모델로 보내는 방식입니다. 다만 앞 절에서 적었듯 세션 도중 모델을 바꾸면 캐시를 다시 쓸 수 없습니다. 한 세션에서 여러 모델을 섞기보다 작업 종류별로 세션을 나누는 편이 캐시를 지키는 데 유리합니다.

확인할 것: 모델 라우팅으로 아낀 금액과 캐시를 다시 못 써서 더 낸 금액을 같은 표에서 비교하세요. 따로 보면 모델 라우팅의 절감 효과가 실제보다 커 보입니다.

순서가 있습니다. ① 반복되는 구간을 캐시에 고정하고 ② 바뀌는 것을 빼내고 ③ 급하지 않은 일을 배치로 옮기고 ④ 그다음에 단가를 봅니다. 단가부터 비교하면 앞의 셋이 만드는 차이를 놓칩니다.

7. 오늘 할 수 있는 것

#할 일확인 방법
1한 작업이 실제로 몇 번의 API 호출이 되는지 센다요청 로그의 세션당 호출 수. 예상보다 크면 그것이 비용의 정체입니다
2시스템 프롬프트에서 매번 바뀌는 조각을 찾는다타임스탬프, 세션 ID, 사용자 이름, 현재 단계 번호가 앞쪽에 있는지
3그 조각들을 시스템 프롬프트 끝으로 옮긴다옮긴 뒤 응답의 캐시 적중 토큰 수가 늘었는지
4도구 정의를 고정한다요청 두 개의 도구 스키마를 그대로 비교해 한 글자도 다르지 않은지
5도구 실행 결과를 뺀 경우와 넣은 경우를 재 본다모델마다 결과가 갈렸습니다. 두 조건으로 같은 작업을 돌려 비용과 첫 토큰 시간을 비교
6최소 길이를 넘는지 확인한다시스템 프롬프트의 토큰 수가 모델이 요구하는 최소치(512~4,096개)보다 적으면 프롬프트 캐싱이 아예 적용되지 않습니다
7재사용 횟수를 세고 유지 시간을 고른다5분 캐시는 1회 재사용부터 이득(1.35 대 2). 1시간 유지는 2회부터 이득(2.2 대 3)
8사람이 기다리지 않는 작업을 배치로 뺀다24시간 지연을 감당할 수 있는 작업 목록
가장 먼저 볼 것은 2·3번입니다. 논문에서 가장 자주 최고였던 전략이 캐시 범위를 좁힌 쪽이었고, 2·3번이 바로 캐시에 넣는 내용을 줄이는 작업입니다. 5번은 모델마다 갈렸으니 재 보고 정하세요.

8. 아직 결론이 아닌 것

  • 자체 측정이 아닙니다. 이 글의 절감률은 전부 arXiv:2601.06007의 값이고, 저희가 다시 측정한 것이 아닙니다. 워크로드가 다르면 숫자도 달라집니다.
  • 초록의 범위가 표를 다 담지 못합니다. 초록은 비용 41~80%, 첫 토큰 13~31%라고 적었지만 12개 조건의 실제 범위는 비용 27.8~81.4%, 첫 토큰 −30.9~+8.8%입니다. 초록의 숫자가 어떤 부분집합을 요약한 것인지 원문에서 확인하지 못했습니다. 이 글의 본문은 표 값을 기준으로 썼습니다.
  • 측정 시점의 모델 구성입니다. 논문의 모델은 GPT-5.2, GPT-4o, Claude Sonnet 4.5, Gemini 2.5 Pro입니다. 이후에 나온 모델에서는 캐싱 동작이 달라졌을 수 있습니다.
  • 벤치마크는 웹 검색 에이전트입니다. DeepResearch Bench는 검색 도구를 반복 호출하는 작업입니다. 코드 편집처럼 맥락이 다르게 쌓이는 작업에 그대로 옮길 수 있는지는 이 논문이 답하지 않습니다.
  • 가격은 확인 시점 기준입니다. 표의 값은 2026-09-08에 각 제공자 문서에서 읽은 것입니다. 도입 전에 다시 확인하세요.
  • Google의 절감 비율은 확인하지 못했습니다. 공식 문서는 캐시가 재사용될 때 절감분을 자동 반영한다고만 적고, 구체적인 비율을 밝히지 않습니다. 빈칸으로 두었습니다.

9. 참고자료

자료이 글에서 쓴 내용링크
Lumer 외, Don’t Break the Cache (arXiv:2601.06007) 12개 조건의 비용·첫 토큰 값 전체, 초록의 요약 범위, 세 가지 규칙. 원문 표 확인 arxiv.org/abs/2601.06007
Anthropic — Prompt caching 쓰기 1.25배·2배, 읽기 0.1배, 유지 5분·1시간, 최소 512~4,096 토큰, 분기점 4개 platform.claude.com/docs/.../prompt-caching
Anthropic — Batch processing 표준 가격의 50%, 최대 24시간, 결과 29일 보관 platform.claude.com/docs/.../batch-processing
OpenAI — Prompt caching 기본 활성, 최소 1,024·2,048 토큰, 읽기 0.1배, 쓰기 1.25배(GPT-5.6 이상), 마지막 사용 후 30분 developers.openai.com/api/docs/guides/prompt-caching
Google — Context caching 암묵적 캐싱 기본 활성, 최소 2,048·4,096 토큰. 절감 비율은 명시 없음 ai.google.dev/gemini-api/docs/caching

이 글의 수치는 위 다섯 자료에서 직접 확인했습니다. 2차 집계 블로그의 숫자는 원 출처를 찾지 못해 쓰지 않았습니다. 가격과 캐시 동작은 자주 바뀌므로 도입 전에 공식 문서를 다시 확인하세요.