# Pi 發布文章探討 Prompt Caching 影響

> 📖 本站完整內容索引（documentation index）：[llms.txt](/llms.txt)

> 原作者：Pi (@pidotdev) · 策展與摘要：EasyVibeCoding · 平台：X (Twitter) · 熱度：🔥 · 日期：2026-07-24

> 原始來源：https://x.com/pidotdev/status/2080254453874127033

## 證據與延伸閱讀

- [Pi團隊發布文章探討Prompt caching影響。](https://earendil.com/posts/prompt-caching/)

## 中文摘要

Pi 發布文章探討 Prompt Caching 影響。

**Prompt Caching 的運作原理與成本**
- 大型語言模型在執行程式開發 Agent 時，多數輸入內容會隨著對話輪次不斷累積並重複發送。當對話長達數萬甚至數十萬個 token 時，重複計算整段 Prompt 會帶來高昂的延遲與成本。
- KV 快取（KV cache）儲存了注意力機制中的 Key 與 Value 陣列，讓模型生成下一個 token 時不需重新計算先前內容。
- 快取命中時，未變動的前綴會以較優惠的快取讀取價格計費；一旦發生快取未命中，提供商必須重新處理整段歷史輸入，導致短請求（如「continue」）的費用暴增。

<video src="https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1784822938842-cs4wxn4k.mp4" poster="https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/451e957795511dff.jpg" autoplay loop muted playsinline preload="metadata" style="max-width:100%;height:auto;display:block;margin:1rem 0"></video>
> Earendil 工程信件中的 Prompt Caching 機制原理與運作方式。

**快取位置與基礎設施挑戰**
- 為了讓快取發揮作用，推論系統通常採用兩種儲存與定址方式：
  1. **工作階段親和性（Session affinity）**：將 KV 快取保留在計算它的 GPU 附近，並將後續請求繞回同一個工作節點，此方式不需額外基礎設施，但會限制排程彈性。
  2. **分散式快取**：將 KV 塊儲存在其他記憶體層級或跨工作節點共享，提升排程靈活性，但需要處理複雜的系統級索引與保留問題。

**工具載入與快取失效的原因**
- 工具定義通常會摺疊至系統 Prompt 內部，新增、移除、修改工具 Schema 或變更序列化順序，都可能導致前綴不匹配，使快取的對話內容失效。
- 為了避免載入工具時清空快取，Pi 針對支援原生延遲工具機制的模型（如 Anthropic 的 deferred 定義與 `tool_reference`，以及 OpenAI 的對應工具搜尋項目）支援了加法式工具載入（additive tool loading），透過 `setActiveTools()` 記錄新增名稱。
- 造成快取效能變差的常見原因還包含：閒置時間超過提供商預設的存活時間（TTL，如 Anthropic 預設的 5 分鐘）、模型或提供商切換、分支導航（如 `/tree`、重捲、fork）、壓縮或手動歷史重寫、動態系統 Prompt 及提供商路由驅逐。

**Pi 的快取可見性與設定**
- Pi 預設維持穩定、偏好附加的對話記錄（transcript），避免不必要地重寫舊內容來破壞快取。
- 互動介面底部會顯示累積快取讀寫量（`R` 與 `W`）以及最新請求的快取命中率（`CH`）。
- 使用者可透過 `/session` 指令檢視完整的快取統計資訊、成本與快取未命中導致的重新計費估算。
- 支援直接 API 的使用者可透過設定 `` PI_CACHE_RETENTION=long `` 來要求較長的保留期限；若要即時得知未命中狀況，可在 `settings.json` 中啟用 `showCacheMissNotices`（或在 `/settings` 中開啟快取未命中通知），以便在發生未命中時收到包含預估重新計費 token 與成本的警告。

## 媒體內容

**Earendil 工程信件中的 Prompt Caching 機制原理與運作方式。**

**影片中的 Prompt 與操作**

操作步驟：

1. （00:00）request 1 顯示完整計算（prefill）的 system 區塊
2. （00:04）request 2 顯示透過 KV reused 重用前綴並僅計算新後綴（reprocessed 4%）

## 標籤

研究論文, LLM, 功能更新, Pi
