前言¶
DSH 的插件机制强调「一切皆插件」。在 DSH 社区目录中可以看到不少插件条目;社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系,不应理解为官方应用商店。
对智能体开发者来说,常见需求不只是让模型完成一轮任务,而是在工作回复之外增加一个可控的附加状态层。dsh-serendipity 解决的就是这类问题:插件监听用户主动发起的对话轮次,在完成后按概率触发一次随机奇遇,并把主角属性、经验与等级做持久化。它不改变主任务回复流程,而是在任务回复之外提供一段可配置、可查询、可重置的剧情状态。
这是什么¶
PocketSWPU/dsh-serendipity 是一个 DeepSeek Harness(DSH)插件,npm 包名为 @pocket30/dsh-serendipity。
它定位为一个「工作奇遇」插件:每次对话结束后有几率触发随机奇遇,持续养成你的主角属性,并包含 dsh 设置页可视化配置。
维护方是 PocketSWPU。当前安装命令使用的是 1.0.0 版本。
核心功能¶
这个插件的主要能力可以按下面几类理解:
- 监听
turn/end事件,仅统计由用户主动发起的对话轮次,避免插件自身注入的剧情轮重复触发。 - 支持自定义触发概率,以及两次奇遇之间的最少用户对话轮数间隔。
- 内置 7 大主题、700+ 事件;主题题材为单选模式。
- 事件按日常、冒险、史诗、传奇四个等级,随角色等级提升逐步解锁。
- 支持按当前六维属性值命中属性分支线,并以属性加权抽取分支。
- 属性变化在
0~100区间内自动裁剪,经验值累积后自动提升角色等级。 - 默认采用
followup模式,将奇遇续写为主角视角故事,并与工作回复分离。 - 在 dsh 设置页注册“奇遇设置”页,支持角色档案、通用参数与主题卡片实时配置。
- 跨会话持久化角色数据;优先使用
storage domain,不支持时降级为内存存储并告警。 - 提供
serendipity_status与serendipity_reset工具,供模型查询或重置角色档案。
安装与启用¶
环境要求¶
已核实资料显示:
- dsh CLI
0.1.0-rc.6,或与之兼容的版本,具体以资料中的「已知限制」为准。 - 推荐 profile 为
web,因为web组合自带storage domain与设置页容器。 - 若 profile 不是
web,需要把安装命令中的web换成对应 profile 名。
安装¶
先确认当前 profile 和 dsh CLI 版本,然后执行安装命令:
npx @deepseek-ai/dsh plugin --profile web add @pocket30/dsh-serendipity@1.0.0
安装后需要重启 dsh web。按照已给出的使用步骤,先杀掉监听 3080 的进程,再重新执行:
dsh web
随后在浏览器中硬刷新页面。
打开 dsh 设置页后,导航里应出现“奇遇设置”页。
启用验证¶
1、完成几轮对话,等待触发第一次奇遇。
2、查看“角色档案”的等级、属性与最近奇遇。
3、通过 dsh 设置 → “奇遇设置”进行可视化编辑,修改后即时生效。
4、如需要在编排层覆盖配置,在 profile 的 cordis.patch.yml 里按行覆盖 serendipity 配置。
典型用法¶
在 dsh 设置页调整参数¶
打开 dsh 设置页,进入“奇遇设置”。
这个页面至少提供三类配置视角:
- 角色档案:查看等级、属性与最近奇遇。
- 通用参数:调整触发概率、最少间隔轮数等通用参数。
- 主题卡片:选择主题;主题题材为单选模式。
修改后即时生效。资料还说明,dsh 官方设置 RPC 只把白名单命名空间暴露给浏览器,第三方命名空间不会下发;本插件设置页走插件自有路由:
/serendipity/api
在编排层覆盖配置¶
如果需要在 profile 层覆盖插件配置,可以在 profile 的 cordis.patch.yml 里按行覆盖 serendipity 配置。
资料还指出,extraThemes / extraEvents 属于编排级配置,应在 cordis.patch.yml 的 config 里维护。由于资料中部分内容被截断,不应凭名称推测未完整展示的配置字段。
模型工具¶
插件会提供模型可用工具:
serendipity_status
serendipity_reset(confirm: true, name?)
用途:
serendipity_status:查看角色档案。serendipity_reset:重置角色档案,调用时需要显式传入confirm: true,可选传入name。
适用场景与注意¶
这个插件适合以下场景:
- 想在 dsh 对话流程之外增加一段轻量附加剧情。
- 希望附加剧情不参与主任务,而是与工作回复分离。
- 希望通过 dsh 设置页实时调整触发参数、主题和角色档案。
- 希望角色状态跨会话保留,尤其是在支持
storage domain的web组合中使用。
使用前需要注意:
- 插件以当前 dsh 进程权限运行;安装前应检查源码与许可证。
- 当前资料未明确许可证类型;已核实事实只说明
package.json files包含LICENSE,不能据此确定具体许可证。 - 若当前组合不支持
storage,插件会降级为进程内内存存储,并给出告警提示。 - DSH 社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系,不应理解为官方应用商店。
获取与参考¶
- 目录页:
https://www.skillhub.cn/plugins/PocketSWPU/dsh-serendipity - GitHub:
https://github.com/PocketSWPU/dsh-serendipity
这个插件的价值比较具体:它把「对话结束后的随机奇遇」做成一个可配置、可持久化、可在 dsh 设置页调整的状态系统,而不是只输出一段一次性文本。