前言¶
在 DSH 里用「小鲸鱼记账挂件」(dsh-whale-widget)时,右下角能看到余额和 token 消耗,但消耗数字和界面动效往往是分开的。若希望在同一套挂件旁,用「米饭库存」把每轮真实 token 消耗可视化,并在没饭时给出讨饭、饿坏了等反馈,就需要在宿主之上再叠一层逻辑,而不是改挂件本体。
dsh-whale-ricebowl(README 中的「白饭预言家」)是 LuChen0820 维护的 DSH 工作流类插件:依赖宿主挂件,为每个对话维护独立的「装饭 → 每轮吃 → 报账 → 讨饭」流程。未安装 dsh-whale-widget 时,本插件不显示任何内容。
这是什么¶
一句话:给 DSH 小鲸鱼记账挂件增加的附加层,按真实 token 消耗「吃米饭」,并在每轮结束报账;饭吃完会讨饭,久不喂会进入「饿坏了」状态。
| 维度 | 说明 |
|---|---|
| 维护者 | LuChen0820 |
| 仓库 | github.com/LuChen0820/dsh-whale-ricebowl |
| 目录页 | skillhub.cn/plugins/LuChen0820/dsh-whale-ricebowl |
| 许可 | MIT(package.json 当前版本 0.5.9) |
| 定位 | 不是饱食度养成、不自动装饭、不读对话内容、不联网上传;与同类 dsh-whale-food-expack(喂饭 + 饱食度)玩法不同,两者都会在鲸鱼旁摆碗,README 建议只装一个 |
核心功能¶
下面按 README 已写明的行为归纳,便于对照是否满足你的需求。
装饭与计量¶
1 碗默认对应 100 万 token(可在 assets/config.json 的 tokensPerBowl 调整)。装饭菜单三档:小碗 20 万、半碗 50 万、一碗 100 万。主碗加最多 4 个碗位 UI 最多显示 5 碗;超过继续记账,界面不变,下方标签仍显示剩余碗数。
每个 DSH session(对话)独立一锅饭:已装、已吃、剩余;切换对话各吃各的;数据在浏览器 localStorage(键前缀 dshwr-),刷新保留。
每轮吃饭与报账¶
- DSH
turn/start后,真实 token 到账时触发吃饭动画(咧嘴、木勺舀饭、饭团进嘴、咀嚼;音效由 WebAudio 现场合成)。 - 计费口径:本轮
assistant/message事件中usage.inputTokens + usage.outputTokens累计;inputTokens为非缓存输入(Anthropic 口径),不把cacheReadTokens算入;需改口径可改lib/state.js顶部COUNT_CACHE_READ。 - 宿主半端折叠会话事件,浏览器轮询
/dsh-whale-rice/turn.json;饭账仅存本地。 turn/end后气泡报账,例如「这轮吃了 5.4K · 剩 3 碗」。v0.5.0 起吃饭为串行咀嚼队列,米饭下降与口数同步;短回合也会在结束后补演至少一口再报账。大约每 1800 token 一口,单轮最多 6 口(biteTokens可配)。
讨饭与饿坏了¶
剩余为 0 时自动讨饭 10 次(文案随机,不连续两次相同);之后安静等待 10 分钟进入「饿坏了」:立绘发灰、标签「饿坏了…」,不喂则持续灰态(0.5.8 起按对话持久化)。点碗加饭立即恢复。
设置与画面¶
右键饭碗可开关:没饭时讨饭、吃饭动作、音效、米粒特效、数字标签;可查看「本对话饭账」或清空饭账。嘴部叠加层按宿主默认立绘 DSniang1.png 标定;换自定义立绘可改 assets/config.json 的 mouth,或关闭吃饭动作。
安装与启用¶
前置:DSH 0.2.x(README 在 0.2.0-rc.2 实测)与宿主 dsh-whale-widget@^0.4.2。
先安装小鲸鱼记账挂件:
dsh plugin --profile web add dsh-whale-widget
再安装本插件。当前 README 推荐从 GitHub 安装(npm 尚未发布时):
dsh plugin --profile web add github:LuChen0820/dsh-whale-ricebowl
npm 发布后可用:
dsh plugin --profile web add dsh-whale-ricebowl
本地开发目录:
dsh plugin --profile web add link:C:/path/to/dsh-whale-ricebowl
官方 Electron 桌面端:tapIndex 不生效,本插件通过 webserver/index-inject 结构化注入;安装方式与鲸鱼挂件一致,使用 desktop profile。改动宿主相关逻辑需完全重启桌面应用;只改 assets/ 样式或动画时刷新页面即可。
安装与运行均在本机 DSH 进程权限下执行;安装前建议阅读仓库源码与 MIT 许可证,确认符合你的环境策略。
典型用法¶
经过上面的安装步骤后,可按 README 中的顺序操作:
- 点饭碗装饭:小碗 / 半碗 / 一碗。对话开始前也可先装,饭先进入「待装饭」,第一轮
turn/start时倒进当前对话。 - 正常对话:每轮 token 消耗驱动吃饭动画,米饭减少。
- 每轮结束:查看报账气泡中的本轮消耗与剩余碗数。
- 没饭:观察讨饭与 10 分钟后的「饿坏了」;需要时再加饭。
- 若默认 1 碗 = 100 万 token 导致碗面变化不明显,可把
tokensPerBowl改为例如100000(10 万一碗),改完刷新页面。
开发者本地预览(不替代真实 DSH 页面验证):
npm run demo
浏览器打开 http://127.0.0.1:19480/,左侧按钮可模拟装饭、回合消耗与音效。
适用场景与注意¶
适合谁:已使用 dsh-whale-widget、希望在同一挂件旁用「米饭」隐喻每轮 token、并需要 per-session 饭账与讨饭反馈的 DSH 用户。
务必注意:
- 本插件是宿主附加层,找不到宿主 DOM 锚点(
window.__dshWhaleRoot等)时会静默隐藏并在 console 提示,不会白屏;上游改 DOM 可能导致错位。 - 只订阅 DSH 会话状态与 usage 相关事件,不读对话正文;不向外部服务器发送饭账数据。
- 与
dsh-whale-food-expack同时安装会检测并提示,建议只保留其一。 - 社区目录 skillhub.cn 为独立生态站点,与 DeepSeek / 幻方无官方从属关系;插件亦非 DeepSeek 官方产品。
结尾¶
dsh-whale-ricebowl 在不动小鲸鱼挂件本体的前提下,把「装饭—按真实 token 吃—报账—讨饭」做成可配置的桌面叠加层,适合需要 per-dialog 饭账与动效反馈的场景。进一步了解实现与配置见 GitHub README,收录信息见 SkillHub 目录页。