DSH Medals:DeepSeek Harness 的 3D 奖牌与成就系统

前言

DeepSeek Harness(DSH)默认只提供会话与用量统计,缺少对长期行为和成就的视觉反馈。开发者很难直观看到自己的使用模式与进步轨迹,奖牌类产品也难以与 DSH 的本地会话数据结合。DSH Medals 通过读取本机会话的 token 用量,按固定规则颁发 3D 奖牌,并把这些奖牌陈列在一个可交互的「奖牌馆」中。

是什么

DSH Medals 是一个为 DeepSeek Harness Web 提供的 3D 奖牌插件。它通过 sessionPersistence 服务读取本机所有可读会话,覆盖全部模型和服务商,统计范围仅限当前进程,不涉及账号或其他设备。奖牌馆展示 25 枚 3D 模型奖牌,每枚都带有金属与珐琅材质,支持旋转查看正反面。

收藏馆

奖牌馆首页将 25 枚奖牌分为五组陈列:每日、周与月、达标日、每月用量、里程与突破。每组标题旁显示已获得数量。已获得的奖牌标注获得次数;未获得的奖牌显示外形线稿并附带进度条,其中最接近解锁的两枚会单独标出。页面顶部的展台按获得时间从新到旧轮流展示所有已获得的奖牌,每 6 秒切换一次,可以拖动旋转展台上的奖牌,也可以用箭头切换。展台左下方的「下一个目标」显示当前最接近解锁的奖牌和剩余差距。

获得新奖牌

获得新奖牌后,侧边栏的「奖牌馆」入口会显示金色数字徽标。打开奖牌馆时,新奖牌会依次播放获得动画:奖牌从画面深处旋转飞入,正面落定后,背景亮起暖色光晕,一道高光扫过金属表面。多枚新奖牌依次播放,每枚看过后单独记为已读。奖牌馆已经打开时获得的新奖牌不会打断当前操作,只会在页面右上角显示提示。获得动画可以在揭晓页或任意已获得奖牌的详情中重播。

奖牌详情

已获得的奖牌在详情中自动缓慢旋转,可以拖动、轻甩,也可以用方向键旋转,或切换到正面、背面。右侧列出挑战条件、首次获得日期和全部获得记录;点击某条记录,会切换到那一次的奖牌版本,序号和日期随之更新。未获得的奖牌显示挑战条件和当前进度。已获得的奖牌可以点击「分享」生成一张 4:5 竖版分享图,内容包括奖牌、名称、挑战条件、当前选中记录的获得日期、序号和获得次数,以及截至当天的累计用量。生成后可以直接复制图片,或下载为 PNG 文件。

挑战进度

挑战页按今日、本周、本月、生涯四个周期列出进度。尚未完成的挑战排在前面,已完成的挑战收在下方。

挑战规则

所有用户使用同一套门槛。单日用量达到 5M tokens 记为一个「达标日」。

系列 档位 获得方式
每日 单日 5M、10M、20M tokens 每天每档一次,重复获得累计次数
每周 一周 3、5、7 个达标日 每周每档一次
每月 一月 10、20 个达标日,以及整月每天达标 每月每档一次
达标日累计 7、30、100、365 天 每档一次,不要求连续
用量累计 100M、500M、1B、5B、10B tokens 每档一次
每月用量 一月 200M、500M、1B、3B tokens 每月每档一次
每周用量 一周 50M tokens 每周一次
增长 周环比 +100%(上周至少 5M)、月环比 +200%(上月至少 20M) 周期结束后结算

补充说明:

  • 达标日从启用插件当天开始记录。首次同步时,启用前的历史用量会用于补发用量累计、每周与每月用量和增长类奖牌;这批奖牌直接记为已读,不播放获得动画。
  • 「完美一周」「完美一月」要求完整观察整个自然周期且每天达标,周期结束后才颁发。
  • 每周从周一开始,日期按首次安装时的服务端时区计算,这个时区之后不会再变。
  • 已获得的奖牌永久保留,即使对应的会话日志被删除也不会撤销。

统计口径

插件通过 DSH 提供的 sessionPersistence 服务读取本机所有可读会话,覆盖全部模型和服务商。统计范围仅限本机,不包括其他设备,也不代表账号的总用量。计入的用量包括未命中缓存的输入、输出、缓存读取和缓存写入,各部分不按价格加权。推理 token 已包含在输出中,不会重复计算。如果会话报告了精确总量且与明细一致,则以总量为准。重试、最终消息替换以及分叉会话继承的历史内容都会去重。读取暂时失败时,已有奖牌保持不变,暂停颁发新奖牌。DSH 明确拒绝解析的旧格式会话会被排除,页面上会给出提示。

数据存储

插件只保存会话 ID、每日用量汇总和获得记录,不保存任何对话内容,也不发送统计数据或请求外部资源。记录文件位于 $DSH_HOME/storages/dsh-medals/ledger.json;未设置 DSH_HOME 时,位于 ~/.dsh/storages/dsh-medals/ledger.json。写入时使用跨进程独占锁,先写临时文件再原子替换。重装前请备份这个文件,否则收藏会丢失。记录文件损坏时,插件会停止写入,不会自动覆盖原文件。如果 DSH 非正常退出后残留了 ledger.json.lock,请先确认锁文件中记录的进程已经退出,再只删除这个锁文件,不要删除 ledger.json。

语言

奖牌馆跟随 DSH 的中英文设置,面板打开时切换语言也会立即生效。单独访问页面时,可以用 ?lang=zh 或 ?lang=en 指定语言,否则跟随浏览器语言。切换语言不会影响奖牌记录和门槛。

Debug 预览

Debug 预览没有可见入口:连续点击「奖牌馆」标题 5 次即可开启或关闭,相邻两次点击间隔不能超过 2 秒。它用于检查奖牌外观,可以把全部奖牌切换为「已获得」或「未获得」样式。预览只改变显示,不写入任何记录,退出预览或刷新页面后恢复真实状态。

安装与启用

需要 Node.js 22 或更高版本,以及 DSH 0.2.1-rc.2 及以上的 0.2.x 版本。

dsh plugin --profile web add @cassius0924/dsh-medals

开启热更新时,DSH 会自动加载新的构建结果;否则请在当前任务结束后重新加载或重启 DSH。插件的页面和接口都挂在 /api/dsh-medals/ 下,除同源检查外,还经过 DSH 的 connection.admit 鉴权。插件只注册一个侧边栏入口,不修改其他插件。

卸载:

dsh plugin --profile web remove @cassius0924/dsh-medals

卸载后记录文件仍会保留。

适用场景

适合希望将 DSH 的 token 用量数据转化为可感知成就系统的开发者。如果你需要长期跟踪自己的使用模式、观察达标日累计或用量累计进度,这套规则和可视化界面可以直接提供反馈。插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。

总结

DSH Medals 通过 3D 奖牌和成就系统,把抽象的 token 用量转化为直观的视觉反馈。它不依赖外部服务,只读取本机会话数据,并提供收藏馆、挑战进度和分享功能,适合需要在 DeepSeek Harness 中建立长期使用习惯的开发者。完整文档与源码见插件目录页与 GitHub 仓库。

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

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

Xiaoye