前言¶
在 DeepSeek Harness(DSH)里发消息后,模型进入「深度求索中」等思考阶段时,界面往往只能等待进度行刷新。展开思考正文能看过程,但并不总能缓解空档期的无聊;若再占用官方 reasoning 插槽,还可能和「查看译文」等扩展冲突。
dsh-think-game 是 NorthGateChat 维护的 DSH 客户端插件:在正在运行的思考模块行下方插入一块无第三方运行时依赖的小游戏面板,思考结束或回答开始时自动暂停并淡出;有进度时可「继续上局」,键盘焦点与输入框隔离。下面介绍其定位、能力与安装用法。
这是什么¶
dsh-think-game(思考小游戏)归类为社区目录中的「趣味换装」类插件,开源仓库 NorthGateChat/dsh-think-game,MIT 许可证,当前 package 版本为 0.2.0。
插件在会话流里紧挨 live 思考行(例如「深度求索中,用时 …」)出现轻量 arcade 面板,无需展开思考内容;思考/工作过程结束时面板冻结并淡出,收起后不在历史消息中残留。单文件 client.js 承载面板、DOM 适配器与七款游戏,Host 侧 index.js 为空插件入口,不需要构建步骤、无运行时 npm 依赖。
与 DSH 0.2.2-rc.1 公共插槽 conversation.chat.reasoning.body 不同:该插槽仅在 Think 行展开时挂载,且官方说明扩展不能替换 reasoning 预览策略;折叠状态下「思考模块下方」没有可用 additive 插槽。因此本插件采用受控 flow DOM 适配器(MutationObserver + 定时扫描),在 live 模块 DOM 节点后插入自有面板,不修改宿主文字与展开/折叠状态,也不遮蔽 COT 翻译的「查看译文」。
核心功能¶
七款游戏与操作¶
七款小游戏共用一块最大宽度约 520px、跟随 DSH 主题 token 的面板:砖块 Breakout、贪吃蛇 Snake、反应力 Reflex、2048、记忆翻牌 Memory、堆塔 Stack、飞行 Flappy。左下角「本轮挑战:<游戏> ⌄」可切「随机」或固定某一作(跨会话偏好存 dsh-think-game:pinned);菜单内展示各游戏历史最佳(存 dsh-think-game:best)。默认每轮新思考会话随机选一款(避免连续重复)。
| 游戏 | 操作要点 | 计分 |
|---|---|---|
| 砖块 | 鼠标或 ← → 移挡板,Space/点击发球 |
得分、关卡、剩余机会 |
| 贪吃蛇 | 方向键/WASD 或鼠标朝蛇头转向,Space/点击开始 |
得分、蛇长 |
| 反应力 | 点目标格或 1–9 对应九宫格 |
命中、平均反应 ms、失误 |
| 2048 | 方向键/WASD 滑动 | 得分、最大方块 |
| 记忆翻牌 | 点击翻牌,配齐 6 对 | 配对数、步数 |
| 堆塔 | Space/点击落块 |
高度 |
| 飞行 | Space/点击上升躲柱 |
得分 |
通用控件:开始/暂停/继续、重开。键盘监听挂在面板 stage(tabIndex=0),仅游戏区获焦时生效,聊天输入框打字不会被抢键;游戏区失焦自动暂停。音效为 WebAudio 合成,右上角可静音(dsh-think-game:sound-muted)。
生命周期与「继续上局」¶
适配器按优先级定位 live 思考模块:running 的「深度求索中/Deep diving」行 → shimmer 过程分组头 → running 的 Think 行。同一轮内下一步开始时面板跟随新 live 模块,局内状态保留;live 模块消失时立即暂停,并按进度处理收尾:
- 本局已有进度:收成「继续上局 · 得分 N」小条,点「继续」展开续玩,不影响阅读本轮答案;条目最多保留 2 分钟;下一轮思考开始会先结算旧条目再开新局。
- 无进度:最后一帧 ghost 在约 240ms 内上移淡出,减轻 React 替换思考行时的闪退感。
右上角 × 可选 本轮隐藏 / 30 分钟内不显示 / 今天不再显示(dsh-think-game:snooze-until、snooze-day);隐藏后原处保留极简「恢复」条。页面刷新不恢复未完成的「继续上局」,但最佳成绩会保留;切换会话时适配器清理状态,新会话重新开始。
视觉、性能与可访问性¶
面板使用 DSH 的 --dsw-alias-* 与 --dsh-content-font-*,深浅色自动跟随;prefers-reduced-motion 下关闭脉冲与淡出。仅 playing 时持续 requestAnimationFrame;输入框聚焦、窗口失焦或页面隐藏时暂停绘制。同一时间只允许一个面板实例(generation 令牌与 data-tg-* 标记清理旧节点)。
安装与启用¶
在 DSH desktop profile 下从 GitHub 安装(仓库发布后):
dsh plugin --profile desktop add github:NorthGateChat/dsh-think-game
本地开发可用 link 方式:
dsh plugin --profile desktop add link:/path/to/think-game
装完重启 DSH。卸载:
dsh plugin --profile desktop remove dsh-think-game
卸载后同样需重启。插件通过 cordis.patch.yml 注入 client,依赖 @deepseek-ai/dsh-client-ui-chat 与 @deepseek-ai/dsh-client-ui-conversation 的 Web 客户端上下文。
典型用法¶
- 安装并重启 DSH 后,向模型发送一条会触发深度思考的消息。
- 出现「深度求索中」等 live 思考行时,其下方自动出现游戏面板;边等边玩即可。
- 在「本轮挑战」菜单选固定游戏或「随机」;需要时用暂停/重开。
- 模型开始输出答案时面板自动暂停;若本局有进度,点「继续上局」可在不打断阅读的情况下玩完;玩腻或打扰时可 × 选择隐藏策略。
调试页可由仓库内 node debug/build.mjs 生成,用于脱离完整 DSH 外壳验证 client.js;README 中含流程动图与各游戏单独演示路径。
适用场景与注意¶
适合:经常在 DSH 桌面端等待长思考、希望就地消磨空档、又不愿改动官方 reasoning 展示的用户。
注意:
- 插件以当前 DSH 进程/客户端权限在浏览器 DOM 中运行,安装前请阅读源码与 MIT 许可证,确认接受 NorthGateChat 维护的版本。
- DOM 适配依赖当前 chat flow 标记(如
data-process-activity、data-shimmer、class*="running");DSH 大版本若调整标记,需插件更新findLiveModule()选择器。 - 社区目录 SkillHub 插件页与 GitHub 为独立生态入口,与 DeepSeek / 幻方无官方从属关系;长期不用建议在插件管理中禁用,而非仅依赖面板内隐藏。
结尾¶
dsh-think-game 把七款经典小游戏嵌进「思考进行中」的时间片:自动出现、自动暂停、可续局、键鼠与 composer 隔离,并以 DOM 旁路方式避开 reasoning body 插槽限制。进一步了解与演示材料见 GitHub 仓库,目录简介见 SkillHub。