DSH Session Stats Viewer:在 Web 侧边栏查看会话 Token 与成本统计

前言

在 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 安装不要同时使用。

典型用法

  1. 点击左侧边栏 会话统计。
  2. 顶部切换时间范围与货币(人民币 / 美元)。
  3. 在每日消耗柱状图上悬停,查看某天的四类 Token 拆分。
  4. 在会话排行中切换 按 Token / 按耗时 / 按金额,点击行进入会话。
  5. 观察对话性能与 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 / 幻方无官方从属关系。

链接

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

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

小夜