dsh-cache-miss:DSH 网页插件:缓存未命中时的黄色单行提示

前言

Agent 对话通常是 assistant -> tool -> assistant -> tool 的循环。一轮对话中,第一次模型调用往往是供应商提示缓存过期、需要整段重新 prefill(重建缓存)的时机;同轮后续的调用往往能命中刚重建的缓存。

DSH 自带的 token/缓存统计在输入框下方,产物文件行在轮尾,这两处都无法在 miss 真正发生的位置就地提示。在缓存重建频繁或上下文较长时,这种信息滞后会增加排查成本。

下面介绍 dsh-cache-miss 插件,它能在轮首第一条 assistant 回复正下方,仅当该请求确为缓存未命中时渲染一条黄色单行提示。

这是什么

dsh-cache-miss 是一个 DSH 网页插件,属于“记忆”类别,由开发者 wefio 维护。

该插件旨在解决 Agent 开发中难以即时定位缓存命中率低的问题。它通过在 Web 界面直接展示缓存未命中的详细数据,帮助开发者快速评估上下文管理和缓存配置的效果。

核心功能

该插件主要提供以下能力:

  1. 即时 Miss 提示:在一轮对话的第一条 assistant 回复正下方,仅当该请求确认为缓存未命中时,渲染一条黄色单行提示。
  2. 详细数据展示:提示中包含以下字段:
    • idle:距上一轮结束的空闲时长。
    • re-billed:该轮首次请求未命中缓存的输入 token 数(缩写为 k)。
    • cached:同一 prefill 中命中的缓存部分。
    • ttft:首 token 时延。
  3. Provider 兼容性处理:当 provider 不回 cache 字段时,显示灰色提示“无法确认”。
  4. 纯前端实现:不写入 session log,不修改 DSH 源码,不占用 turn-tail 链,因此不会与产物文件行冲突(例如 DSH-better-sidebar)。

安装与启用

安装命令如下:

dsh plugin --profile web add dsh-cache-miss

执行完上述命令后,需要重启 dsh web(或对正在运行的 GUI 进行硬刷新)以加载客户端 bundle。

典型用法

当缓存未命中时,界面会显示类似以下格式的提示:

Cache miss after 3m idle: 182k tokens re-billed · 0.8k cached · ttft 2.1s ↑
  • ↑:上箭头示意重建 prefill 通常更慢。
  • 数据取自流中的 usage chunk,提示会在 usage 到达时就出现(回复仍在生成中),不必等到 assistant 消息结束。

适用场景与注意

该插件适合在调试 Agent 长上下文、优化提示缓存策略时使用。

需要注意以下细节:

  • TTFT 显示范围:TTFT 取自会话事件时间,即 step 的 step/start 事件到首个非空 token delta 事件的墙钟间隔。当任一边界落在已加载窗口之外时,视为缺省,不显示 · ttft ... 段。
  • Miss 判定逻辑:插件通过 hitRatio 判定 miss,需满足 inputTokens > 0、hitRatio < 80% 且 inputTokens >= 1000。
  • Provider 兼容性:对于从未回传过 cache 字段的 provider,首次出现时会提示“无法确认”,不做启发式猜测;后续出现该 provider 时,若仍无 cache 字段则保持静默。
  • 日志输出:每一步至多输出一条控制台日志,命中轮不产生可见行。

短结尾

经过上面的步骤,dsh-cache-miss 即可在 DSH 网页端提供实时的缓存命中率反馈。它不修改系统核心逻辑,仅通过前端展示辅助开发者优化上下文策略。

插件目录:https://www.skillhub.cn/plugins/wefio/dsh-cache-miss
GitHub 仓库:https://github.com/wefio/dsh-cache-miss

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