GPT-6 프롬프트 캐싱 사용법: 긴 에이전트 작업의 API 비용 줄이기

결론부터 말하면, GPT-6 프롬프트 캐싱은 별도 기능을 켜는 것보다 ‘요청 앞부분을 얼마나 안정적으로 유지하느냐’가 더 중요합니다. 긴 시스템 지침, 도구 정의, 참고 문서를 매번 같은 순서로 보내는 에이전트라면 입력 비용과 첫 응답 대기 시간을 줄일 수 있습니다. 반대로 요청 ID나 현재 시각처럼 매번 바뀌는 값을 앞에 두면 캐시가 있어도 효과가 거의 나지 않습니다.

이 글은 OpenAI API로 반복 작업이나 장시간 에이전트를 운영하는 개발자를 위한 중급 가이드입니다. 2026년 10월 6일 기준 공식 문서를 확인했으며, 이 환경에서는 유료 API 호출로 캐시 적중률을 직접 측정하지 않았습니다.

 

공통 프롬프트 카드가 캐시 저장소로 정렬되고 변동 카드가 캐시 불일치를 만드는 구조를 표현한 일러스트
프롬프트 캐싱은 비슷한 내용이 아니라 정확히 일치하는 앞부분을 재사용한다.

프롬프트 캐싱은 무엇을 재사용하나?

프롬프트 캐싱은 이전 요청과 동일한 프롬프트 접두부, 즉 요청의 앞부분을 다시 계산하지 않고 처리 결과를 재사용하는 방식입니다. 캐시에는 원문 토큰 자체가 아니라 모델이 입력을 처리하며 만든 KV 상태가 저장됩니다.

OpenAI 문서에 따르면 개발자 메시지, 도구 정의, 대화 기록의 텍스트·이미지·문서·지원 오디오 등이 렌더링된 컨텍스트에 포함될 수 있으며, 실제 재사용은 요청 앞부분의 정확한 일치 여부에 달려 있습니다. 앞부분의 내용이나 캐시에 영향을 주는 설정이 달라지면, 달라진 지점 뒤쪽은 기존 캐시와 맞지 않습니다.

핵심: 캐싱은 “비슷한 프롬프트”가 아니라 “동일한 앞부분”을 찾습니다.

GPT-6에서 할인은 얼마나 되나?

OpenAI는 GPT-6 발표에서 캐시된 입력 토큰을 최대 90% 할인한다고 설명했습니다. 최신 개발자 문서는 모델에 따라 할인율이 다르다고 구분합니다. GPT-5.6 이후 계열의 일반적인 캐시 읽기 요금은 비캐시 입력의 0.1배이며, GPT-6.1 Sol은 0.05배입니다. 따라서 Sol은 캐시 읽기 기준 최대 95% 낮은 입력 단가가 적용될 수 있습니다.

다만 캐시 가능한 접두부를 처음 저장할 때 발생하는 캐시 쓰기 요금, 새로 추가된 입력, 출력 토큰은 별도로 계산됩니다. “전체 API 비용이 90~95% 줄어든다”는 뜻이 아닙니다.

항목 GPT-6.1 Sol 예시 주의점
일반 입력 100% 새 입력과 캐시되지 않은 접두부
캐시 쓰기 일반 입력의 1.25배 첫 요청에서 발생할 수 있음
캐시 읽기 일반 입력의 0.05배 캐시가 실제 적중한 토큰만 해당
출력 할인 대상 아님 응답 길이를 따로 관리해야 함

비용 계산 예시: 긴 지침을 20번 반복한다면

GPT-6.1 Sol에서 1만 토큰의 공통 지침을 30분 안에 20번 재사용한다고 가정해 보겠습니다. 계산을 단순화하기 위해 공통 접두부만 비교하고, 새 사용자 입력과 출력 비용은 제외합니다.

  • 동일한 공통 접두부를 매번 일반 입력으로 처리할 때: 20회 × 1만 토큰 × 입력 $2/백만 토큰 = 약 $0.40
  • 캐시를 사용할 때: 첫 쓰기 1만 토큰 × $2.50/백만 = 약 $0.025
  • 이후 19회 읽기: 19 × 1만 토큰 × $0.10/백만 = 약 $0.019
  • 공통 접두부 합계: 약 $0.044

이 가정에서는 공통 접두부 비용이 약 89% 줄어듭니다. 실제 청구액은 캐시 적중 토큰 수, 새 입력, 출력, 모델, 서비스 티어, 보존 시간에 따라 달라집니다. 비용은 반드시 응답의 사용량 필드와 사용량 대시보드로 확인해야 합니다.

 

고정 지침을 먼저 배치하고 작업별 입력을 뒤에 추가하는 프롬프트 구조 일러스트
공통 지침과 도구 정의는 앞에 고정하고, 매번 바뀌는 입력은 뒤에 둔다.

비용이 줄지 않는 다섯 가지 이유

1. 매번 바뀌는 값을 지침 앞에 넣었다

현재 시각, 요청 ID, 사용자 이름, 작업별 데이터가 앞부분에 들어가면 그 지점부터 일치가 깨집니다. 고정 지침과 공통 참고 자료를 먼저 두고, 자주 바뀌는 입력은 뒤로 보내는 편이 좋습니다.

