主题
提示缓存优化
Shuro 完整透传 Anthropic Prompt Cache 协议,命中后 token 价格降到 1/10(缓存读取倍率 0.1)。
缓存写入不免费
部分 Claude 型号的缓存写入倍率为 1.25——即写入缓存比普通输入贵 25%。缓存只有被后续请求命中才划算。
命中条件(任一不满足就 miss)
- 前缀字节级精确匹配 —— system prompt + tools + messages 从第一个字节开始必须完全一致
- TTL 内:默认 5 分钟(可选 1 小时变体成本翻倍)
- 同一模型
- 够大:Sonnet/Opus ≥ 1024 tokens,Haiku ≥ 2048 tokens
- 同一缓存断点:
cache_control标记位置不变 - 同一路由集群 —— 部分中转平台的痛点(若上游为多账号号池,每个账号缓存独立;Shuro 的上游架构未公开,待验证)
实测命中率
待验证(TODO/VERIFY)
以下命中率数据基于旧平台实测(2026-06),尚未在 Shuro 复测,仅供参考。
| 场景 | 官方 | 中转(旧平台实测) |
|---|---|---|
| 长编码会话(24h+,持续编辑) | 95-99% | 70-90% |
| 中等会话(数小时) | 85-92% | 50-75% |
| 短咨询(密集 15min) | 70-80% | 40-65% |
| 间歇请求(>5min 间隔) | <40% | <30% |
中转命中率通常低于官方直连;具体到 Shuro 的表现建议自行实测(见下文)。
测试你的命中率
Claude Code 交互模式里:
/usage显示 cache_read / cache_write / input_tokens 三个字段。命中率:
hit_rate = cache_read / (cache_read + cache_creation + input)字段含义
json
"usage": {
"input_tokens": 6, // 新输入(没走缓存)
"cache_creation_input_tokens": 1095, // 这次写入缓存
"cache_read_input_tokens": 159903, // 这次命中读取
"output_tokens": 4712
}中转商如果没透传这些字段,说明 cache 机制可能被破坏。检测方法:
bash
curl -sS -X POST 'https://shuro.vip/v1/messages' \
-H 'content-type: application/json' \
-H 'anthropic-version: 2023-06-01' \
-H 'x-api-key: <key>' \
-d '{...}' | jq '.usage'返回的 usage 字段里应该有完整的 cache_* 系列。
最大化命中率的 5 个技巧
1. 保持系统提示稳定
不要每次请求改一个字符的 system prompt(比如不要加时间戳)。
2. 利用 cache_control 标记
如果你直接调 API:
json
{
"model": "claude-opus-4-7",
"system": [
{
"type": "text",
"text": "<long system prompt>",
"cache_control": {"type": "ephemeral"}
}
],
"messages": [...]
}Claude Code 自动加这个标记,手写 SDK 时要主动加。
3. 用长 TTL(仅必要时)
json
"cache_control": {"type": "ephemeral", "ttl": "1h"}成本翻倍但 TTL 延长到 1 小时。适合频繁 build 同一项目的场景。
4. 减少跨会话切换
频繁开新会话会触发 cache_creation 重新写。长会话内连续编码命中率最高。
5. 用 /compact 而非 /clear
/compact 压缩历史保留 cache,/clear 完全清空触发 cache miss。
中转命中率低的常见原因
待验证(TODO/VERIFY)
以下内容是对中转行业常见「号池架构」的一般性分析,基于旧平台实测(2026-06)总结;Shuro 的实际上游架构与路由策略未公开,尚未复测,仅供参考。
不少中转平台使用号池架构(多个上游账号轮询/粘性路由):
你 → 网关 → [账号A] [账号B] [账号C] [账号D]
↑ ↑ ↑ ↑
独立 独立 独立 独立
cache cache cache cache每个账号是独立的 Anthropic Organization → 缓存命名空间隔离 → 同样的 prompt 不同账号互相看不见。
号池规模和路由策略决定命中率:
| 路由策略 | 命中率上限 |
|---|---|
| 纯轮询,N=10 号池 | ≤10% |
| 粘性 session(按用户哈希) | 60-90% |
| Prefix hash 路由(高级) | 接近官方 |
你能做的优化
作为客户能影响命中率的部分有限,主要靠:
- 保持长会话 —— 让粘性路由继续命中同账号
- 不要短时间频繁切 Provider —— 每次切换会丢失上下文
- 国内非高峰时段使用 —— 号池压力小,路由更稳定
- 如果命中率长期 <30%,换中转商
跟官方对比
如果你买了 Anthropic Max 20x 订阅,单 org 缓存独占,命中率天然 90%+。中转适合:
- 没 Max 订阅的轻度用户
- Max 用完了的备用
- 出差/海外网络无法直连官方时
- 需要 GPT 等非 Claude 模型
不适合:
- 重度长会话编码(缓存收益最大化的场景,官方更划算)
