dsh-cheerful:为 DSH Web 界面增加 cheer 工具与礼炮彩带

前言

在 DeepSeek Harness(DSH)里跑 agent 时,Web 界面通常只反映工具调用与文本流,缺少轻量的视觉反馈。若希望在模型主动庆祝、或在一轮多步任务结束时给出不打扰操作的画面提示,需要在 Host 注册工具并在浏览器侧挂浮层。dsh-cheerful 由 Mika-Maki 维护,属于社区目录中的「趣味换装」类插件;当前为 V0.1-Unstable 实验版,接口与行为可能变动,README 建议仅在个人或测试环境使用。下文基于仓库 README 与 package.json 说明其定位、安装与用法。

这是什么

dsh-cheerful 给 DSH 增加名为 cheer 的工具:模型一旦调用,Web 界面左右两侧的礼炮同时向中间喷出彩带,纯画面、不显示居中文字。Host 侧通过 defineTool 注册工具;浏览器侧用 canvas 浮层绘制,并支持设置里的「自动礼花」与工具卡上的「再放一次」本地重播。

  • 维护者:Mika-Maki
  • 仓库:https://github.com/Mika-Maki/dsh-cheerful
  • 社区目录:https://www.skillhub.cn/plugins/Mika-Maki/dsh-cheerful
  • npm 包名:dsh-cheerful,版本 0.1.0(资料中 package.json)
  • 许可证:MIT
  • 运行要求(engines):Node >=22.19.0,DSH >=0.2.1-rc.2 <0.3.0;peer 依赖含 @deepseek-ai/cordis、@deepseek-ai/dsh-tools、@deepseek-ai/schemastery(版本范围见 package.json)

核心功能

cheer 工具

参数 类型 说明
side both | left | right 可选,默认来自插件 Config 的 defaultSide
intensity 1–3 可选,默认来自 Config 的 defaultIntensity

模型未传参时使用 profile 里可覆盖的默认值(见下文配置)。

画面与交互

README 中说明的效果要点如下:

  • 左右礼炮 emoji:弹入过冲、后坐、暖色辉光,右侧镜像朝内。
  • 每侧约 30–70 条彩带或长流苏,带重力、空气阻力、摆动与自旋。
  • CPU 侧 canvas 单层绘制,pointer-events: none,不阻挡点击。
  • 不渲染居中文字,仅礼炮与彩带。
  • 系统开启 prefers-reduced-motion: reduce 时不播放粒子。
  • 历史会话回放不会重放礼炮,仅实时调用触发。
  • 工具卡提供「再放一次」按钮,可在本地重播。

自动礼花

客户端在「设置 → 通用 → 自动礼花」中可调,并写入 localStorage(键 dsh-cheerful/settings)。规则摘要:

  1. 目标完成:会话 goal 投影进入 complete 时放一次。
  2. 单轮多步:一次提问中 agent 达到「最少步数」及以上时,该轮结束放一次;单步一问一答不放。
  3. 每轮最多一次:目标完成与单轮多步共用当轮配额,下一轮重置。
  4. 页面在后台不放;1 秒防抖;仅看本轮从运行到结束的真实变化,刷新或回放不误触发。

默认项(界面可调):自动礼花开;最少步数 2;单轮礼炮强度 2;目标完成礼炮强度 3。

安装与启用

安装会把 bundle 追加进 profile 的 dsh.profile.bundles。README 给出以下方式(任选其一):

# GitHub(推荐,无需发布 npm)
dsh plugin --profile web add github:Mika-Maki/dsh-cheerful

# npm(发布后可用)
dsh plugin --profile web add dsh-cheerful

# 本地 tarball(npm pack 产物)
dsh plugin --profile web add file:/path/to/dsh-cheerful-0.1.0.tgz

# 本地目录开发
dsh plugin --profile web add "link:$PWD"

卸载:

dsh plugin --profile web remove dsh-cheerful

插件以当前 dsh 进程权限运行;安装前请自行查看源码与 MIT 许可证,确认符合你的环境策略。

配置

Host 侧(profile patch)

在 profile 的 cordis.patch.yml 中可覆盖插件 Config,例如:

- id: cheerful
  name: dsh-cheerful
  config:
    defaultSide: left        # both | left | right
    defaultIntensity: 3      # 1..3

约定:插件名 cheerful 须与 cordis.patch.yml 的 id 一致。

客户端(控制台)

也可在浏览器控制台读写设置:

window.__dshCheerful.setSettings({ minSteps: 4, turnIntensity: 3 })
window.__dshCheerful.getSettings()
window.__dshCheerful.resetSettings()

典型用法

  1. 按上文命令向 web profile 安装插件,重启或按 DSH 惯例加载 profile 后启动 dsh web。
  2. 在 agent 可用的工具列表中出现 cheer 后,由模型调用,例如指定两侧与强度:side: both、intensity: 3(具体由模型与 schema 决定)。
  3. 若不需要模型主动触发,可依赖「自动礼花」在 goal 完成或多步轮次结束时播放;在设置中关闭总开关即可停用自动行为,仍可通过工具调用与「再放一次」手动播放。

Host 侧改动需重启 dsh web;浏览器侧为手写 window.__ModuleLoader__.load 包,改 client 后 README 称无需构建。

适用场景与注意

  • 适合:希望在 DSH Web UI 做轻量庆祝反馈、演示 agent 完成目标或多步任务时的开发者;分类上属于趣味换装,不改变核心业务逻辑。
  • 注意:V0.1-Unstable,不适合直接当作生产稳定依赖;不写自定义会话事件,避免影响 session resume;仅使用标准 slot / hooks,不 import 其他插件内部模块。
  • 生态:DSH 理念是「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系,本文不以「官方应用商店」表述。

结尾

dsh-cheerful 用一个小工具加一层不挡操作的礼炮彩带,把「庆祝」从纯文本扩展到 Web 画面,并可选自动礼花规则。进一步细节与预览图见 GitHub README。

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

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

小夜