dsh-soul-evolve:人格狀態、場景切面與帶預算的緩慢演化

前言

在 DeepSeek Harness(DSH)裏給助手定「人設」,常見做法是寫一段固定的 Soul 面板或靠 memory 插件記下用戶明確說過的偏好。這兩類做法各自有效,但很難同時覆蓋三件事:對話過程中會變的情緒與親近感、不同場景下語氣該怎麼偏、以及從長期交互裏統計出來、又不必用戶逐條確認的行爲模式。下面介紹社區插件 dsh-soul-evolve(維護者 xiachuyoufeng,分類:記憶),它把「動態狀態層」「反射弧調製」「Soul 面板 + 演化條目」和「交互沉澱」拆成可觀測、可配置的模塊,並通過 adapter.js 收斂對 DSH 的依賴。

這是什麼

dsh-soul-evolve 是 DSH 的人格狀態與緩慢演化插件:用反射弧驅動的狀態層(效價、激活、能量、親近度等,隨時間衰減、隨交互累積),配合 work / tech / support / chat 四類場景切面(帶滯回),再把用戶糾正與統計推斷得到的演化條目按權重排序,整段注入時硬頂 4000 字。Soul 負責「我是誰、什麼風格」,狀態負責「這一輪累不累、熟不熟」;與 memory-evolve 的分工是:memory 存用戶明說過該怎麼做,本插件存做下來一直是這麼做的統計模式(推斷條目帶半衰,錯了會淡出)。

  • 目錄頁:https://www.skillhub.cn/plugins/xiachuyoufeng/dsh-soul-evolve
  • 源碼:https://github.com/xiachuyoufeng/dsh-soul-evolve
  • 當前包版本(package.json):1.3.3,MIT,Node ≥ 20,DSH ≥ 0.2.1-rc.2

核心能力概覽

狀態層與反射弧

狀態寫入 ~/.dsh-soul-evolve/state.json(環境變量 DSH_SOUL_HOME 可覆蓋;舊路徑 ~/.dsh-soul/state.json 在新路徑爲空時會回退讀取)。反射弧鏈路爲:輸入 → 狀態增量 → 表達調製(長度、溫度、耐心等旋鈕,不對外宣告情緒)。從 0.4.0 起,插件監聽 session/event 中的真人 user/message,自動跑反射弧並原子寫回狀態;可用 apply(ctx, { autoUpdate: false }) 關閉。寫入走串行隊列,異常只告警,不阻斷會話。

場景切面

四類場景默認 work(README 說明判錯場景比不判更糟)。切換需新場景連續兩輪佔優,或單輪得分 ≥ max(2, 當前場景分 × 1.5);間隔 6 小時以上連續計數清零。場景偏移加在調製層,狀態本身不分叉。

Soul 面板與演化條目

Soul 以 soul.md 風格 Markdown 存儲於 ~/.dsh-soul-evolve/personas.json,激活卡作爲 soul:persona(order 10)注入,改完下一輪請求生效。工具 soul_persona 支持 list / get / set / delete / activate / evolve / forget / history / rollback;AI 可讀寫但不會自動改正文。首次安裝會種入 templates/default-soul.md 作爲默認人格。

每張卡分 content(手寫基底)與 entries[](演化條目)。evolve 寫入受 C1–C6 六條硬約束;類別權重示例:correction 1.0 不衰減、repeat 0.9、preference 0.6(90 天)、scene 0.4(30 天)。注入時分段:## Evolved(用戶明說)、## 工作習慣(habit 軌)、## 性格表達(character 軌)。

交互沉澱(1.2.0)

每 15 輪真人輸入(sedimentEvery 可調)從 turns.jsonl 聚合候選,夠格則寫成推斷條目。習慣軌與性格表達軌分開門檻與寫入;場景不沉澱爲條目。三道閘:證據門檻(獨立會話 ≥ 3、跨天 ≥ 3、相關輪次 ≥ 12)、模型不能寫 kind: "pattern"、低權重與 45–60 天半衰。配置面板可查看統計與「立即沉澱」(POST /api/patterns/sediment)。

觀測與驗收

每輪追加一行 JSON 觀測;可用 scripts/stats.mjs 算驗收指標。GET /dsh-soul-evolve/api/trace?limit=<n> 可讀觀測記錄。

安裝與啓用

插件包必須在 package.json 中聲明 DSH 掛載,否則啓動讀不到 patch:

"dsh": { "bundle": { "patch": "./cordis.patch.yml" } }

cordis.patch.yml 插入 id 爲 dsh-soul-evolve 的 bundle 節點。官方 README 給出的安裝命令爲:

dsh plugin add dsh-soul-evolve

裝前可在源碼目錄做預檢(不修改 DSH 配置):

node scripts/verify-plugin.mjs
node --test test/soul.test.js

插件以當前 DSH 進程的權限讀寫用戶目錄下的狀態與人格文件;安裝前應自行查看倉庫源碼與 MIT 許可證,確認符合你的安全與合規要求。DSH 社區目錄(如 skillhub.cn)爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

典型用法

通過工具維護 Soul 與條目

會話內可由模型調用 soul_state、soul_evolve(cordis 入口註冊),以及 soul_persona 管理面板與演化。用戶糾正、重複犯錯、偏好等走 evolve;推斷模式僅由沉澱通道產出。

配置面板

DSH 插件頁 → dsh-soul-evolve → 配置,可查看人格狀態五維與最近事件、編輯當前 Soul、管理 Evolved 條目與注入佔用(X/4000 字)、未注入條目標灰。寫操作 HTTP 接口需請求頭 x-soul-action: 1。

開發通道:從本地源碼升級

默認關閉。設置 export DSH_SOUL_SOURCE=/path/to/dsh-soul-evolve 後,詳情頁可出現「從本地源碼升級」,調用 POST /dsh-soul-evolve/api/upgrade(需 x-soul-upgrade: 1)。同步僅覆蓋包內 src/*.js 等文件,不碰 profile 依賴;完成後需重啓 DSH。狀態按工作區分桶可選 stateScope: "workspace",但同一目錄下多會話仍共用一份狀態文件。

適用場景與限制

適合希望在 DSH 裏同時保留「可編輯的 Soul 骨架」「隨對話漂移的狀態」「場景相關的語氣微調」,以及「從行爲統計補全 memory 未覆蓋模式」的開發者。README 列出的已知限制包括:自動更新只響應真人輸入,工具結果與模型回覆不改狀態;全局只激活一張 Soul,尚未按工作區/會話分檔;場景靠關鍵詞與長度特徵,邊界語料可能判錯(代價主要是語氣偏,不是事實錯誤);多會話默認共用一個狀態文件。

結尾

dsh-soul-evolve 把人格拆成可持久化的 Soul 面板、每輪更新的狀態與場景調製,以及帶權重預算和半衰的演化條目,並可選地從交互中沉澱 habit / character 模式。進一步瞭解與安裝入口見 SkillHub 目錄頁 與 GitHub 倉庫。

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

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

小夜