WaitBuddy:给 DSH 会话加一个长任务监视与小游戏面板

前言

跑长任务时,Agent 在后台跑,用户在前端等。原生会话视图只有 Chat 和 Trajectory:想知道当前进展得翻滚动记录,想看是否有待审批的弹窗也得盯着原话;等的过程中又没有事可做。WaitBuddy 就是把「看进度 + 被提醒 + 消磨等待时间」这三件事合并到一个会话标签页里,并且明确只做监控、不反向控制 Agent。

下面介绍 CelineHuangdz 维护的 dsh-wait-buddy。它是一个 DSH Desktop 的会话视图插件,在当前会话的 Chat / Trajectory 旁边增加一个 WaitBuddy 标签,提供长任务状态、审批/失败提醒,以及 Snake(贪吃蛇)和 Gomoku(五子棋)两个小游戏;在 M3 阶段还会让 Agent 事件单向驱动小游戏。

这是什么

WaitBuddy 是 DSH Desktop 的 session-view 插件,由 CelineHuangdz 维护,当前版本 0.4.1,在 DSH 0.2.1-rc.5 上测试。它解决的问题是长任务的「可观察性」和「等待期的空转」:把进度、待审批提醒放进一个常驻面板,再用轻量游戏填充等待时间。

它有三条边界写在 README 的开头:从不控制 Agent,从不拦截原生审批弹窗,从不写入会话日志。

核心功能

监控看板

  • 作为会话视图注册在 conversation.view 上,位置紧挨 Chat / Trajectory。
  • 状态如实显示 loading / ready / degraded / stale,缺失的 projection 不会被显示成「空闲」。
  • 步数显示「N steps completed」,没有总步数,也没有百分比。
  • 活动流只取 tool/call 的命令/工具条目(最多 3 条),不含模型原始推理内容(D27)。
  • 审批/失败提醒放在独立于滚动内容的 alert rail,始终可见。

小游戏

  • Snake:Canvas 绘制,无外部资源,方向键控制,方向队列、暂停/重置、速度预设。
  • Gomoku:15×15 棋盘,人执黑对阵启发式 AI,可调难度,resize 时重绘。
  • 两个游戏各自维护状态,切换视图或会话只暂停、不重置。

单向信号(M3)

  • 出现审批 → 游戏自动暂停,提示「Waiting for approval」。
  • 审批被处理 → 不自动恢复,浮层显示「Handled — press Space or click Resume」。
  • step +5 分,success +50 分,failed/abort 只显示提示、不重置当前轮。
  • 信号以 agent:* 发布,游戏只消费;监控层不定义任何奖励逻辑。

安装与启用

安装方式由 README 的 Quick start 给出。在 DSH 里走侧边栏 Plugins → Add plugin,然后选一种方式填入:

github:CelineHuangdz/dsh-wait-buddy

其他三种方式的 Value 分别是:

/abs/path/to/dsh-wait-buddy            # 本地目录(开发用,先 pnpm install)
dist/dsh-wait-buddy-0.4.1.tgz          # tarball(绝对路径)
dsh-wait-buddy                         # npm 包,版本可能落后于仓库

各自差别是:Git 方式跟随最新提交;本地目录需要先执行 pnpm install,因为 Host 半边用 zod 校验 projection schema;tarball 用 npm pack --patch-destination dist 生成;npm 上的包可能落后于这个仓库。装完启用插件并刷新页面,再在会话视图标签里选择 WaitBuddy。

注意这里没有 dsh plugin add 命令行入口;本地目录是唯一需要先 pnpm install 的方式。

典型用法

装好并打开会话后,按下面的顺序使用:

  1. 打开会话,切到 WaitBuddy 标签。
  2. 发一个任务:状态、步数和活动流从 turn/start / step/end / tool/call 更新。
  3. 点 Start game 开一局 Snake;方向键只在视图获得焦点时生效,先点一次棋盘。
  4. 审批出现时游戏自动暂停,到原生审批面板处理完,再手动点 Resume。
  5. 任务成功时 +50 分;切换视图不会重播这条 toast。

按 README 说明,方向键只在视图内生效,不会抢走 composer 的按键;纯触屏/指针设备无法控制方向(D7,已批准的偏差)。

配置

配置项很少,全部存在浏览器本地 localStorage 的 dsh-wait-buddy.settings.v1 键下,没有环境变量、没有远程配置:

配置项 取值
Snake 速度 Slow / Normal / Fast
Gomoku 难度 Easy / Medium / Hard

最高分和当前局只存在内存里(M4 候选)。设置不上传、不跨设备同步。

适用场景与注意

适合在 DSH Desktop 里跑长时间 Agent 任务、希望保留一个常驻观察窗口的人;也适合盯长任务之余想顺手玩点小游戏的用户。README 写明支持范围是 DSH 0.2.1-rc.5,其他版本不做承诺。

需要留意的是:插件运行在当前 DSH 进程的权限下,安装前应检查源码与许可证(MIT)。README 也列出了已知偏差——D7 只有键盘方向键;D16/D17 的 Gomoku/设置提前进入 M4 范围;D28 的提问/计划评审延后;D22 未知终端显示 aborted 加原因文本,不新增枚举。另外 320px 宽度有视觉回归覆盖,发布前仍需做一次真实双实例冒烟。

结语

WaitBuddy 的价值不在于让 Agent 更快,而是把等待过程变得可观察、不被打断、也不无聊:一个只读的监控面板加两个小游戏。它的设计始终是单向的,Agent 事件只能影响游戏,游戏不会反过来影响 Agent。

要找这个插件,见技能目录页和仓库:

  • https://www.skillhub.cn/plugins/CelineHuangdz/dsh-wait-buddy
  • https://github.com/CelineHuangdz/dsh-wait-buddy
羽毛球分组比赛记分
小程序二维码

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

小夜