AI & building

프롬프트 캐싱 (Prompt Caching)

By Jake Luo · Published 2026년 9월 13일

프롬프트 캐싱은 모델 제공사가 방금 처리한 프롬프트의 앞부분에 들인 작업을 재사용해, 정확히 같은 텍스트로 시작하는 다음 요청을 크게 할인된 요금으로 청구하고 더 빨리 응답하는 방식입니다. 이 방식이 무엇보다 보상하는 습관은 하나입니다. 모든 요청의 시작 부분은 똑같이 유지하고, 바뀌는 내용은 끝에 두는 것입니다.

캐시 적중은 어떻게 일어나는가

언어 모델은 모든 요청을 첫 토큰부터 읽습니다. 작업 중간에 있는 AI 에이전트는 호출할 때마다 지시문, 도구 정의, 지금까지의 대화 전체를 보내므로, 긴 작업에서는 이렇게 반복해서 읽는 몫이 청구액의 대부분을 차지합니다. 프롬프트 캐싱은 제공사가 방금 한 작업을 건너뛸 수 있게 해 줍니다. 요청의 앞부분이 최근 요청의 앞부분과 토큰 하나까지 일치하면, 그 구간은 제공사가 보관해 둔 결과로 처리되고 캐시 요율로 청구됩니다.

그렇게 되는지는 다음 세 가지가 결정합니다.

  • 접두사 일치입니다. 캐시는 첫 토큰부터 처음으로 달라지는 지점까지만 적용되고, 그 뒤로는 전혀 적용되지 않습니다. 맨 위 근처에서 글자 하나만 바꿔도 그 지점 아래의 모든 토큰을 처음부터 다시 읽고, 다시 전액으로 청구합니다.
  • 만료됩니다. 캐시 항목은 며칠이 아니라 몇 분 동안 활동이 없으면 사라지고, 그 기간은 제공사와 모델마다 다릅니다. 그래서 오래 쉬었다가 보낸 요청은 내용이 전혀 바뀌지 않았어도 전액을 냅니다.
  • 하한이 있습니다. 최소 프롬프트 길이에 못 미치면 아무것도 캐시되지 않고, 그 최소값은 모델마다 정해져 있습니다. 오래된 블로그 글에서 베낀 숫자가 아니라 제공사의 최신 문서에서 확인하세요.

2026년 9월 기준으로 Anthropic, OpenAI, Google은 모두 현재 모델에서 캐시 읽기를 일반 입력 가격의 약 10분의 1로 청구합니다. Google과 OpenAI는 캐싱을 자동으로 적용하고, Anthropic은 요청 안에 표시한 중단점까지 캐시하며 캐시 항목을 쓸 때 할증 요금을 받습니다. 10대 1의 격차는 충분히 커서, 에이전트 실행 비용을 좌우하는 것이 프롬프트의 크기가 아니라 입력 중 캐시된 비중인 경우가 많습니다.

컨텍스트를 줄였더니 에이전트 비용이 오히려 늘어난 이유

우리는 고객을 위해 웹사이트를 만들고 수정하는, 오래 실행되는 에이전트를 운영합니다. 그중 사이트 구축 세션 하나가 컨텍스트에 한도가 없을 때 무엇이 드는지 보여 주었습니다. 네 시간이 조금 안 되는 동안 이 세션은 모델을 622번 호출했고, 호출할 때마다 다시 읽는 대화는 약 310,000토큰까지 불어났습니다. 모델이 실제로 써 낸 텍스트는 청구액의 약 6%에 불과했습니다. 나머지는 모두 같은 기록을 다시 읽는 비용이었습니다.

뻔한 해결책은 가지치기였습니다. 매 호출 전에, 에이전트가 이미 반영한 오래된 도구 결과를 지워 내는 것입니다. 우리 자체 테스트 워크스페이스에서 모두 366번의 실제 모델 호출로 측정해 보니, 가지치기가 실제로 작동한 구간에서는 프롬프트마다 약 23,000토큰만 덜어 낸 반면 호출당 비용은 약 28% 늘었습니다. 가지치기는 가장 오래된 결과부터 차례로 진행했기 때문에, 호출할 때마다 제공사가 방금 캐시한 접두사 안에서 조금씩 더 뒤쪽 지점을 다시 쓰게 됐습니다. 호출당 캐시되지 않은 입력은 2,000–8,000토큰에서 5,000–25,000토큰으로 늘었고, 10대 1의 가격 비율에서는 그 증가가 절감분을 집어삼켰습니다. 이 계산은 기억해 둘 만합니다. 캐시된 접두사 안에서 무언가를 바꾸면, 본전을 찾는 데만도 무효로 만드는 토큰의 약 아홉 배를 덜어 내야 합니다.

