前言¶
在 DeepSeek Harness(DSH)里做角色扮演或陪伴类对话,常见做法是给模型一段固定的 Persona Prompt:每次开聊都重新声明「你是谁、怎么说话」。模型没有跨轮、跨会话可依赖的内部状态,关系与「对你的认识」无法随互动积累。
dsh-cultivation(GitHub:leonardwwq/dsh-cultivation,社区分类:记忆)是 maintainer leonardwwq 维护的 DSH Web 插件。它把互动记成事件、在角色视角下评价、更新关系与带置信度的用户判断,并在回复生成与定期整理中实际使用这些状态——目标不是更长的 Prompt,而是一条本地持久化的状态闭环。
这是什么¶
一句话:面向 DSH Web 的 AI 角色养成插件,通过长期互动为角色提供持久关系与可演进的用户模型(User Beliefs)。
- 包名:
dsh-cultivation,npm 发布,许可证 MIT - 运行形态:纯 JavaScript,零运行时依赖;单 JSON 本地持久化 + 原子写
- 数据版本迁移:v1 → v7(资料中明确)
- 工程状态:Active development;README 标注
153 tests passed / 0 failed
DSH 生态采用「一切皆插件」;社区目录页(https://www.skillhub.cn/plugins/leonardwwq/dsh-cultivation)为独立站点,与 DeepSeek / 幻方无官方从属关系。
与传统固定 Persona 的差异¶
传统路径是用户 → AI,每轮重复人设指令。本插件的设计路径是:
用户 → Event → Appraisal → Relationship → Belief
↓
Response Generation → Belief Consolidation → 下一轮继续理解用户
各层含义(与 README 一致):
| 层 | 作用 |
|---|---|
| Persona | 用户定义的角色人格与背景 |
| Event | 一次完整互动流水,只记录、不评价(cap 40) |
| Appraisal | 角色视角下「这件事对我意味着什么」 |
| Intimacy | 0~100 关系状态,语气随阶段调整 |
| Memory | 独立长期记忆(分区 + 日志归档),不由 Consolidation 直接接管 |
| Belief | 对用户的长期判断,带 confidence 与 evidence(cap 30),不是事实 |
| Consolidation | 定期整理碎片化或冲突的 Belief(当前每 10 轮触发) |
Belief 与 Memory 的区分:前者是「我认为用户可能怎样」,后者是「用户说过什么」类事实记录。
状态更新原则:LLM 提议 → 代码验证 → 确定性执行;LLM 不能直接改持久化数据。
核心功能(已核实)¶
README Status / Features 中列出的当前实现包括:
- Persistent Persona:会话级绑定,绑定后锁定;角色库支持新建、编辑、头像、默认、JSON 导入导出、AI 设计助手
- Event Log、Role-specific Appraisal、Relationship / Intimacy State
- User Beliefs 与 Belief-aware Response Generation(最多 5 条高置信度信念进入回复上下文;当前对话明确表达优先于历史 Belief)
- Belief Consolidation:merge 相近信念、conflict 时对冲突对各自 confidence × 0.8(保留两条、不武断删一条)
- 角色成长、情绪(「此刻心情」)、口吻保持、子代理隔离(角色段仅注入根会话)
- Persistent local storage:默认
$DSH_HOME/persona-studio.json(即~/.dsh/persona-studio.json);头像在同目录persona-studio-avatar-<id>.<ext>
代码结构:lib/core.js(状态逻辑)、lib/index.js(DSH 集成与编排)、lib/client.js(Web UI:角色库、关系展示等)。
安装与启用¶
前提:可运行的 DSH Web;本包为 DSH bundle,package.json 声明 dsh.bundle.patch,安装后登记为 profile 的 bundle 层,无需手改 YAML。
需要 DSH 0.3.0-beta.6 或更新:更早版本没有 dsh.bundle 声明时,安装只会成为普通依赖,不会作为 profile 层挂载。插件当前 package 版本为 0.3.0-beta.6(以 package.json 为准)。
下面介绍官方安装方式。
CLI(推荐):
dsh plugin add dsh-cultivation
安装 beta 通道:
dsh plugin add dsh-cultivation@beta
本地开发(checkout 目录):
dsh plugin add /path/to/dsh-cultivation
Web UI:设置 → 插件 → 安装,填入包名 dsh-cultivation。
安装完成后重启 DSH,确认 bundle 已登记:
dsh --profile web --dump-config | grep persona-studio
「设置 → 角色养成」出现即表示安装成功。
若曾按旧 README 在 $DSH_HOME/profiles/web/cordis.patch.yml 手写 id: persona-studio 的 insert 段,应删除以免与 bundle 自带行冲突。
安全与权限:插件以当前 DSH 进程权限读写本地 JSON;安装前建议查看源码与 MIT 许可证。插件不提供云端状态同步;DSH 与所配置的 LLM Provider 仍可能产生网络请求。
典型用法¶
经过上面的步骤启用后,用法如下(来自 README Usage):
- 新建会话:在输入框工具行选择角色(或新建角色)
- 对话:以该角色身份进行;会话页右上角可开关角色
- 管理角色:设置 → 角色养成(设默认 / 编辑 / 导出 / 删除 / 导入)
- 编辑角色:表单 + AI 设计助手 + 角色卡预览 + 头像
- Memory、Intimacy、Event、Appraisal、Belief 由系统自动维护;Belief Consolidation 在长期互动后自动触发——无需手动操作
Consolidation 失败不影响正常对话;当前实现为「最小的 Belief Consolidation」,不是完整长期人格 / 用户画像系统。
适用场景与已知限制¶
适合:需要在 DSH Web 里做会话级角色扮演或陪伴,并希望关系、亲密度与「对用户的认识」在本地跨轮保留、并参与回复生成的开发者或自用部署。
注意(README Limitations,节选):
- 运行期
userId默认为local(多用户存储结构已就绪,真实用户体系尚未接入) - Belief 是 LLM 提议 + 校验的结果,不代表真实用户画像
- Consolidation 的相近 / 冲突语义仍依赖 LLM
- 当前无完整时间衰减、无云端同步
- Beta:不保证超长对话中角色一致性始终完美
- DSH 快速迭代时,插件兼容性可能随 DSH 版本变化
结尾¶
dsh-cultivation 把 DSH 里的 AI 角色从「每轮重读 Prompt」推进到「事件—评价—关系—信念—回复—整理」的本地闭环,适合在可控环境下实验长期角色状态。查阅与安装可参考社区目录页 https://www.skillhub.cn/plugins/leonardwwq/dsh-cultivation 与仓库 https://github.com/leonardwwq/dsh-cultivation 。