Reasonix 独特缓存命中机制:为什么它说自己为 DeepSeek 而生
参考文章最值得保留的不是版本号和 GitHub 数据,而是技术架构:DeepSeek 的缓存规则要求 prefix 稳定,Reasonix 把这个限制变成 agent loop 的第一约束。
核心结论
- DeepSeek 上下文缓存依赖已经持久化并且完整匹配的 prefix。
- Reasonix 的写法应该围绕 immutable prefix、append-only log、volatile scratch 这三个区域展开。
- 低频 compaction 是少数主动改变 prefix 的时刻,不应该写成每轮都重排上下文。
- 缓存命中应看 `prompt_cache_hit_tokens` / `prompt_cache_miss_tokens`,不要承诺所有场景固定命中率。
DeepSeek 缓存真正要求什么
DeepSeek 的 Context Caching 不是普通浏览器缓存。后续请求只有完整复用已经持久化的 prefix 单元,才可能命中缓存。
所以 Reasonix 的文章不能只说“省钱”。它要解释为什么 system prompt、tool specs、历史消息顺序、临时计划状态都会影响 prefix 是否稳定。
- 稳定 prefix:系统提示和工具定义不要每轮乱变。
- 只追加日志:历史按顺序增长,避免重排和改写。
- 临时 scratch:每轮计划或思考不要直接污染长期 prompt。
Cache-First Loop 怎么写
可以借鉴参考文里的三段式架构:Immutable Prefix、Append-Only Log、Volatile Scratch。它很适合向读者解释 Reasonix 为什么不是普通套壳 CLI。
但不要把参考文里的版本表、stars 或下载量搬进正文。这里要讲的是机制:prefix 一旦稳定,就尽量让后续会话沿着它继续增长。
- Immutable Prefix:固定指令、工具形状和少量稳定上下文。
- Append-Only Log:assistant 和 tool 结果按时间追加。
- Volatile Scratch:临时计划被重置或蒸馏后才进入长期上下文。
低频压缩,而不是每轮重写
长任务一定会遇到上下文窗口问题。Reasonix 的正确叙述是低频 compaction:接近上下文限制时,把较早的中段历史压缩成摘要,保留近期回合,再继续工作。
这意味着 compaction 是一个明确的 cache reset point。它应该少发生、可解释、可复盘,而不是每一轮都改写前文。
命中率要看 usage 字段
DeepSeek API 会在 usage 里给出 `prompt_cache_hit_tokens` 和 `prompt_cache_miss_tokens`。文章可以教用户看这两个字段,而不是写一个适用于所有场景的固定百分比。
这比喊口号更可信:Reasonix 的竞争力不是某个永久不变的数字,而是它把 cache hit 当成架构约束来设计。
来源
到社区继续讨论这篇文章
文章后续问题统一进入站内问答社区,不再依赖外部评论串。