Prompt Harness
프롬프트와 캐시의 미묘한 관계
KV Cache의 규칙은 매우 단순합니다: 접두사가 완전히 같으면 히트, 한 글자라도 다르면 전부 재계산합니다. 따라서 System Prompt에 동적 콘텐츠를 삽입하면 캐시가 영원히 히트되지 않을 수 있습니다.
지문 변경 = 캐시 무효화
모든 요청마다 시스템은 System Prompt의 지문(hash)을 계산합니다
System: 당신은 어시스턴트입니다. 현재 시간: 14:35:22
→
a3f7c2
MISS
System: 당신은 어시스턴트입니다. 현재 시간: 14:35:23
→
b8e1d9
MISS
System: 당신은 어시스턴트입니다. 현재 시간: 14:35:24
→
c4a2f6
MISS
매 초 시간이 달라짐 → 지문이 달라짐 → 캐시가 영원히 히트되지 않음 → 매번 처음부터 계산 → 비용 두 배.
이것은 타임스탬프만의 문제가 아닙니다: System Prompt에 삽입된 모든 동적 콘텐츠가 동일한 효과를 가져옵니다.
Skill 주입 방식도 캐시에 영향을 미칩니다
Skill을 System에 삽입
[System]
AI 어시스턴트입니다...
[현재 Skill: 콘텐츠 창작]
트리거: 글 써줘...
단계: 1. 요구 사항 확인...
---
[User] 글 한 편 써줘
Skill 전환 시 System 변경 → 캐시 무효화
~20%
Skill을 독립 메시지로 추가
[System]
AI 어시스턴트입니다...
---
[Assistant/Skill 메시지]
현재 Skill: 콘텐츠 창작
단계: 1. 요구 사항 확인...
---
[User] 글 한 편 써줘
System은 절대 변하지 않음 → 접두사 캐시 항상 히트
~90%
시뮬레이션: 10회 요청에 대한 캐시 성능
캐시 히트 시뮬레이터
10회 요청 중 3번 다른 Skill로 전환한다고 가정합니다. 두 가지 주입 방식의 캐시 차이를 관찰해 보세요:
히트율:—
강의 8-3 복습: 동적 타임스탬프가 가장 비싼 안티패턴이라는 것을 이미 다뤘습니다. 이번 강의의 결론은 더 넓습니다: 타임스탬프뿐만 아니라 System Prompt에 동적으로 삽입된 모든 콘텐츠가 캐시 킬러입니다. Skill, 사용자 ID, 세션 마커… 변하는 것이라면 무엇도 접두사에 포함되어서는 안 됩니다.
KV Cache의 규칙은 단순합니다: 접두사가 같으면 히트. 따라서 접두사를 건드리지 마세요. 변할 수 있는 모든 콘텐츠(Skill, 컨텍스트, 시간)를 System Prompt 뒤에 배치하여 접두사를 항상 안정적으로 유지하세요.