前言¶
在 DeepSeek Harness(DSH)里长期跑 Agent,会话会不断追加到本地 sessions 日志。想回答「这周 Token 花在哪几天」「哪天步数或工具调用特别多」,通常只能自己写脚本扫 jsonl,或凭印象估算。DSH 社区插件 dsh-work-heatmap 把这件事做成首屏可见:在首页 / 新会话输入框下方,用类似 GitHub 贡献图的小方块按天聚合展示 Token 消耗,并可切换到步数、工具调用、提示次数。维护者为 Huyuchuan,归类为客户端插件;仓库当前星标为 0,许可证 MIT(见 GitHub)。
下面介绍它的数据口径、安装方式、验证方法与使用时的注意点。事实以 GitHub README 与 SkillHub 目录页 为准。
这是什么¶
dsh-work-heatmap 是 DSH 的客户端插件:宿主侧扫描 $DSH_HOME/sessions 下的会话日志,按本地日期聚合指标;浏览器侧在会话首屏输入框下方渲染固定 56 周(约 13 个月)窗口的热力图。卡片不设标题与手动刷新按钮,挂载首屏时会向宿主请求一次强制刷新(宿主侧 60 秒节流)。底部提供 Token、步数、调用、提示四个口径切换(默认 Token),以及当前口径合计与颜色图例。
插件以当前 DSH 进程权限读取本机日志,不统计其他机器或其他 $DSH_HOME 下的活动。安装前建议自行查看源码与许可证。
核心功能¶
展示位置与交互¶
热力图出现在 DSH 会话首屏(首页 / 新会话)的输入框下方,宽度与输入框对齐。实现上通过注册 shell.overlay,用 portal 插入输入区容器;Hero 消失进入普通对话时组件卸载,因此热力图只在首屏出现。宿主节点高度为 0、卡片绝对定位,尽量不改变输入框原有垂直位置。
数据口径¶
默认展示 Token 消耗,可切换为 Agent 步数、工具调用、提示次数。数据为只读扫描 $DSH_HOME/sessions/**/*.jsonl(.zstd),按事件字段 time 落到本地日期:
| 指标 | 事件类型 |
|---|---|
| Agent 步数 | step/end(完成、失败、取消、max-tokens 均计入) |
| 工具调用 | tool/call |
| 提示次数 | user/message + agent/inbox/spliced |
| Token 消耗 | assistant/message 的 data.usage.totalTokens(含输入、输出与缓存读取) |
单日颜色按非零日期的分位数(35% / 62% / 85%)分级,减轻个别高峰日把其余日期压成同一档的问题。会话日志可能是「追加式多帧 zstd」,插件按帧头逐帧解压;聚合结果按文件 (mtime, size) 增量写入 $DSH_HOME/heatmap/cache.json,汇总写入 $DSH_HOME/heatmap/summary.json。README 注明全量首扫约 5~10 秒(示例规模:328 个会话 / 250MB),命中缓存后成本很低。
宿主 API¶
宿主提供 GET /api/dsh-work-heatmap/summary,返回结构包含 generatedAt、days、totals、best、scannedFiles、scanning 等字段;scanning: true 表示首次扫描仍在后台,前端会自动轮询。
兼容性¶
package.json 声明 engines.dsh: ^0.2.2-rc.1,安装器会据此拦截不兼容版本。前端依赖首屏 DOM([data-composer-seat] 与 [class*="_headline"])与 shell.overlay;若 DSH 前端改动这些结构,卡片可能静默隐藏而非报错。
安装与启用¶
推荐从 GitHub 安装。包声明了 dsh.bundle.patch,安装时会自动把插件行写入 profile,无需手改 YAML;需重启 DSH 后生效(宿主只在启动时组合插件行)。
dsh plugin --profile web add github:Huyuchuan/dsh-work-heatmap
README 还预留了未发布的 npm 方式(当前未发布):
dsh plugin --profile web add dsh-work-heatmap
手工安装需把目录放入目标 profile 的 node_modules,并在该 profile 的 cordis.patch.yml 末尾追加 dsh-work-heatmap 的 insert 块(见 README),同样要重启 DSH。
卸载时删除 cordis.patch.yml 中对应三行并重启;$DSH_HOME/heatmap/ 为纯缓存,可随时删除。
典型用法与验证¶
验证 API¶
将 <port> 换成本地 DSH 监听端口:
curl -s http://127.0.0.1:<port>/api/dsh-work-heatmap/summary | head -c 200
判断前端是否激活¶
浏览器控制台可查看 window.__dshHeatmapDebug(applied / registered / error)判断插件是否加载成功。
使用节奏¶
首次安装后需等待第一轮扫描(数秒),界面会从「正在扫描本地会话日志…」变为热力图。历史不足 56 周时左侧会出现空白周,属正常现象。窗口高度不足约 600px 时,绝对定位的卡片底部可能被对话区裁切,README 中已说明。
适用场景与注意¶
适合:在本机长期用 DSH web profile 开发智能体、希望用日粒度回顾 Token、步数、工具调用与提示强度,且习惯在新建会话首屏 glance 一眼趋势的用户。
注意:
- 插件与 DSH 同源运行,只读本地会话目录;多机协作或远程会话不会汇总到本机热力图。
- 依赖 DSH 首屏 Hero 的 DOM 结构;大版本前端升级后若类名变化,可能需要插件侧同步调整(README 列出
findHeroStack()与降级路径)。 - 社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系;安装第三方插件前请自行审阅 源码仓库。
结尾¶
dsh-work-heatmap 把本地会话日志聚合成 GitHub 贡献图式的日视图,把 Token 与工作强度从「事后扒日志」变成首屏可读。安装命令为 dsh plugin --profile web add github:Huyuchuan/dsh-work-heatmap,重启后生效。更多细节见目录页与 GitHub README。