프롬프트 캐시 경계를 설계해 에이전트 반복 호출 비용 줄이기
프롬프트 캐시의 접두 일치 조건을 활용해 고정 블록과 가변 구간을 분리하고, 적중률·세션 수명·무효화를 운영하는 방법
2026-09-05 · 최초 발행 2026-09-04
Fable 5.1과 Mythos 5.1은 과학 벤치마크 2배 개선과 함께 캐시 읽기 비용 75% 인하를 제시했다. 장기 컨텍스트 에이전트에서는 이제 입력 토큰을 무작정 덜어내는 것보다, 반복되는 내용을 어느 경계까지 캐시에 고정할지 결정하는 일이 원가 설계의 중심이 된다.
캐시 적중은 자동으로 만들어지지 않는다. 프롬프트 앞부분이 한 글자만 달라져도 재사용이 무효가 될 수 있다. 타임스탬프나 세션 식별자를 앞에 두는 방식은 호출마다 미스를 만드는 전형적인 원인이다. 한 과업 안에서 수십 번 모델을 호출하는 에이전트라면 이 미스가 그대로 누적된다.
반복되는 접두와 달라지는 정보를 분리한다
역할 진술, 조직 규약, 도구 정의, 안전 지침처럼 요청마다 바뀌지 않는 내용은 프롬프트 앞쪽의 고정 접두 블록으로 모은다. 이 블록에는 자주 수정되는 항목을 섞지 않아야 한다. 일부 문구가 달라지는 것만으로도 접두 전체의 재사용이 사라질 수 있기 때문이다.
반대로 사용자 입력, 조회 결과, 현재 시각, 세션 상태는 캐시 경계 뒤에 둔다. 문맥상 자연스럽다는 이유만으로 동적 값을 앞쪽에 배치하면 비용 구조가 달라진다. 프롬프트 안에서 항목을 놓는 순서 자체가 원가를 정하는 설계 변수다.
접두와 가변 구간의 사이에는 경계를 명시적으로 선언하고, 경계 이전 변경을 통제 대상으로 둔다. 경계가 문서와 구현에서 드러나지 않으면 누군가 앞부분에 한 줄을 추가하는 순간 캐시 재사용이 깨질 수 있다.
적중률을 운영 지표로 다루는 방식
캐시 재사용이 가능한 기간과 세션을 폐기할 조건을 먼저 정한다. 세션을 무기한 유지하면 캐시 효율은 높일 수 있지만, 오래된 정보와 누적 오류도 함께 남는다. 이력 길이가 토큰 예산을 넘는 시점에는 압축을 적용하되, 압축 결과는 접두가 아니라 가변 구간에 반영해야 한다. 압축이 접두 변경으로 이어지면 비용 절감과 이력 관리가 서로 상쇄된다.
호출 단위로 캐시 읽기 토큰과 신규 입력 토큰을 분리해 수집한다. 총 토큰만 보면 캐시 읽기와 쓰기가 섞여 절감이 일어났는지 판별하기 어렵다. 적중률이 목표치보다 낮아졌을 때는 원인 후보와 함께 경보를 남겨야 한다. 월말 청구서를 확인하는 방식으로는 미스가 발생한 시점의 손실을 추적하기 어렵다.
접두 블록의 해시를 기록하고, 변경이 생기면 배포 이력과 연결해 경보를 남긴다. 오탈자처럼 무해해 보이는 수정도 재사용 비용을 되돌릴 수 있다.
배포 전에 고정할 운영 규칙
최근 호출 로그에서 매번 반복 전송되는 구간을 찾아낸다. 프롬프트 문서만 검토하지 말고 실제로 전송된 페이로드를 기준으로 확인해야 한다. 확인한 반복 구간은 내용뿐 아니라 순서까지 고정한 접두 블록으로 확정하고, 변경에는 승인을 요구한다. 내용이 같더라도 순서가 달라지면 접두 일치가 깨진다.
시각, 식별자, 난수, 사용자 정보는 모두 경계 이후에 주입하도록 규칙으로 고정한다. 편의상 만든 예외 하나가 전체 적중률을 무너뜨릴 수 있다.
업무 유형별로 달성 가능한 적중률 목표와 미달 시 대응 담당을 정한다. 탐색성 대화와 정형 처리에는 같은 목표를 적용하기 어렵다. 대시보드에서는 기능별 캐시 읽기 토큰, 신규 입력 토큰, 출력 토큰, 호출 수를 구분해 보여줘야 한다. 총액만으로는 어느 구간을 손봐야 할지 판단할 수 없다.
기능 추가와 프롬프트 변경이 쌓이면 접두 구성도 다시 검토한다. 초기 구조를 영구적인 것으로 두면 기능 변화에 맞춰 접두에 포함돼야 할 내용이 달라지는 문제를 놓치게 된다. 접두 블록 정의, 경계 선언 규칙, 동적 값 주입 위치, 세션 수명 정책은 조직 표준으로 관리할 수 있다. 기능별 적중률, 접두 무효화 발생 건수, 캐시 읽기 비중, 호출당 원가도 정기 보고 항목으로 편성한다.
캐시 재사용과 컨텍스트 축소가 다른 지점
| 구분 | 캐시 적중 최적화 | 컨텍스트 축소 |
|---|---|---|
| 절감 폭 | 반복 구간에서 큼 | 전 구간에서 중간 |
| 정보 손실 | 없음 | 발생 |
| 구현 방식 | 배치 재설계 | 내용 선별 |
| 품질 영향 | 중립 | 판단 근거 감소 |
| 유지 부담 | 접두 통제 필요 | 선별 규칙 유지 |
| 적용 조건 | 반복 호출 필요 | 조건 없음 |
캐시 적중 최적화는 내용을 줄이지 않고 배치만 바꾸므로 판단 근거가 줄지 않는다. 반복 호출이 많은 에이전트에서는 절감 폭이 크고 단가 인하도 청구서에 반영된다. 다만 접두 통제가 필요하며, 반복 호출이 적은 워크로드에서는 이득이 없고 접두가 커질수록 첫 호출의 쓰기 비용이 늘어난다.
컨텍스트 축소는 반복 여부와 관계없이 모든 호출의 입력을 줄이고 지연도 함께 개선한다. 구현은 단순하지만, 무엇을 제거할지 결정하는 과정에서 필요한 근거가 사라져 품질이 떨어질 수 있다. 선별 규칙의 유지 부담도 계속되며, 잘못 제거한 정보로 생긴 실패는 원인을 찾기 어렵다. 반복 구간은 캐시 경계 안에 고정하고 가변 구간에만 축소를 적용하는 구성이 절감과 품질을 함께 다룬다.
고정 접두를 강제하면 호출마다 동일한 접두가 유지돼 적중률과 원가 예측이 안정된다. 무효화 원인도 접두 변경으로 좁혀져 진단이 빠르다. 대신 기능별 특수 지시를 접두에 넣기 어렵고, 변경 승인 때문에 대응 속도가 떨어질 수 있으며 사용하지 않는 지시도 첫 호출에 포함된다. 접두는 조직 공통 블록으로 고정하고 기능별 지시는 경계 뒤에서 조립하는 계층 구조가 예측성과 유연성 사이의 절충점이 된다.
장기 세션은 캐시가 유지되는 동안 반복 읽기 단가를 적용할 수 있고 이전 맥락을 다시 주입할 필요가 없어 호출 수도 줄인다. 그러나 누적 오류와 낡은 정보가 재사용돼 상태 오염이 진행될 수 있으며, 이력이 길어질수록 토큰 예산을 잠식하고 오염 시점도 찾기 어렵다. 신규 세션은 깨끗한 상태에서 시작해 오류 전파를 막고 문제 재현을 단순하게 하지만, 접두 쓰기 비용을 매번 부담하고 맥락 재주입을 위한 추가 호출이 필요하다. 과업 단위로 세션을 끊되 세션 사이에서도 접두 블록은 동일하게 유지하는 방식이 오염과 원가를 함께 관리한다.
비용·성능·용량 관리에 연결되는 항목
캐시 읽기 비중과 호출당 원가를 추적하는 일은 IT 원가 산정과 배부 활동에 대응한다. 적중률 목표와 미스 경보는 예산 통제 및 편차 관리 체계로 볼 수 있다.
접두 고정과 가변 구간의 후방 배치는 반복 요청의 응답 특성을 개선하는 설계 조정이다. 이력 압축 시점은 처리량과 응답 시간 사이에서 절충해야 하는 대상이다. 토큰 예산과 이력 길이 기준은 자원 사용량의 상한을 관리하는 기준이 되고, 세션 수명 정책은 자원 점유 기간을 통제하는 활동이 된다.
캐시 효율이 설계 검토 항목이 되는 흐름
캐시 친화적인 프롬프트 배치는 원가 설계의 기본 요건으로 자리 잡고 설계 검토 항목에 편입되는 방향이다. 적중률은 토큰 사용량과 나란히 표준 운영 지표로 보고되고, 접두 블록은 조직 공통 자산으로 관리되며 변경에는 승인 절차가 붙는 흐름이 이어질 수 있다.
세션 수명 정책과 상태 오염 관리 역시 캐시 효율과 분리된 문제가 아니다. 재사용으로 얻는 비용 효율을 유지하면서도 오래된 맥락과 누적 오류를 통제하는 운영 체계가 함께 필요하다.