2026. 9. 8. 14:18 · Tech Note :

GPT 6 Astra 효율적으로 사용하는 활용 가이드, 토큰 절약

프롬프트 캐싱과 5단계 추론 강도로 비용·속도·품질을 조절하는 방법

 

- 참고 자료

프롬포트 캐싱

 

Prompt caching | OpenAI API

Learn how prompt caching reduces latency and cost for long prompts in OpenAI's API.

developers.openai.com

추론 모델

 

Reasoning models | OpenAI API

Learn how to use OpenAI reasoning models in the Responses API, choose a reasoning effort, manage reasoning tokens, and keep reasoning state across turns.

developers.openai.com

 

핵심 요약

GPT-6 Astra를 효율적으로 사용하는 방법은 간단하다.

  1. 반복되는 긴 지침은 프롬프트 캐싱으로 재사용한다.
  2. 요청 난이도에 맞춰 low부터 max까지 추론 강도를 선택한다.
  3. 대부분의 요청은 low 또는 medium으로 시작한다.
  4. 어렵거나 실패 위험이 큰 작업에만 high, xhigh, max를 사용한다.
  5. 품질뿐 아니라 캐시 적중률, 비용, 응답 시간을 함께 측정한다.

GPT-6 Astra가 low, medium, high, xhigh, max를 지원하는 것은 공식 기능이다.

이 문서의 업무 분류 방식은 팀에서 적용할 수 있도록 만든 권장 운영 방법이다.


1. 프롬프트 캐싱이란?

같은 내용으로 시작하는 긴 프롬프트를 반복 호출할 때, 이전에 처리한 부분을 재사용하는 기능이다.

예를 들어 모든 요청에 다음 내용을 반복해서 보낸다고 가정하자.

  • 서비스 운영 규칙
  • 답변 형식
  • 공통 참고자료
  • 예시
  • 도구 정의

이 내용을 프롬프트 앞부분에 고정하면 다음 요청부터 캐시로 재사용할 수 있다.

정확히 무엇이 절약되는가?

캐싱은 입력 토큰 자체를 없애는 기능이 아니다. 캐시로 읽은 토큰도 API 사용량에 표시된다. 대신 해당 토큰의 비용과 처리시간을 줄인다.

GPT-6 Astra의 현재 입력 가격은 다음과 같다.

구분 100만 토큰당 가격

일반 입력 $10.00
캐시 읽기 $1.00
캐시 쓰기 $12.50

첫 캐시 쓰기는 일반 입력보다 25% 비싸지만, 이후 읽기는 일반 입력의 10% 가격이다. 따라서 같은 긴 prefix를 반복해서 사용하는 업무에 효과가 크다.

가격은 변경될 수 있으므로 적용 전에 GPT-6 Astra 공식 모델 페이지를 확인한다.


2. Astra의 5단계 추론 강도

reasoning.effort는 모델이 문제를 해결할 때 사용할 추론 강도를 조절한다.

단계 설정 사용하기 좋은 작업

1 low 추출, 분류, 짧은 요약, 단순 코드 수정
2 medium 일반 분석, 코드 작성, 코드 리뷰
3 high 복잡한 디버깅, 설계, 여러 조건의 분석
4 xhigh 어려운 장기 작업, 높은 정확도가 필요한 작업
5 max 최고 난도 문제, 실패 비용이 큰 최종 검토

권장 시작점은 다음과 같다.

  • 명확하고 단순한 요청: low
  • 일반적인 개발 업무: medium
  • 복잡하거나 실패 위험이 큰 업무: high
  • 매우 어려운 업무: xhigh
  • 다른 단계로 해결되지 않거나 최종 검증이 중요한 업무: max

모든 요청에 max를 사용하면 비용과 응답 시간이 불필요하게 증가할 수 있다. 또한 GPT-6 Astra는 none을 지원하지 않는다.


3. 가장 단순한 라우팅 방법

