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_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 設置頁調整的狀態系統,而不是隻輸出一段一次性文本。

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

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

小夜