dsh-token-chart:在 DSH 里把 Token 用量做成图表与统计

前言

在 DeepSeek Harness(DSH)里跑长会话、多轮工具调用时,你往往更关心「这一轮到底吃了多少 Token」「缓存有没有帮上忙」,而不是事后凭感觉猜。产品自带「用量」入口能看一部分信息,但若你想按天汇总、按轮次看趋势、在会话里一键打开抽屉对照输入/输出与缓存读写,通常还要自己翻日志或写脚本。

下面介绍社区插件 dsh-token-chart(维护者 lugezuishuai):在本机采集当前 profile 的 Token 用量,用图表和表格嵌回 DSH 界面;数据口径与产品「用量」一致,采用计费口径(含缓存重读)。用量数据只落在本机,不上报遥测。

这是什么

dsh-token-chart 是面向 DSH Web profile 的插件(package.json 中 meta.title 为「Token 用量图表」)。它把用量写入 $DSH_HOME/storages/dsh-token-chart/(默认 ~/.dsh/storages/dsh-token-chart/),在左侧边栏、会话标题栏和设置页提供入口,并支持 7 种图表形式与会话/每日面板分别配置。

运行环境要求:DSH ≥ 0.2.0-rc.2,Node ≥ 20;许可证 MIT。当前 npm 包版本为 0.3.1(以仓库 package.json 为准)。

核心功能

三个界面入口

位置 入口 内容
左侧边栏 「Token 用量」菜单 今天 / 近 3 天 / 近 7 天 / 近 30 天:KPI 卡片、趋势图、分页表格;「今天」表格的会话列显示会话名称,点击可跳转该会话
会话标题栏 「用量」小按钮(与 ⋯ 同一行,常驻) 右侧抽屉:总 Token、输入/输出、缓存读取/写入、命中率、轮次、模型及逐轮趋势图
设置页 设置 →「Token 用量」 图表形式、展示指标、开关;标题行含插件版本与更新入口

页面上可能同时出现多个「用量」字样,彼此独立:

  • 消息底部或输入框上方的「用量」胶囊:属于产品组件;插件可通过「拦截产品用量按钮」把点击改为打开本插件抽屉。
  • 会话标题栏右上角小按钮:插件注册在 conversation.session.header.utilities,常驻显示,无单独开关。
  • 右侧边栏标签页标题:对应 sidebar.right.pane.tab.title,不受拦截开关影响。

图表与交互

图表形式共 7 种:柱状、折线、饼图、表格、多柱状、多折线、柱状折线组合;会话抽屉与每日面板可分别配置。

  • 柱状、折线、多柱状、多折线、组合图可在右轴叠加缓存命中率折线(默认开启)。
  • 坐标轴下方有 dataZoom 范围条,拖动或滚轮/捏合只改变可见窗口,KPI、总量与表格仍按完整区间统计。
  • 数据表默认每页 20 条,可选 10 / 20 / 50;「今天」视图支持从表格点击会话名称回到主区域对会话。

x 轴口径:每日「今天」为时间 HH:mm(同分钟多轮补到秒),近 3/7/30 天为日期;会话抽屉为 #轮次,每点对应一轮。

采集与存储

  • 只保留最近 30 个自然日,更早数据在落盘前滚动丢弃。
  • 按 (轮次, 步骤, 重试世代) 幂等存槽,重放会话日志不重复计数;schema 不符时丢弃并从日志重建。
  • 会话总量取会话级折叠,并与产品 tokenUsage 投影交叉校验,不一致时抽屉内会提示。
  • 「总 Token」是计费口径:每次请求的上下文(含缓存重读)都计入,不是单次上下文窗口大小。

ECharts 懒加载:首屏约 70 KB 的 client.js(gzip 约 20 KB),首次出图再拉 ECharts chunk;若 chunk 拉取失败会回退内置 SVG,界面不空白。

HTTP API(可选)

宿主在 Harness web server 上提供 /token-chart/api 前缀路由,便于脚本读写配置或拉统计,例如:

  • GET /token-chart/api/overview?range=today|3d|7d|30d
  • GET /token-chart/api/session?sessionId=…
  • POST /token-chart/api/prefs(补丁式更新配置)

默认监听地址与 DSH 一致(浏览器用例文档中为 http://127.0.0.1:19387)。出网仅版本检查(registry 默认 https://registry.npmmirror.com/,缓存 30 分钟)。

安装与启用

安装的是发布时预构建产物(lib/ 已构建),本机不执行构建脚本:

dsh plugin --profile web add dsh-token-chart

装好后在左侧打开「Token 用量」,或在任意会话标题栏点「用量」即可查看抽屉。

典型用法

在设置里改图表与指标

打开 设置 → Token 用量,调整会话抽屉与每日面板的图表形式、展示指标,以及是否显示表格、缓存命中率折线、是否拦截产品「用量」胶囊。配置落盘路径:

$DSH_HOME/storages/dsh-token-chart/prefs.json

常用字段示例(完整表见 README):

字段 默认 说明
sessionChart / dailyChart multi-bar 图表形式枚举
sessionMetrics / dailyMetrics input、output、cache、total 展示指标
showTable true 图表下是否显示表
showCacheHitRate true 是否叠加命中率折线
interceptUsageButton true 是否接管产品「用量」胶囊

非法枚举或指标会被 normalizePrefs() 丢弃并回退默认,不会拖垮界面。

用 curl 改配置

在 DSH 已启动的前提下,可补丁式写入偏好:

curl -s -X POST http://127.0.0.1:19387/token-chart/api/prefs \
  -H 'content-type: application/json' \
  -d '{"dailyChart":"bar-line","showCacheHitRate":false}'

适用场景与注意

适合需要在 DSH 内长期观察 Token 消耗、对比缓存命中、按天复盘用量的开发者。若你已有外部账单系统,本插件仍可作为本机细粒度对照(轮次级与会话级)。

安装前建议自行查看 GitHub 仓库 源码与 MIT 许可证。插件以当前 DSH 进程权限运行,读写本机 storages/dsh-token-chart/;POST /token-chart/api/reset 会清空本地用量库,脚本调用前需确认。

社区目录 SkillHub 插件页 与 GitHub 由社区维护,与 DeepSeek / 幻方无官方从属关系;星标与版本以各站点当时展示为准。

结尾

dsh-token-chart 把本机会话的 Token 用量采集、可视化并嵌回 DSH:会话抽屉看逐轮,每日面板看区间 KPI 与趋势,设置里可配图表与指标,必要时用 HTTP API 自动化。需要安装命令与细节时,以 README 为准。

  • 目录页:https://www.skillhub.cn/plugins/lugezuishuai/dsh-token-chart
  • GitHub:https://github.com/lugezuishuai/dsh-token-chart
羽毛球分组比赛记分
小程序二维码

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

Xiaoye