@minybear/dsh-pet:为 DSH Web GUI 增加状态驱动的 Codex 风格桌面宠物

前言

在 DSH 的“一切皆插件”场景里,Web GUI 可以通过客户端插件扩展界面。对使用 DSH 观察 agent 会话的开发者来说,常见需求是把当前会话状态从文字提示中抽出来,快速看到它是在运行、等待输入、报错、完成还是待机。

@minybear/dsh-pet 是 minybear 维护的 DSH 客户端插件,许可证为 MIT。它在 DSH Web GUI 中漂浮一只动画小宠物,由当前会话的 agent 运行状态实时驱动,并提供喂食、玩耍、设置等轻量交互。

插件定位

一句话定位:Codex 风格的“桌面宠物”DSH 客户端插件,在 DSH Web GUI 里漂浮一只动画小宠物,由当前会话的 agent 运行状态实时驱动。

它解决的问题:把当前会话状态映射为宠物动画,并加入位置、外观、数值和自定义宠物包导入等设置,方便在不频繁查看状态栏或日志的情况下感知 agent 当前状态。

核心功能

漂浮宠物

宠物注册进 DSH 的 shell.overlay 槽,属于帧级浮动层,可点透,默认右下角常驻,可拖拽换位。

状态驱动

插件读取当前会话状态,并映射到 Codex 的 9 状态动画行。

会话信号按存活期衰减:

  • Running:3min
  • Failed:1h
  • Waiting:24h
  • Review:7d

超时后回退到 idle

减少动态

插件跟随系统 prefers-reduced-motion,也可以在设置里手动锁定“完整 / 减少动态”。

进入减少动态后,按 Codex 行为固定显示 idle 第一帧。

点击菜单

点击宠物会弹出菜单,可用操作包括:

1、喂食(eat

2、玩耍(play

3、设置

拖拽移动

拖拽可以移动宠物位置。

拖动时按方向播放 running-left/right 行走动画,静止时进入 drag 姿态,位置会持久化到 localStorage

养成数值

插件内置饱食 / 心情数值,范围均为 0–100,并随墙钟时间衰减;关掉浏览器也会继续计时,约 8h / 6h 见底。

数值变化规则:

  • 喂食:饱食 +30
  • 玩耍:心情 +25

菜单里有两条数值条。当宠物待机且某项低于 20 时,会提示“饿了 / 想玩”。

内置宠物

内置五只宠物:

  • Dee(青绿)
  • Amber(琥珀)
  • Berry(莓紫)
  • 灰鲸(DeepSeek Harness logo 造型)
  • 蓝鲸(DeepSeek 官方 logo 造型)

可以在设置面板一键切换。

外观设置

外观设置包括:

  • 尺寸:0.5–1.5
  • 透明度:0.2–1
  • 动画模式
  • 宠物选择

这些设置全部持久化到 localStorage

自定义宠物包

设置面板支持导入标准 Codex 宠物包,包括:

  • pet.json
  • 图集图片

导入后会先校验,再存入 localStorage,并立即可选;也可以删除。

兼容包格式由 pet.json 和一张行优先图集描述。pet.json 字段包括:

{
  "id": "",
  "displayName": "",
  "description": "",
  "spritesheetPath": "",
  "frame": null,
  "animations": null
}

图集前 9 行为 Codex V1 官方 9 状态,第 9–11 行为交互状态(eat / play / drag)。

如果自定义宠物包没有额外交互行的官方 9 行图集,会自动回退:交互态播放 idle 行。

安装与启用

客户端插件需要宿主端打包(dsh.client.inject),安装后需要重启 DSH 并刷新页面才生效。

已给出的安装命令为:

dsh plugin --profile web add github:minybear/DeepSeek-Harness-Pet

安装后重启:

dsh web

然后刷新页面,宠物应出现在右下角。

离线环境或无需 pnpm 时,可使用手动安装脚本:

deploy\install.ps1

典型用法

1、安装并重启 DSH 后,打开 Web GUI,确认右下角出现宠物。

2、点击宠物,弹出菜单后执行喂食、玩耍或进入设置。

3、拖拽宠物到合适位置,位置会持久化到 localStorage

4、在设置面板中切换内置宠物,调整尺寸、透明度和动画模式。

5、导入自定义 Codex 宠物包:上传 pet.json 与图集图片,校验通过后立即可选。

6、如果需要运行测试或图集自检,可以执行:

npm test
node scripts/render-atlas.mjs --all

其中 npm test 依次跑 pet-core / client-contract / paritynode scripts/render-atlas.mjs --all 软渲染三只内置宠物图集并自检网格不变量。

实现与测试注意

client.js 内联了一份 pet-coretest/parity.test.mjs 会对两份副本做全量行为一致性校验,防止行为分叉。

适用场景与注意

适合:

  • 使用 DSH Web GUI,希望把 agent 状态可视化成宠物动画的开发者。
  • 想按 Codex 宠物包格式导入或制作自定义宠物动画的开发者。
  • 需要低打扰状态提示,并且重视系统减少动态设置的开发者。

注意:

  • 插件以当前 dsh 进程权限运行;安装前应检查源码和 MIT 许可证。
  • 养成数值按墙钟时间衰减,不依赖浏览器是否打开。
  • 自定义宠物包如果没有交互行,交互态会回退到 idle 行。
  • 本文只使用资料中明确给出的安装命令,不把它表述为唯一官方安装入口。

结尾

@minybear/dsh-pet 的价值在于把 DSH 当前会话状态映射为 Codex 风格宠物动画,并提供喂食、玩耍、拖拽、外观、自定义宠物包导入等轻量设置。

社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。本文资料未提供目录页 URL,源码地址为:

https://github.com/minybear/DeepSeek-Harness-Pet

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

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

小夜