dsh-token-speed:DSH 客户端实时速度监控插件

前言

DeepSeek Harness (DSH) 采用插件化架构,允许开发者扩展功能。在模型推理调试或性能监控场景中,直观地查看实时输出速度(tok/s)以及分步的详细指标(如 TTFT、累计 tokens)有助于定位性能瓶颈。dsh-token-speed 是一款运行在 DSH Web 客户端的插件,它通过一个可拖拽的环形表盘将速度数据可视化。

核心功能

这款插件固定在 Web GUI 右下角,提供以下能力:

  1. 实时速度显示:生成期间,表盘指针与中央数字随流式输出实时爬升。速度基于输出文本量 × 实测字符/token 比率估算。
  2. 每步精确校准:每步结束后,利用 provider 上报的 usage.outputTokens 和 timing(firstToken → completed)计算真实 tok/s,并据此反向校准字符/token 比率。
  3. 详情面板:点击表盘展开,可查看实时速度、上一步的精确数据、输出 tokens、TTFT 以及当前窗口内的累计输出。
  4. 状态指示:通过颜色或状态标记生成中、工具执行中或空闲状态。
  5. 可拖拽与记忆:支持按住拖动调整位置,位置记忆在 localStorage 中。
  6. 纯浏览器端:不修改宿主状态,仅作为只读订阅者读取会话数据。

安装与启用

插件通过本地链接方式安装进 DSH profile。以 desktop profile 为例,操作步骤如下:

  1. 在本地仓库中创建或克隆 dsh-token-speed,并在 DSH profile 的 package.json 中添加依赖:
// ~/.dsh/profiles/desktop/package.json
{
  "dependencies": {
    "dsh-token-speed": "link:/Users/<you>/Documents/DSH/dsh-token-speed"
  }
}
  1. 进入 profile 目录并安装依赖:
cd ~/.dsh/profiles/desktop
pnpm install
  1. 生效规则:
    • cordis.patch.yml 里的 insert 行由 profile 的 HMR watcher 热加载,修改后通常无需重启。
    • 若修改 lib/client.js 源码,需整页刷新(Cmd+R)才能生效。

典型用法

安装完成后,插件会自动挂载到界面右下角。在模型生成过程中,观察表盘指针和数字的变化;点击表盘可查看上一步的具体速度和 tokens 统计;按住表盘可将其拖动到屏幕任意位置。

架构与注意事项

该插件的数据来源和作用域限制是关键实现细节:

  • 数据源:插件不使用 session 作用域的 useChat 或 useProjection,也不能在 root 作用域读取 session snapshot(该作用域仅包含 .subagent/.queue/.value)。正确的入口是使用 ctx.uiConversation.binding(sessionId).target('chat') 获取数据。
    • legacy.partial:用于实时速度来源,包含进行中的 {turn, step, blocks}。
    • legacy.nodes:用于精确 tok/s 来源,包含已结算节点的 usage.outputTokens 和 timing。
    • legacy.runningCalls:非空即代表工具执行中。
  • 依赖服务:依赖 slots(槽位注册)和 uiConversation(会话聊天数据)。
  • 生态背景:此插件隶属于 DSH 生态,由社区维护,目录页与 GitHub 链接见文末。

结尾

dsh-token-speed 通过环形表盘和详情面板,为 DSH 用户提供了轻量级的推理速度监控方案。它利用浏览器端能力,在不侵入宿主逻辑的前提下,提供了精确到每一步的性能数据。

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

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

小夜