前言¶
在 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)。规则摘要:
- 目标完成:会话 goal 投影进入
complete时放一次。 - 单轮多步:一次提问中 agent 达到「最少步数」及以上时,该轮结束放一次;单步一问一答不放。
- 每轮最多一次:目标完成与单轮多步共用当轮配额,下一轮重置。
- 页面在后台不放;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()
典型用法¶
- 按上文命令向
webprofile 安装插件,重启或按 DSH 惯例加载 profile 后启动dsh web。 - 在 agent 可用的工具列表中出现 cheer 后,由模型调用,例如指定两侧与强度:
side: both、intensity: 3(具体由模型与 schema 决定)。 - 若不需要模型主动触发,可依赖「自动礼花」在 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