GPT-6 API 운영 가이드: 모델 라우팅·캐싱·컴팩션으로 비용을 줄이는 방법
OpenAI의 GPT-6 모델 가이드는 화려한 데모보다 운영팀이 봐야 할 내용이 많다. 핵심은 모델을 하나로 고정하지 말고, 작업 난이도와 실패 비용에 따라 GPT-6 Astra, GPT-6.1 Sol, GPT-6 Luna를 나눠 쓰라는 것이다. 여기에 prompt caching, compaction, reasoning effort, async tool calling, delegation 같은 운영 기능을 붙이면 비용과 지연시간을 동시에 줄일 수 있다.
실무에서 문제는 모델 성능이 아니라 운영 방식이다. 같은 모델을 써도 프롬프트 구조가 매번 바뀌면 캐시가 깨지고, 긴 대화를 그대로 유지하면 컨텍스트 비용이 커지며, 간단한 추출 작업까지 고급 reasoning으로 돌리면 응답이 느려진다. 이 글은 GPT-6 계열을 실제 서비스에 넣을 때 먼저 설계해야 할 기준을 정리한다.
모델 선택을 작업 단위로 나누기
OpenAI 가이드는 GPT-6 Astra를 가장 어려운 reasoning 작업, GPT-6.1 Sol을 복잡한 코딩·리서치·computer use, GPT-6 Luna를 반복적이고 목표가 명확한 대량 작업에 맞춘다. 이 구분은 단순한 제품명 비교가 아니다. 서비스 안의 작업 큐를 어떻게 나눌지 정하는 기준이다.
예를 들어 고객 문의 자동 처리 시스템을 만든다고 하자. 문의 분류, 개인정보 포함 여부 검사, 요약, 응답 초안 작성, 환불 가능성 판단, 실제 환불 실행은 서로 다른 작업이다. 분류와 요약은 Luna급으로 시작할 수 있다. 환불 정책 판단은 Sol 또는 더 높은 reasoning이 필요할 수 있다. 실제 환불 실행은 모델이 아니라 승인된 백엔드 API와 권한 정책이 담당해야 한다.
코딩 에이전트도 마찬가지다. 파일 목록 파악, 관련 테스트 찾기, 변경 영향 요약은 낮은 비용 모델이나 낮은 reasoning으로 충분할 수 있다. 복잡한 버그 원인 분석, 마이그레이션 전략, 보안 영향 검토는 더 강한 모델로 올린다. 한 세션 안에서도 단계별로 모델과 reasoning effort를 바꿀 수 있어야 비용이 통제된다.
reasoning effort를 고정하지 말 것
많은 팀이 “좋은 모델을 high reasoning으로 고정”하는 실수를 한다. OpenAI 가이드는 routine task에는 low, 판단이 필요한 계획이나 비교에는 medium, 어려운 디버깅과 깊은 분석에는 high를 권한다. extra high나 max는 high로 부족할 때만 실험하고, 개선폭이 비용과 시간을 정당화할 때 유지해야 한다.
운영 기준은 간단하게 시작할 수 있다. 스키마 추출, 라벨 분류, 짧은 문장 수정은 low다. 기능 설계, PR 리뷰 요약, 장애 원인 후보 비교는 medium이다. 재현 어려운 버그 분석, 동시성 문제, 보안 취약점 검토는 high다. 모델이 실패했을 때만 자동으로 한 단계 올리는 fallback을 둔다.
중요한 것은 “성공한 작업까지 매번 high로 돌리지 않는 것”이다. 성공률이 이미 높은 작업은 reasoning을 낮추고, 실패 샘플만 따로 모아 프롬프트나 라우팅을 고친다. 평균 품질을 올리겠다고 전체 요청 비용을 올리는 방식은 오래 버티기 어렵다.
prompt caching 설계
OpenAI는 prompt caching으로 반복 작업의 cached input token 비용을 크게 낮출 수 있다고 설명한다. 캐시를 잘 쓰려면 프롬프트 앞부분이 안정적이어야 한다. 시스템 지시, 출력 형식, 도메인 규칙, 예시, 도구 정의처럼 자주 바뀌지 않는 내용을 앞에 두고, 사용자별 입력이나 요청별 데이터는 뒤에 둔다.
나쁜 예는 매 요청마다 날짜, 사용자명, 랜덤 trace id, 동적 상태를 시스템 프롬프트 앞쪽에 넣는 것이다. 이렇게 하면 같은 규칙을 써도 캐시가 맞지 않는다. 좋은 예는 “역할, 정책, 출력 스키마, 예시”를 고정 블록으로 두고, 마지막에 <task_input>만 바꾸는 방식이다.
캐시가 실제로 적용되는지는 대시보드와 로그로 확인해야 한다. 캐시 hit rate를 보지 않고 “캐시를 쓰고 있다”고 믿으면 안 된다. 프롬프트 버전이 바뀔 때마다 hit rate가 떨어질 수 있으므로, 배포 후 비용이 갑자기 오르면 프롬프트 diff부터 확인한다.
compaction으로 긴 작업 유지하기
장시간 에이전트 작업은 컨텍스트가 계속 커진다. 모든 로그, 도구 결과, 중간 추론, 실패한 시도를 그대로 남기면 비용과 지연시간이 커지고, 모델도 중요한 상태를 놓칠 수 있다. compaction은 긴 대화에서 계속 필요한 상태만 압축해 다음 단계로 넘기는 운영 기법이다.
좋은 compaction 결과에는 최소한 다섯 가지가 들어가야 한다. 첫째, 목표와 범위. 둘째, 이미 확인한 사실. 셋째, 변경한 파일이나 실행한 명령. 넷째, 실패와 원인 후보. 다섯째, 다음 액션과 승인 필요 여부. “지금까지 대화를 요약해 줘”처럼 느슨하게 맡기면 중요한 검증 결과가 빠질 수 있다.
컴팩션은 소형 모델로 처리하고, 중요한 결정 지점만 상위 모델로 검토하게 만들 수도 있다. 다만 보안상 민감한 로그나 고객 데이터가 포함된 경우, 컴팩션 전 마스킹이 필요하다. 요약은 원문을 줄이는 작업이지 민감정보 처리 면제가 아니다.
async tool calling과 delegation 사용 기준
OpenAI 가이드는 long-running work에서 async tool calling과 delegation을 언급한다. 테스트 실행, 빌드, 외부 검색, 대용량 파일 분석처럼 시간이 걸리는 도구가 있을 때 모델이 독립 작업을 계속할 수 있게 하는 방식이다. 하지만 의존성이 있는 작업까지 병렬화하면 잘못된 결론이 나온다.
예를 들어 테스트 결과를 기다리는 동안 문서 업데이트 초안이나 영향 범위 분석을 진행하는 것은 안전하다. 반대로 테스트 결과가 나와야 원인을 판단할 수 있는데 그 전에 수정 방향을 확정하면 위험하다. async는 “기다리는 동안 할 수 있는 독립 작업”에만 써야 한다.
delegation도 마찬가지다. 서로 독립적인 코드 영역 조사, 경쟁 라이브러리 비교, 로그 패턴 분류처럼 병렬 가능한 작업에 적합하다. 최종 결정은 하나의 조정 단계에서 합쳐야 한다. 서브에이전트 결과를 그대로 사용자에게 나열하면 중복과 충돌이 생긴다.
실행 체크리스트
- 서비스 안의 AI 작업을 분류, 요약, 판단, 실행, 검증으로 나눈다.
- 각 작업에 기본 모델과 fallback 모델을 지정한다.
- routine task는 low reasoning으로 시작하고 실패 시에만 올린다.
- 시스템 지시, 출력 스키마, 예시는 프롬프트 앞쪽에 고정해 캐시 hit rate를 높인다.
- 요청별 동적 데이터는 프롬프트 뒤쪽에 둔다.
- 장시간 작업에는 목표, 결정, 변경, 실패, 다음 액션 중심의 compaction 포맷을 둔다.
- async tool calling은 독립 작업에만 쓰고, 의존 작업은 결과를 기다린다.
- 비용 리포트는 총 토큰보다 “성공한 작업 1건당 비용”으로 본다.