# 提示缓存

https://modelportal.ai/docs/prompt-caching?lang=zh

提示缓存让重复的长前缀（系统提示、文档、工具定义）不必每次都按全价计算。命中缓存的 tokens 按缓存读取单价计费，通常比输入单价便宜得多。

## 怎么用

- Anthropic 协议：在要缓存的内容块上加 `"cache_control": {"type": "ephemeral"}`，与官方用法一致。
- OpenAI 与 Gemini 协议：多数上游对足够长的重复前缀自动缓存，不需要额外参数。

```json
{
  "model": "MODEL_ID",
  "max_tokens": 1024,
  "system": [
    {"type": "text", "text": "这里是一段很长的产品手册……", "cache_control": {"type": "ephemeral"}}
  ],
  "messages": [{"role": "user", "content": "退货政策是什么？"}]
}
```

## 平台怎么处理

- 报价是否支持提示缓存看模型详情页的能力标签。不支持缓存的报价照常承接请求，只是不会命中缓存，所以带 `cache_control` 不会让请求失败。
- 缓存在供应商那边，换了报价就要重新建缓存。给多轮对话带上 `X-ModelPortal-Session` 请求头，平台会尽量让同一会话落在同一报价上，见[默认路由规则](/docs/default-routing)。
- `prompt_cache_key` 可以关联到用户，平台在转发前删掉它。
- 用量里的缓存读取、缓存写入分开计价；报价没有单独设缓存单价时按输入单价计费，见[计费](/docs/billing)。