대신 효과가 있었던 것은 잘라 내기가 아니라 상한이었습니다. 에이전트가 쌓을 수 있는 컨텍스트를 200,000토큰으로 제한해, 매 호출마다 기록을 조금씩 고치는 대신 그 한도에 가까워지면 기록을 한 번에 압축하도록 했고, 호출별 가지치기는 껐습니다. 한 번 다시 쓰고, 그 뒤로는 덧붙이기만 하는 호출이 길게 이어지는 형태가 캐싱이 보상하는 모양입니다. 우리가 얻은 교훈은, 어떤 변경이 비용을 줄였다고 믿기 전에 호출마다 캐시된 입력과 캐시되지 않은 입력을 따로 읽어야 한다는 것입니다. 프롬프트 크기만 봤을 때는 청구서가 말하는 것과 정반대의 결론이 나왔기 때문입니다.

캐시 적중을 지키는 방법

절감분의 대부분은 설정이 아니라 순서에서 나옵니다. 모델 API 위에서 무언가를 만들고 있다면, 다음 네 가지 습관으로 거의 전부를 챙길 수 있습니다.

  • 고정된 내용은 앞에, 바뀌는 내용은 뒤에. 지시문, 도구 정의, 참고 문서는 맨 위에 두고 호출 사이에 바이트 단위까지 똑같이 유지하세요. 시스템 프롬프트 위쪽에 들어간 타임스탬프, 사용자 이름, 요청 ID 하나가 모든 요청에서 조용히 캐시를 무력화합니다.
  • 고치지 말고 덧붙이세요. 새 턴은 대화 끝에 추가하세요. 앞선 턴을 그 자리에서 다시 쓰거나, 순서를 바꾸거나, 요약하면 수정한 지점 뒤의 모든 것이 무효가 됩니다. 우리 가지치기가 한 단계씩 저지른 실수가 바로 이것입니다.
  • 다시 쓰는 일은 드물게, 한꺼번에. 기록을 줄여야 한다면 직접 정한 상한에서 한 번의 압축으로 끝내고, 비싼 호출 한 번을 감수하는 대신 그 뒤로 길고 저렴한 흐름을 얻으세요.
  • 크기가 아니라 캐시 비중을 재세요. 제공사는 응답마다 사용량 데이터에 캐시된 입력과 캐시되지 않은 입력을 따로 보고합니다. 프롬프트는 짧아졌는데 캐시되지 않은 수치가 올랐다면, 프롬프트 길이가 뭐라고 하든 그 변경은 비용을 늘린 것입니다.

위의 숫자는 AgentCeres — agentceres.com의 AI Growth Officer — 를 운영하며 나온 것입니다. 이곳에서는 전문 에이전트로 이루어진 팀이 페이지와 게시물, 아웃리치의 초안을 쓰고, 외부로 나가는 작업은 기본값으로 사람의 승인을 기다립니다. 이런 호출 위에 만든 제품의 가격을 정하고 있다면, 측정한 호출당 원가가 왜 가격의 바탕에 깔려야 하는지 비용이 변동하는 AI 제품의 가격은 어떻게 정하나요?에서 다룹니다.

FAQ

프롬프트 캐싱은 모델의 답변을 캐시하는 것과 같은가요?
아닙니다. 응답 캐시는 완성된 답변을 저장해 두었다가 똑같은 질문에 다시 내주는데, 요청이 매번 달라지는 에이전트에는 거의 도움이 되지 않습니다. 프롬프트 캐싱은 제공사가 입력을 처리한 결과를 보관하므로 모델은 여전히 매번 새 답변을 씁니다. 저렴해지고 빨라지는 것은 공유되는 앞부분을 읽는 과정뿐입니다.
사용하려면 코드를 바꿔야 하나요?
경우에 따라 다릅니다. Google과 OpenAI는 프롬프트가 충분히 길면 현재 모델에서 자동으로 적용하므로, 할 일은 대부분 고정된 내용을 앞에 두는 것입니다. Anthropic은 캐시할 접두사가 끝나는 지점을 요청 안에 직접 표시하게 합니다. 어느 쪽이든 적중하고 있으리라 가정하지 말고, 실제 응답의 사용량 데이터를 보고 확인하세요.
프롬프트 캐싱을 쓰면 긴 컨텍스트가 공짜가 되나요?
아닙니다. 캐시된 토큰은 저렴해질 뿐 공짜가 아니고, 아주 긴 기록을 다시 보내는 에이전트는 호출할 때마다 그 전체에 할인된 가격을 냅니다. 일정 길이를 넘으면 컨텍스트를 덜 들고 있는 편이 더 싸고, 그래서 우리에게는 어떤 잘라 내기보다 누적 컨텍스트의 상한이 더 중요했습니다. 호출마다 늘어나는 비용이 결국 제품이 받을 수 있는 가격을 어떻게 결정하는지는 사용량 기반 과금에서 다룹니다.
Related terms
AI 에이전트Model Context Protocol (MCP)검색 증강 생성 (RAG)사용량 기반 과금

An AI growth team that runs this for you

AgentCeres is a managed AI marketing team — you approve what ships. 14-day free trial, from $39/month.

Start free trialBrowse the glossary