前言¶
跑长任务时,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 的方式。
典型用法¶
装好并打开会话后,按下面的顺序使用:
- 打开会话,切到 WaitBuddy 标签。
- 发一个任务:状态、步数和活动流从
turn/start/step/end/tool/call更新。 - 点 Start game 开一局 Snake;方向键只在视图获得焦点时生效,先点一次棋盘。
- 审批出现时游戏自动暂停,到原生审批面板处理完,再手动点 Resume。
- 任务成功时 +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