@tiyirt/dsh-prompt-order-fix
v0.1.0 · 2 天前发布
Deterministic system-prompt section ordering for DeepSeek Harness — fixes KV-cache invalidation from unstable same-order section ordering across session resume. / 确定性 system-prompt section 排序:修复会话恢复时同 order section 排序漂移导致的 KV 缓存断层。
README
@tiyirt/dsh-prompt-order-fix
DeepSeek Harness 确定性 system-prompt section 排序修复插件。
修复一个真实 bug:DSH 会话恢复(resume / 重启)后,system prompt 的 section 排序
不稳定,导致 KV 缓存命中率从 ~99% 暴跌到 ~1%。
问题根因
官方 @deepseek-ai/dsh-system-prompt 的 assemble() 用稳定排序:
js
sections.sort((a, b) => a.order - b.order)
稳定排序意味着:两个 order 相同的 section,按注册(插入)顺序排队。
而注册顺序跨 resume/重启不稳定——host 层插件与 preset 层插件的挂载顺序可能
不同。实测冲突:
| section | 来源插件 | order |
|---|---|---|
| tool:workflow(Use the workflow tool ONLY...) | @deepseek-ai/dsh-tool-workflow | 115 |
| tool:cordis(# Dynamic Cordis Plugins) | @deepseek-ai/dsh-tool-cordis | 115 |
两者都是 order: 115,重启后可能互换位置 → system prompt 前缀字节变化 →
provider KV 缓存 key 全部失效 → 整段历史全量重算(input 高达数十万 token,
命中率 1% 上下)。
修复方式
本包继承官方 SystemPrompt 并覆写 `a
版本兼容矩阵
| DSH 版本 | 状态 | 说明 |
|---|---|---|
dsh@0.1.0-rc.6 | ✅ 兼容 | cordis patch ✅ |
dsh@0.1.0 | ✅ 兼容 | 标准 patch ✅ |
dsh@0.2.0 | ⚠️ 待验证 | 待实测(API 可能在变) |
dsh@0.3.0+ | ❓ 未知 | 尚未发布 |
💡 兼容矩阵每周末自动跑实测,欢迎 PR 修正
元数据
- License
- MIT
- npm
- @tiyirt/dsh-prompt-order-fix
- Repo
- —
- Engines
{}- Weekly DL
- 0
- Monthly DL
- 0
- dsh.bundle
{"bundle":{"patch":"./cordis.patch.yml"}}