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 仓库。

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

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

小夜