2. 도구 정의나 순서를 계속 바꿨다

도구가 추가·삭제·재정렬되거나 설명과 스키마가 바뀌면 캐시 미스가 생길 수 있습니다. 도구 목록은 안정적으로 유지하고, 당장 쓰지 않을 도구는 목록에서 빼기보다 tool_choice: "none"이나 allowed_tools로 제한하는 방식을 검토할 수 있습니다.

3. 대화 기록을 수정하거나 다시 조립했다

과거 메시지를 편집하거나 순서를 바꾸면 동일한 접두부가 아닙니다. 새 턴은 기존 기록 뒤에 추가하고, 압축이 필요하다면 캐시 적중률뿐 아니라 줄어든 총 입력 토큰 비용까지 함께 비교해야 합니다.

4. 모델·서비스 티어·출력 형식이 달라졌다

모델, 서비스 티어, 구조화 출력 스키마, 응답 상세도 같은 설정 변화도 캐시에 영향을 줄 수 있습니다. A/B 테스트나 폴백이 의도치 않게 모델을 바꾸지 않는지 확인해야 합니다.

5. 프롬프트가 너무 짧거나 재사용 간격이 길다

GPT-5.6 이후 모델의 최소 캐시 가능 길이는 공식 문서 기준 보이는 입력 1,024토큰입니다. 캐시 항목은 영구 저장되지 않으며, GPT-6 계열처럼 30m 보존 설정을 지원하는 모델에서는 마지막 쓰기나 재사용 뒤 최소 30분 동안 재사용될 수 있습니다. 호출 간격이 길거나 접두부가 짧다면 효과가 제한적입니다.

캐시 미스는 추측하지 말고 진단한다

Responses API의 프롬프트 캐시 진단 기능은 현재 요청을 이전 응답과 비교해 첫 번째 주요 원인을 알려줍니다. 예를 들어 tools_changed, model_changed, input_changed, reasoning_effort_changed 같은 이유를 확인할 수 있습니다.

아래 예시는 앞선 요청을 first 변수에 저장해 둔 상태에서, 도구 이름을 바꾼 두 번째 요청의 캐시 미스를 진단하는 부분입니다. 실제 실행에는 OpenAI 클라이언트 초기화와 첫 번째 요청 코드가 필요합니다.

second = client.responses.create(
    model="gpt-6-astra",
    instructions=policy,
    input="Reply with exactly OK.",
    tools=[{"type": "function", "name": "get_date"}],
    prompt_cache_options={
        "comparison_response_id": first.id
    },
)

print(second.prompt_cache_diagnostics)
print(second.usage.input_tokens_details.cached_tokens)

cache_hit이 나와도 새 입력까지 모두 캐시됐다는 뜻은 아닙니다. 실제 재사용량은 cached_tokens로 확인해야 합니다. 진단 기능 자체에는 추가 요금이 없지만, 비교를 위해 보내는 API 요청은 정상 과금됩니다.

 

두 프롬프트의 작은 도구 정의 차이를 확대해 캐시 미스를 진단하는 일러스트
캐시 미스는 추측하지 말고 이전 응답과 비교해 달라진 항목을 찾는다.

운영 전에 적용할 체크리스트

  • 공통 시스템 지침과 참고 자료를 요청 앞부분에 둔다.
  • 작업별 입력, 시각, ID 같은 변동값은 뒤로 보낸다.
  • 도구 정의·스키마·순서를 안정적으로 유지한다.
  • 대화 기록은 수정하지 않고 새 턴을 뒤에 추가한다.
  • 응답 사용량에서 캐시 읽기·쓰기·전체 비용을 함께 본다.
  • 캐시 적중률 하락은 대시보드와 진단 도구로 원인을 찾는다.
  • 대표 작업의 성공률과 지연 시간도 함께 측정한다.

자주 묻는 질문

프롬프트 캐싱을 따로 켜야 하나?

지원 모델에서는 기본으로 작동합니다. GPT-5.6 이후에는 명시적 중단점과 보존 설정으로 재사용 범위를 더 세밀하게 관리할 수 있습니다.

세션을 유지하면 항상 캐시가 적중하나?

아닙니다. 같은 세션이어도 접두부나 설정이 바뀌거나 해당 캐시 항목을 사용할 수 없으면 적중하지 않을 수 있습니다.

캐시가 데이터 보관 정책을 바꾸나?

OpenAI는 캐시에 원문 토큰이 아니라 KV 상태를 저장한다고 설명합니다. 데이터 레지던시와 Zero Data Retention 조건은 조직 설정과 기능별 문서를 별도로 확인해야 합니다.

정리

프롬프트 캐싱은 단순한 할인 옵션이 아니라 요청 구조를 설계하는 문제입니다. 고정 컨텍스트는 앞에, 변동 데이터는 뒤에 두고, 도구와 설정을 안정적으로 유지해야 합니다. 최적화 전후는 예상치가 아니라 cached_tokens, 캐시 쓰기 토큰, 총비용, 첫 응답 시간, 작업 성공률로 비교하세요.


출처 및 확인일