前言¶
在 DeepSeek Harness(DSH)里做多轮对话和工具调用时,Token 会分散在各条会话里。只靠逐条打开会话或翻日志,很难回答「这段时间一共花了多少 Token」「哪几个会话最费钱」「缓存有没有帮上忙」这类问题。社区插件 DSH Session Stats Viewer(npm 包 @bright9025/dsh-session-stats-viewer)在 DSH Web 侧边栏增加「会话统计」页,把各会话日志聚合成只读仪表盘:总览、每日拆分、排行、对话性能与 DSH 进程运行状态,不另起服务、不写回会话数据。
这是什么¶
维护者为 Bright9025。插件分类属于 客户端:在浏览器侧注册侧边栏入口与统计页面,Host 侧通过 DSH 的 sessionQuery 读日志并暴露 POST /api/session-stats.data。当前 npm 版本为 1.2.1,许可证 MIT。README 标明适用于带 Web 界面的 DSH Desktop 或 Web GUI profile;使用和安装不需要 Node.js(Node.js ≥ 20 仅用于本地跑 npm test)。
设计思路是只读统计:不写入、修改、归档或删除任何会话;无运行时 npm 依赖,Host 与 Client 均为可直接加载的纯 JavaScript,无构建步骤。
核心功能¶
总览与时间范围¶
顶部可切换 近 24 小时 / 7 天 / 14 天 / 30 天 / 所有,展示总 Token、预估成本、会话数、缓存命中率等指标。成本按 Token 单价估算,界面会按已用量自动选用 1M / 10M / 100M / 1B tokens 作为可读单位,减少「¥0.00」一类无意义展示。
货币与每日消耗¶
中文界面默认人民币,其他语言默认美元;可手动切换,本次停留期间保持选择。cnyPerUsd 等默认值写在插件附带的 cordis.patch.yml 中,可在 profile 里覆盖(下文配置节)。
「每日消耗」以堆叠柱状图区分四类 Token:输入 / 缓存读取 / 缓存写入 / 输出,悬停可看完整日期与拆分。
会话排行与性能¶
会话消耗排行支持 按 Token / 按耗时 / 按金额 排序,主数字随所选指标变化,并显示所属工作区与轮次;点击行可打开对应会话。会话标题取自 DSH 的 title 投影,与侧边栏一致,而非原始日志或首条消息。
「对话性能」包括平均每轮耗时、平均首字延迟、输出速度、工具错误率(按 tool/result 中带 error 的记录统计)。
运行状态与刷新策略¶
「DSH 运行状态」每 5 秒采样:进程 CPU(单核与整机)、内存 RSS / 堆、事件循环 p99、运行时长、PID、Node 版本。说明:CPU / 内存主要描述 DSH 自身进程;「整机」行为所有核心的总 CPU。
页面每 20 秒自动刷新;切换时间范围会立即重新取数。实现上采用 缓存先行 + 增量刷新:完整折叠结果写入 $DSH_HOME/cache/session-stats/fold-v2.json,首屏先显示上次快照,后台仅重读 revision 有变化的会话。
语言¶
侧边栏入口与页面文案跟随 DSH「设置 → 通用设置 → 语言」,内置中文、English、日本語、Español、Français、Deutsch、Русский、Português 八种字典。
安装与启用¶
环境要求:
- 当前 profile 具备 DSH Web 界面;
- 无需额外服务或 API Key。
推荐从 npm 安装(命令须与 README 一致):
dsh plugin --profile <profile> add @bright9025/dsh-session-stats-viewer
包地址:https://www.npmjs.com/package/@bright9025/dsh-session-stats-viewer。也可在 DSH 对话中说明安装 npm 包 @bright9025/dsh-session-stats-viewer,由智能体代为安装。
安装后刷新 DSH 页面。左侧边栏「自动化任务」下方应出现 会话统计;在「设置 → 插件」中也能看到该插件。打开页面后应能看到总 Token、预估成本与近期会话数据。若入口未出现,先刷新页面,仍无则重启 DSH。
升级时先卸载旧版再执行上述安装命令。卸载路径:设置 → 插件 → 会话统计 → 卸载(只移除插件,不删会话数据)。
源码本地 bundle 安装方式见仓库 README,适合开发调试;与 npm 安装不要同时使用。
典型用法¶
- 点击左侧边栏 会话统计。
- 顶部切换时间范围与货币(人民币 / 美元)。
- 在每日消耗柱状图上悬停,查看某天的四类 Token 拆分。
- 在会话排行中切换 按 Token / 按耗时 / 按金额,点击行进入会话。
- 观察对话性能与 DSH 运行状态区块,结合 20 秒自动刷新观察变化。
配置成本估算单价¶
成本为估算值。默认单价(人民币 / 百万 Token)及汇率在 cordis.patch.yml 中定义:
| 字段 | 默认值 | 含义 |
|---|---|---|
input |
0.5 | 未命中缓存的输入 |
cacheRead |
0.05 | 缓存读取 |
cacheWrite |
0.5 | 缓存写入 |
output |
2 | 输出 |
cnyPerUsd |
7.2 | 人民币 / 美元换算 |
修改时需在 profile 的 cordis.patch.yml 中覆盖 session-stats-page 条目(会替换整份 config,须写全字段),然后重启 DSH:
- id: session-stats-page
config:
pricing:
input: 0.5
cacheRead: 0.05
cacheWrite: 0.5
output: 2
cnyPerUsd: 7.2
适用场景与注意¶
适用:长期在 DSH Web 里跑多会话、需要汇总 Token / 缓存命中 / 耗时排行,并顺带查看本机 DSH 进程资源占用的开发者。
注意:
- 插件以当前 DSH 进程权限读取会话日志;安装前应查看 GitHub 源码 与 MIT 许可证,确认符合你的安全与合规要求。
- 成本数字不等于真实账单,仅供横向对比与粗算。
- 首次无快照时需完整折叠一次,冷启动可能较慢;选「所有」时若历史不足 30 天,窗口会比「近 30 天」短,但总量与全量历史一致。
- 工作区名依赖会话
cwd与已注册工作区匹配;匹配失败时排行仅显示轮次等信息。
DSH 生态强调「一切皆插件」;SkillHub 目录页 为社区收录,与 DeepSeek / 幻方无官方从属关系。