前言¶
在 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
典型用法¶
- 安装并刷新 Web 界面,确认侧边栏底部出现概况行与柱状动画(无活动时柱状图为灰色静止)。
- 在侧边栏会话列表中将鼠标悬停于某会话,查看卡片底部的分 Agent 实时 tok/s 与状态圆点。
- 打开一个会话,在标题栏「N 个后台任务」右侧查看会话总吞吐;悬停查看各 Agent 明细。
- 点击底部「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 仓库。