前言¶
在 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|30dGET /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