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。觀察兩種注入方式的快取差異:

命中率:
KV Cache 的規則很簡單:前綴一樣就命中。所以,別動前綴。把所有可能變化的內容(Skill、上下文、時間)放到 System Prompt 之後,讓前綴永遠穩定。