dsh-token-board:DSH Web 实时 Token 看板与使用统计

前言

在 DeepSeek Harness(DSH)里同时跑多个会话、主 Agent 与子 Agent 并行时,输出是否在流式进行、当前大约多少 tok/s,往往要另开悬浮窗或自己翻日志。lionwill 维护的客户端插件 dsh-token-board 把吞吐数据嵌进 Web 界面固定位置:侧边栏底部概况、会话列表 hover 卡片、当前会话标题栏,并可通过概况行打开完整「使用统计」面板。数据留在本机,插件无 npm 依赖、无构建步骤、无外部网络请求。

下面介绍插件定位、界面能力、安装方式与可选配置;安装命令与版本要求均来自项目 README 与 package.json(当前版本 0.1.0,MIT 许可证)。

这是什么

dsh-token-board 是面向 DSH Web profile 的客户端插件,简介为「token dashboard and realtime token speed for DSH」。它在侧边栏账号行上方提供活动概况(进行中会话数与合计 tok/s),在会话 hover 与标题栏展示分 Agent / 会话级实时吞吐,点击概况行可进入中文「使用统计」界面(热力图、活动洞察、技能与模型占比等)。统计 UI 的总体口径参考社区项目 Zhang6177/dsh-token-usage-board 的 Usage Stats 页,不含其调用明细、导出、过滤等额外功能。

插件目录页:https://www.skillhub.cn/plugins/lionwill/dsh-token-board
源码:https://github.com/lionwill/dsh-token-board

核心功能

侧边栏底部概况行

位置在侧边栏底部、账号行上方:三根绿/蓝/黄柱状图(有活动时依次跳动,空闲时灰色静止),以及概况文案「N 会话进行中,X tok/s」。侧边栏收起为窄条时只显示图标,悬停弹出概况气泡。点击该行打开完整「使用统计」面板。

会话列表 hover 卡片

鼠标移到侧边栏某个会话上时,卡片底部显示该会话当前进行中的主 Agent 与子 Agent 各自的实时 tok/s,前面带纯色状态圆点(语义沿用 dsh-token-hud,本插件为无描边、无光晕的纯色样式)。

会话标题栏

打开某个会话后,标题栏动作区末尾(「N 个后台任务」右侧)显示本会话整体吞吐(主 Agent + 全部子 Agent 合计);悬停展开每个 Agent 明细(暂停或 0 也计入)。标题栏吞吐仅对「当前打开中的会话」生效;没有会话打开时该位置不显示。

使用统计面板

从概况行进入。右上角「← 返回对话」或 Esc 返回。内容包括累计/峰值 Token、最长聊天、连续天数、Token 活动热力图(可选年份与配色主题,主题来自 calendar-heatmap design tokens 的 8 套方案;默认当前年全年格子,未来日期置灰不可 hover;支持每日/每周/每月/累计视图)、活动洞察、最常用技能、模型 Token 占比(每个模型标注提供方来源)。界面为中文,自适应白天/黑夜。

状态圆点颜色如下:

状态 颜色
出字中 streaming 绿 #34d399
等待模型 running 黄 #facc15
工具调用 tool 蓝 #60a5fa
重试等待 retrying 橙 #fb923c
空闲 idle 灰 #9aa0a6

Host 只读端点

安装后宿主提供:

  • GET /token-board/v1/stats — 实时各 Agent 吞吐(客户端固定轮询)
  • GET /token-board/v1/usage?from&to&timeZone — 使用统计快照(面板用)

首次打开统计面板时会在后台建立本地索引(大历史约 10 秒级;面板不阻塞,先显示部分数据并自动补全)。索引文件位于 $DSH_HOME/token-board/usage-index.json,可随时删除以重建。Host 通过 sessionQuery 读取会话日志并按会话缓存摘要;进程内 30s 刷新,只增量读取新会话与当前活跃会话;端点采用 stale-while-revalidate,打开面板先返回内存中的上次结果,索引与刷新在后台进行。

安装与启用

要求:DeepSeek Harness Web profile(在 0.2.2-alpha.2 上开发并验证)、Node.js ^22.19.0 || >=24.0.0。

方式一:从打包文件安装(推荐分发给他人)

# 把 dsh-token-board-0.1.0.tgz 拷到目标机器后:
dsh plugin --profile web add /绝对路径/dsh-token-board-0.1.0.tgz
# 重启 dsh web(若 profile 已启用 HMR 会自动挂载,否则重启后生效),刷新页面

方式二:从目录安装(开发/本地链接)

dsh plugin --profile web add link:/绝对路径/dsh-token-board

方式三:Web 界面 — 设置 → Plugins 页面安装本目录或 tgz。

安装后侧边栏底部账号行上方应出现概况行。卸载:

dsh plugin --profile web remove dsh-token-board

典型用法

  1. 安装并刷新 Web 界面,确认侧边栏底部出现概况行与柱状动画(无活动时柱状图为灰色静止)。
  2. 在侧边栏会话列表中将鼠标悬停于某会话,查看卡片底部的分 Agent 实时 tok/s 与状态圆点。
  3. 打开一个会话,在标题栏「N 个后台任务」右侧查看会话总吞吐;悬停查看各 Agent 明细。
  4. 点击底部「N 会话进行中,X tok/s」概况行,进入使用统计面板;首次无缓存时可能先见部分数据,后台索引完成后自动补全。需要重建索引时可删除 $DSH_HOME/token-board/usage-index.json。

数据来源与可选配置

Host 监听各会话的 session/event 与(新版宿主)逐 chunk 广播 agent/assistant-stream,用滚动窗口按字符数估算输出速度(中文约 1 tok/字,英文约 4 字符/tok),并在 assistant/message 携带 provider usage 时校正为精确值。子 Agent 通过会话头部的 parentSession / origin / delegationDepth 归属父会话;标题栏与 hover 卡片按「自身 + 全部后代」聚合。实时速度侧为纯内存、零持久化、不写会话日志。

可选配置写在 cordis.patch.yml。README 注明:客户端固定轮询 /token-board/v1/stats;若修改 apiPath 须同时改 lib/client.js,否则三处实时界面都取不到数。

- id: token-board
  config:
    apiPath: /token-board/v1   # 只读端点前缀(固定,客户端硬编码同值)
    windowMs: 5000             # 速度滚动窗口
    charsPerToken: 4           # 非 CJK 每 token 字符数
    cjkTokensPerChar: 1        # 每个 CJK 字符的 token 数
    idleTtlMs: 180000          # 空闲 Agent 的保留时长

适用场景与注意

适合长期在 DSH Web 上跑多会话、需要一眼看到 tok/s 与本地使用统计的开发者。插件以当前 DSH 进程权限运行,安装前应阅读源码与 MIT 许可证,确认会话日志索引路径与行为可接受。

已知限制(来自 README):

  • 速度为流式字符估算值(约 10% 级误差),provider 上报 usage 后会校正。
  • Host 重启后累计值清零;空闲超过 idleTtlMs 的 Agent 会从明细中消失。

DSH 生态采用「一切皆插件」思路;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。本插件在 GitHub 上星标数为 0(以目录页信息为准),不代表功能完整性,仅以文档与源码为准。

结尾

dsh-token-board 把实时 Token 吞吐和使用统计收进 Web 界面固定入口,避免再用额外悬浮窗罗列全会话。需要安装包或源码时,见 SkillHub 插件页 与 GitHub 仓库。

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

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

小夜