前言¶
DeepSeek Harness(DSH)在本地运行大量模型调用时,往往难以直观感知「已经花了多少 token」以及「成本主要来自哪里」。官方的用量信息分散在会话日志里,需要自己整理统计;已有的工具要么只看摘要,要么需要额外维护。dsh-token-wall 插件的目标是把这些信息集中到一个看得见的看板里,让你在开发时就能把握成本和上下文占用。
这是什么¶
dsh-token-wall 是一个运行在 DSH Web profile 下的 Cordis bundle 插件,维护者为 ChinRinhan。它按本机时区记录每次模型调用的 token 消耗,并把「攒了多少」做成可视化的方块墙。插件会从已有会话日志中回填历史数据,并在之后每次模型调用时实时入账。
插件以 dsh-token-wall 为包名,但内部标识(路由前缀 /dsh-token-usage、存储目录、localStorage key)保持不变,因此升级不会丢失历史数据。目前该包尚未发布到 npm,只能通过源码安装。
核心功能¶
方块墙¶
方块墙是主面板,每 10M tokens 填一格,100 格一页,累计只增不减。每 10 格一道里程碑竖线(=1 亿 tokens),首末行标出该行的量级。你可以切换「累计 / 今日」两种口径:累计是只增不减的历史总量,今日是午夜归零的当天量。页面下方展示消耗分布与诊断信息。
桌宠¶
桌宠是一个可拖动的浮动面板,常驻在窗口任意位置。它显示当前会话的用量(无会话信息时显示 —)、当前 10M 方块的填充进度、本轮实时用量、全时累计块数、上下文占用(projectedTokens / contextWindow,60% 起转黄、85% 起转红)、缓存读取/计费输入、今日总量等。桌宠支持拖动、折叠/展开,位置记忆在 localStorage 中,窄屏(≤768px)下自动隐藏。
消耗分布¶
在同一区域切换三个视角:工作区、模型、厂商。模型视角会自动归并同一模型的不同写法(如不同渠道前缀或 free 后缀),但不同代际不合并,避免掩盖「还在用旧模型」的问题。认不出厂商的模型归入「其他」,不猜测。可以用配置中的 modelAliases 显式声明模型别名。
设置页¶
「Token 用量」一节包含运行时开关(桌宠、方块墙面板、输入框上方横幅、含子会话、含辅助调用)、今日与累计卡片、区间汇总表(按天/周/月/工作区/渠道/模型/渠道+模型/类型分组)、时长预设(近 7 天/30 天/90 天)+ 自定义起止日期、过滤开关与诊断区(已跟踪会话数、实时入账数、回填状态、存储位置)。
安装与启用¶
当前唯一可用的安装方式是从源码克隆。
1. 克隆插件到 profile 的 node_modules¶
# <profile> 通常是 ~/.dsh/profiles/<名字>
# Windows: %USERPROFILE%\.dsh\profiles\<名字>
cd ~/.dsh/profiles/<profile>/node_modules
git clone https://github.com/ChinRinhan/dsh-token-wall.git dsh-token-wall
2. 锁定版本(可选)¶
cd dsh-token-wall && git checkout v0.2.0
3. 在 profile 的 cordis.patch.yml 中插入 bundle¶
- insert:
- id: dsh-token-usage # 内部标识,不要改
name: 'dsh-token-wall'
config:
keepDays: 400
4. 启用插件¶
在 DSH 会话中执行:
plugin_manager install_bundle target=dsh-token-wall
plugin_manager set_bundle target=dsh-token-usage enabled=true
5. 验证安装¶
启用后宿主会注册四条路由。把 <port> 换成你的 Web GUI 端口:
curl http://127.0.0.1:<port>/dsh-token-usage/today
返回 {"ok":true,"totals":{...},"allTime":{...},...} 即表示安装成功。界面上应该能看到侧栏的方块图标、右下角的桌宠以及设置页中的「Token 用量」一节。
典型用法¶
查看今日与累计总量¶
访问 GET /dsh-token-usage/today 获取今日 + 昨日 + 累计 + 本次运行平均速度 + 当前工作区/模型 + 运行时开关 + 诊断信息。
按时间与维度汇总¶
访问 GET /dsh-token-usage/summary?from=...&to=...&groupBy=day,支持按天/周/月/工作区/渠道/模型/渠道+模型/类型分组。
查看工作区分布¶
访问 GET /dsh-token-usage/workspaces?from=...&to=...,获取 top N 工作区分布。
运行时开关¶
通过 PUT /dsh-token-usage/prefs 更新运行时开关,如关闭桌宠:
curl -X PUT http://127.0.0.1:<port>/dsh-token-usage/prefs -d '{"pet":false}'
适用场景与注意¶
适合需要直观掌握 DSH 本地模型调用成本与上下文占用的开发者。插件以当前 DSH 进程权限运行,安装前应检查源码与许可证(MIT)。标题生成等不携带 usage 的调用无法被统计,这是已知限制,不是遗漏。数据存储在 $DSH_HOME/token-usage/daily.json 与 $DSH_HOME/token-usage/prefs.json,升级不会丢失历史数据。
短结尾¶
dsh-token-wall 把分散的 token 用量信息收敛到方块墙、桌宠和设置页中,帮助你更快发现成本驱动与上下文压力。项目地址:https://github.com/ChinRinhan/dsh-token-wall