核动力草泥马(dsh-caonima):随 Agent 状态变化的 DSH Web 桌宠

前言

在 DeepSeek Harness(DSH)里用 Web GUI 跑 Agent 时,界面往往只反映日志和工具调用,长时间盯着终端或面板,很难一眼看出「当前是在跑、在等审批,还是已经空闲」。社区里也有各种状态指示方式,但多数是静态图标或文字。维护者 hzhgino 的 dsh-caonima(npm 包名 dsh-caonima)把一只屏幕右下角的「草泥马」桌宠挂进 Web 界面:它会订阅当前会话与 Agent 事件,用散步、巡逻、气泡和简单互动把工作状态可视化。分类上属于 DSH 插件目录里的「趣味换装」类。下面介绍它是什么、能做什么,以及如何安装与使用。

这是什么

核动力草泥马是面向 DSH Web GUI 的桌宠插件:浏览器右下角常驻一只草泥马,行为随当前 Agent / 会话状态切换。项目托管在 GitHub hzhgino/dsh-caonima,目录页为 SkillHub 插件页。当前 package 版本为 0.1.0,许可证 MIT。运行环境要求 dsh v0.1.5+。

实现上是标准的 DSH 双面包(dual-face)插件:Node 侧 lib/index.js 提供空的 apply() 以便 Loader 扫描 dsh.client 声明;浏览器侧 lib/client.js 通过 window.__ModuleLoader__.load 注册,不依赖 React,并声明 dsh.client.immediately: true,启动时即加载。状态来自 ctx.sessions(dsh-api-session-controller 浏览器半):当前选中会话、binding.session 的 snapshot.running,以及 binding.eventSource 上的 tool/call、approval/*、turn/end 等事件(首载/重连只做快进,不回放历史)。动画用 CSS keyframes 与 requestAnimationFrame;卸载或 HMR 换血时会移除 DOM 与 data-plugin 样式,避免残留。

核心功能

与会话状态联动

Agent / 会话状态 表现(据 README)
空闲(idle) 沿屏幕底部慢速散步,偶尔停下喘气、眨眼、耳朵抖动;闲置约 50 秒后打盹(闭眼)
正在工作(running) 快步巡逻,四肢走马灯;气泡实时播报正在执行的工具(如 bash、grep);偶尔蹲下吃草
等待审批(approval/asked) 原地急跳,橙色警报气泡提示需要批准;批复后恢复工作态
回合结束(turn/end) 三连跳庆祝;失败时表现会切换为「翻车」样式
新消息到达 气泡提示收到并出发

互动

  • 戳一戳:摇头晃脑与粒子效果,并随机显示「泥马语录」;打盹时被戳会惊醒。
  • 拎起来:按住可拖到任意高度,松手后四肢下垂摇摆,落地带重力回弹。
  • 嘴上的草持续随风摆动(README 中说明为致敬经典表情包)。

安装与启用

官方 Quick Start 推荐从 GitHub 源安装(npm 发布后可改用包名)。在 shell 中执行:

# 安装(二选一,当前推荐 GitHub 源,npm 发布后即可用包名)
dsh plugin --profile web add github:hzhgino/dsh-caonima
# 或(npm 发布后)
# dsh plugin --profile web add dsh-caonima

# 重启 web host 并刷新浏览器页面,草泥马出现在右下角
dsh web

若已通过 dsh.bundle.patch(cordis.patch.yml)做 profile bundle 正式安装,README 说明需重启一次 web host(bundle 层在启动时组装),再刷新页面。

卸载:

dsh plugin --profile web remove dsh-caonima

重启 web host 后桌宠消失。

典型用法与开发注意

日常使用

安装并 dsh web 后无需额外配置项:打开 Web GUI,选中会话并驱动 Agent 工作,观察右下角桌宠随 running、审批与回合结束事件变化即可。气泡会在 running 时展示当前工具名,便于对照面板里的调用。

开发尝鲜(patch 直挂,二选一)

README 还提供免打包方式:在 ~/.dsh/profiles/web/cordis.patch.yml 用 insert 写入插件 lib/index.js 的绝对路径,且 profile 需支持 patchReload: live,运行中的 host 可热重组,刷新页面即见。注意:正式 dsh plugin add 与 patch 直挂不要同时生效,否则同一 client 可能被两个 Loader 解析,composition 会拒绝。

开发时直接改 lib/client.js 并保存,在启用 client-hmr 的环境下页面可原地换血(插件内部状态重置,连接与会话不受影响)。

适用场景与注意

适合谁:已在用 DSH Web profile、希望用轻量视觉反馈辅助感知 Agent 状态的用户;喜欢桌宠与趣味交互、又不介意右下角占一块区域的场景。

权限与安全:与其它 DSH 插件一样,本插件随当前 dsh 进程与 Web 宿主加载并在浏览器中执行 client 代码。安装前应阅读 仓库源码 与 MIT 许可证,确认符合你的环境与合规要求。SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系,并非官方应用商店。

依赖:除 dsh v0.1.5+ 外,行为依赖会话 API 与事件流;若宿主版本过旧或 session 控制器不可用,桌宠可能无法正确订阅状态。

结尾

dsh-caonima 把 Agent 空闲、运行、待审批与回合结束映射成桌宠动画与气泡,适合在 Web GUI 里长时间盯会话时使用。安装命令以 README 为准:dsh plugin --profile web add github:hzhgino/dsh-caonima,然后 dsh web 并刷新页面。

  • 目录页:https://www.skillhub.cn/plugins/hzhgino/dsh-caonima
  • GitHub:https://github.com/hzhgino/dsh-caonima
羽毛球分组比赛记分
小程序二维码

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

小夜