前言¶
在桌面或 Web 上使用 DeepSeek Harness(DSH)时,社区里已有不少「token 用量统计」类插件,多数带 Web 面板或侧栏入口。Android 版 DSH 引擎(@dsh-android/bundle-android)没有 Web Client 层:引擎里不包含 dsh-client-ui-slots、侧栏 slot 等 UI 组合,App 是原生界面加 JSON-RPC。那些在 package.json 里声明了 dsh.client 的用量插件,装到手机上通常也渲染不出来。
下面介绍维护者 Verchiel666 发布的 dsh-usage-android:把「会话 token 用量统计」做成纯 host 侧只读工具,在 Android 上可以直接用工具结果或命令行看报告,不依赖 Web UI。
这是什么¶
dsh-usage-android 是会话 token 用量统计插件,分类属于 DSH 生态中的客户端侧能力(零 UI 依赖)。它对应官方「创造模式」Demo #7「会话统计」要解决的一类问题,但落地形态是 host 工具,而不是 Web Client 面板。
数据来自 DSH 写入的会话日志,插件只读本地文件、不联网、不修改任何会话数据。
和常见用量插件的差别¶
截至 README 中 2026-11-06 的核对,npm 上查到的 5 个同类插件均声明了 dsh.client(Web 面板、按钮条或侧栏等)。Android 引擎自述会裁掉 desktop/web 相关能力,因此在手机上更适合选用像 dsh-usage-android 这种仅注册 host 工具、capabilities 为 tools:register 与 fs:read 的插件。
若你在桌面或 Web 端,带面板的用量插件可能更直观;在 Android 上,本插件的定位是「能跑起来且信息够用」的文本报告。
核心功能¶
插件注册 host 工具 usage_report,可回答例如:
- 指定时间范围内总共消耗多少 token,输入、输出、缓存读写各占多少;
- 哪一天的用量最高,最近 N 天的趋势(按天 sparkline);
- 哪些会话最费 token(可限制 Top 条数,并带轮次与调用次数);
- 缓存命中率(cacheRead 相对 total 等);
- 若你自己配置了单价,可显示成本估算(不内置价格、不充当账单);
- 可选附带一行 CPU 核数、load、内存占用(
includeSystem,默认开启)。
扫描结果默认带 30 秒 mtime 缓存;需要时可传 refresh: true 强制重扫。
数据来源¶
DSH 将会话写在:
<DSH_HOME>/sessions/<cwd-slug>/<sessionId>/session.v4.jsonl.zstd
每行一个事件。模型调用的用量在 assistant/message 事件的 data.usage 字段,形如:
{ inputTokens, outputTokens, cacheReadTokens, cacheWriteTokens, totalTokens }
插件用 Node.js node:zlib 的 zstdDecompressSync 解压后逐条累加。
工具参数¶
usage_report 支持:
| 参数 | 说明 |
|---|---|
range |
1d / 7d / 30d / all(默认 7d) |
groupBy |
day(默认)或 session |
top |
Top 会话条数,1–20(默认 5) |
session |
按标题或 ID 关键词过滤单个会话 |
refresh |
跳过缓存强制重扫 |
includeSystem |
是否附 CPU/内存行(默认 true) |
安装与启用¶
插件是纯 host 侧,不需要 Web Client,也不需要额外构建工具。安装前应自行查看仓库源码与 MIT 许可证;插件以当前 DSH 进程权限读 DSH_HOME 下的会话文件。
方式一:profile patch(本机开发,指向源码目录)¶
在 $DSH_HOME/profiles/android/cordis.patch.yml 追加:
- insert:
- id: usage
name: /absolute/path/to/dsh-usage/index.mjs
name 必须是字面绝对路径。不要写成 name: !!js "...":!!js 表达式只在 entry 的 config 里求值,写在 name 位置会被当成模块名导入,可能导致引擎无法启动。
完成后完全退出 App 再打开,重启引擎。
方式二:从 npm 安装(便于分享)¶
npm install dsh-usage-android@0.1.0
在 App 的插件管理里搜索并安装 dsh-usage-android@0.1.0(README 要求安装时带版本号),然后重启引擎。npm 包当前 package.json 版本为 0.1.2,若以包管理器实际解析为准,请以你安装时选择的版本与 App 内显示为准。
包声明引擎要求:dsh >= 0.2.0。
典型用法¶
在 DSH 对话中让智能体调用 usage_report,按需传入 range、top、session 等参数即可得到文本报告。
README 中还提供了面向开发者的命令行示例(路径需按本机仓库位置调整):
node $HOME/work/dsh-usage/dev/cli.mjs 7d
node $HOME/work/dsh-usage/dev/cli.mjs all 论文
第二条示例中的「论文」用于按关键词过滤会话。
适用场景与注意¶
适合在 Android 版 DSH 上需要查看会话 token 用量、趋势和 Top 会话的开发者或日常用户;不适合期望在手机里看到 Web 热力图、侧栏图表的场景——本插件只输出文本报告,不提供 UI 面板。
已知边界(来自 README):
- 仅支持
session.v4格式日志;格式变更需同步改插件。 - 会话删除后,对应历史统计随之消失。
- 不内置任何模型单价;成本行完全依赖你自己配置。
- Android 上报告形态为文本(工具返回值或 CLI),没有面板。
社区插件目录见 SkillHub,与 DeepSeek / 幻方无官方从属关系;仓库与问题反馈:GitHub — Verchiel666/dsh-usage-android,目录页:SkillHub — dsh-usage-android。