처음부터 복잡한 자동 분류기를 만들 필요는 없다. 업무 종류별로 기본값을 정하는 것부터 시작한다.

type ReasoningEffort = "low" | "medium" | "high" | "xhigh" | "max";

type WorkType =
  | "extract"
  | "summarize"
  | "code"
  | "debug"
  | "architecture"
  | "critical-review";

function selectEffort(workType: WorkType): ReasoningEffort {
  const routes: Record<WorkType, ReasoningEffort> = {
    extract: "low",
    summarize: "low",
    code: "medium",
    debug: "high",
    architecture: "xhigh",
    "critical-review": "max",
  };

  return routes[workType];
}

운영하면서 실제 품질과 비용을 보고 업무별 기본값을 조정한다.

낮은 단계에서 결과 검증에 실패하면 한 단계 높여 다시 실행할 수 있지만, 최대 재시도 횟수는 제한해야 한다.


4. 캐시가 잘 작동하는 프롬프트 구조

캐시는 프롬프트의 처음부터 동일한 부분을 찾는다. 따라서 고정 내용은 앞에, 매번 바뀌는 내용은 뒤에 둔다.

[고정 영역]
- 개발자 지침
- 출력 규칙
- 공통 참고자료와 예시
- 도구 정의

--- 캐시 경계 ---

[동적 영역]
- 사용자 정보
- 검색 결과
- 현재 요청
- 날짜와 요청 ID

다음 항목을 고정 영역 중간에서 자주 바꾸면 캐시 적중률이 낮아질 수 있다.

  • 모델과 추론 강도
  • 개발자 지침
  • 도구 이름, 설명, 스키마와 순서
  • 출력 형식과 Structured Output 스키마
  • text.verbosity

GPT-5.6 이상 모델은 캐시 가능한 prefix가 최소 1,024토큰이어야 한다.

짧은 프롬프트나 한 번만 사용하는 프롬프트는 캐싱 효과가 거의 없다.


5. 바로 적용할 수 있는 TypeScript 예제

OpenAI SDK를 설치한다.

npm install openai

API 키는 소스 코드에 넣지 않고 OPENAI_API_KEY 환경 변수로 설정한다.

import OpenAI from "openai";

const client = new OpenAI();

type ReasoningEffort = "low" | "medium" | "high" | "xhigh" | "max";

// 실제 환경에서는 반복해서 사용하는 규칙, 참고자료, 예시를 넣는다.
// 캐싱하려면 전체 고정 prefix가 최소 1,024토큰인지 확인한다.
const STATIC_INSTRUCTIONS = `
당신은 코드 리뷰 도우미다.
정확성, 보안, 성능과 유지보수성을 검토한다.
문제가 있으면 근거, 영향과 수정 방법을 함께 제시한다.
근거가 부족한 내용은 추측이라고 표시한다.
`;

export async function reviewCode(
  code: string,
  effort: ReasoningEffort = "medium",
) {
  const response = await client.responses.create({
    model: "gpt-6-astra",
    reasoning: { effort },
    text: { verbosity: "low" },

    // 같은 업무와 프롬프트 버전에는 같은 키를 사용한다.
    prompt_cache_key: `code-review:v1:astra-${effort}`,
    prompt_cache_options: {
      mode: "explicit",
      ttl: "30m",
    },

    input: [
      {
        role: "developer",
        content: [
          {
            type: "input_text",
            text: STATIC_INSTRUCTIONS,
            prompt_cache_breakpoint: { mode: "explicit" },
          },
        ],
      },
      {
        role: "user",
        content: `다음 코드를 검토해줘:\n\n${code}`,
      },
    ],
  });

  return {
    text: response.output_text,
    usage: response.usage,
  };
}

주요 설정

설정 의미

