DSH 插件 dsh-serendipity:对话后的随机奇遇与主角属性养成

前言

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_statusserendipity_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.ymlconfig 里维护。由于资料中部分内容被截断,不应凭名称推测未完整展示的配置字段。

模型工具

插件会提供模型可用工具:

serendipity_status
serendipity_reset(confirm: true, name?)

用途:

  • serendipity_status:查看角色档案。
  • serendipity_reset:重置角色档案,调用时需要显式传入 confirm: true,可选传入 name

适用场景与注意

这个插件适合以下场景:

  • 想在 dsh 对话流程之外增加一段轻量附加剧情。
  • 希望附加剧情不参与主任务,而是与工作回复分离。
  • 希望通过 dsh 设置页实时调整触发参数、主题和角色档案。
  • 希望角色状态跨会话保留,尤其是在支持 storage domainweb 组合中使用。

使用前需要注意:

  • 插件以当前 dsh 进程权限运行;安装前应检查源码与许可证。
  • 当前资料未明确许可证类型;已核实事实只说明 package.json files 包含 LICENSE,不能据此确定具体许可证。
  • 若当前组合不支持 storage,插件会降级为进程内内存存储,并给出告警提示。
  • DSH 社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系,不应理解为官方应用商店。

获取与参考

  • 目录页:https://www.skillhub.cn/plugins/PocketSWPU/dsh-serendipity
  • GitHub:https://github.com/PocketSWPU/dsh-serendipity

这个插件的价值比较具体:它把「对话结束后的随机奇遇」做成一个可配置、可持久化、可在 dsh 设置页调整的状态系统,而不是只输出一段一次性文本。

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

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

小夜