model GPT-6 Astra 선택
reasoning.effort 요청 난이도에 맞는 추론 강도
text.verbosity 최종 답변 길이 조절
prompt_cache_key 같은 업무의 요청을 묶는 안정적인 키
prompt_cache_options.ttl 현재 지원되는 캐시 최소 유지시간 30m
prompt_cache_breakpoint 고정 영역이 끝나는 위치 표시

명시적 경계가 필요하지 않은 단순한 업무는 mode: "implicit"으로 시작해도 된다.

이 경우 OpenAI가 캐시 경계를 자동으로 선택한다.


6. 캐시 적용 여부 확인

응답의 usage.input_tokens_details를 확인한다.

const details = response.usage?.input_tokens_details;

console.log({
  inputTokens: response.usage?.input_tokens,
  cachedTokens: details?.cached_tokens,
  cacheWriteTokens: details?.cache_write_tokens,
  outputTokens: response.usage?.output_tokens,
});
  • 첫 요청에서는 cache_write_tokens가 발생할 수 있다.
  • 같은 prefix를 다시 사용하면 cached_tokens가 증가해야 한다.
  • cached_tokens가 계속 0이면 고정 prefix 길이와 변경되는 설정을 확인한다.

캐시 적중률만 보지 말고 다음 항목을 함께 기록한다.

  • 선택한 reasoning.effort
  • 전체 비용
  • 응답 시간
  • 결과 검증 성공 여부
  • 상위 단계로 재시도한 횟수

가장 중요한 지표는 성공한 작업 한 건당 비용이다.


7. 권장 적용 순서

1단계: 현재 상태 측정

대표 요청을 모아 품질, 비용과 응답 시간을 기록한다.

2단계: 캐싱 적용

고정 내용을 앞에 배치하고 prompt_cache_key와 캐시 옵션을 추가한다. 두 번째 요청부터 cached_tokens가 발생하는지 확인한다.

3단계: 추론 강도 분리

기본값을 medium으로 시작한다. 평가를 통과한 단순 업무만 low로 낮추고, 어려운 업무만 high 이상으로 올린다.

4단계: 운영 데이터로 조정

업무별 품질과 성공 비용을 비교해 라우팅 기준을 수정한다. 변경 전후를 같은 평가 요청으로 비교한다.


8. 꼭 피해야 할 실수

  • 모든 요청에 max를 사용한다.
  • 날짜, 사용자 ID 등 매번 바뀌는 값을 프롬프트 앞에 둔다.
  • 도구 정의나 순서를 요청마다 바꾼다.
  • 재사용하지 않는 짧은 프롬프트까지 캐싱한다.
  • 캐싱이 실제 입력 토큰 수를 없앤다고 생각한다.
  • cached_tokens만 보고 전체 비용이 줄었다고 판단한다.
  • 출력 길이를 관리하지 않는다. Astra는 출력 단가도 높으므로 text.verbosity를 함께 설정한다.

대화 중 effort를 변경하면서 캐시를 유지해야 하는 고급 사용 사례에는 Astra의 configuration_update를 사용할 수 있다. 현재 Standard·단일 에이전트 모드 등의 제한이 있으므로 Reasoning models 공식 문서의 최신 조건을 확인한다.


9. 최종 체크리스트

  • Responses API와 gpt-6-astra를 사용한다.
  • 대부분의 요청은 low 또는 medium으로 시작한다.
  • 고정 내용을 프롬프트 앞에 배치했다.
  • 동적 내용을 캐시 경계 뒤에 배치했다.
  • 고정 prefix가 최소 1,024토큰인지 확인했다.
  • 같은 업무에 안정적인 prompt_cache_key를 사용한다.
  • cached_tokens와 cache_write_tokens를 기록한다.
  • 품질, 비용과 응답 시간을 함께 비교한다.
  • max는 꼭 필요한 작업에만 사용한다.

공식 문서

가격, 기능과 API 제한은 변경될 수 있다. 운영에 적용하기 전에 공식 OpenAI 문서를 다시 확인한다.