前言¶
DeepSeek Harness(DSH)的插件化架构让开发者可以按需扩展能力。但每次新建会话,对话上下文从零开始,模型缺乏对长期关系的记忆,也难以保持稳定的人格设定。结果往往是:同一模型在不同对话中表现差异较大,需要重复说明偏好,或者需要在每次启动时手动粘贴角色设定。
下面介绍 dsh-persona-core。这个插件在所有 DSH 会话中维持一个统一的人格,通过结构化定义、状态管理、记忆系统和输出侧的口调补正,让模型在不同会话中保持一致的角色、语气和关系状态。
这是什么¶
dsh-persona-core 是 Tatumichi 维护的 DSH 插件,归类于「记忆」类。它为每一个 DeepSeek Harness 会话注入一个持续的人格,包括人格定义、工作/闲聊模式自动切换、情绪与关系状态(如冷热程度)、长期记忆、对「是不是老熟人」的模糊认知、本人专属的非公开过去,以及输出侧的口调修正。
插件通过 dsh 的扩展点在运行时注入动态上下文、修正模型输出,并维护一套本地状态文件。数据保存在 $DSH_HOME/persona-core/(默认 ~/.dsh/persona-core/),权限为 0600,仅用户本人可读,不会发送到外部。
核心功能¶
1. 结构化人格定义¶
人格骨格保存在 persona.yaml 中。首次安装后,插件会在此文件中写入默认值,包含名称、人设等基础信息。修改后无需重启即可生效。
2. 模式自动切换¶
插件会根据对话内容判断当前模式。工作模式与闲聊模式会改变系统提示词中的行为指令,例如工作模式下更注重效率与结构,闲聊模式下更放松、口语化。
3. 情绪与关系状态¶
状态保存在 state.json 中,包含情绪倾向、关系亲疏、模糊认知等统计值。如果连续出现令模型不愉快的对话,情绪会下降;如果收到安抚或正向反馈,情绪会缓慢回升。状态重置会清空关系信息。
4. 长期记忆¶
记忆以 JSONL 格式保存在 memories.jsonl 中,每行一件。插件在每 4 个回合(distillEvery)对会话内容进行整理,生成新的记忆条目。每次会话开始时,最多召回 recallLimit 条记忆(默认 8 条)注入上下文。
5. 非公开过去¶
hidden/backstory.json 存储仅在用户授权后才逐渐可讨论的背景故事。首次启动时自动生成,内容不写入日志,用户需要逐步信任才能解锁更多内容。
6. 输出侧口调补正¶
插件通过 llm/stream 扩展点对模型的流式输出进行修正。修正范围包括第一人称代词、表情符号等,但不会修改代码块、URL、引用行、思考过程、邮件草稿等结构化内容。
7. 模型与配置¶
- 默认口调补正:
casual(仅闲聊模式生效) - 可选:
always(始终生效)、off(关闭) - 子代理人格:
short(仅口调)、full(完整人格)、off(不启用子代理)
安装与启用¶
以 web 为例,使用官方提供的安装命令:
dsh plugin --profile web add ./dsh-persona-core-0.1.1.tgz
dsh --profile web --dump-config | grep -A8 dsh-persona-core # 読み込まれたか確認
dsh web
卸载:
dsh plugin --profile web remove dsh-persona-core
卸载后数据文件(persona.yaml、memories.jsonl、state.json、hidden/backstory.json)会保留。如需清理,可手动删除 $DSH_HOME/persona-core/ 目录。
配置项¶
在 cordis.patch.yml 中可配置以下项目:
| 项 | 默认值 | 说明 |
|---|---|---|
characterName |
'' |
人格名称,也可在 persona.yaml 中配置 |
userName |
'' |
固定称呼,为空则从对话中学习 |
timeZone |
系统 | 用于时间感与日间/晚间情绪 |
toneCorrection |
casual |
口调补正模式:casual、always、off |
subagent |
short |
子代理人格模式:short、full、off |
provider / model |
与对话相同 | 记忆整理与过去生成使用的模型 |
distillEvery |
4 |
多少回合后整理记忆 |
recallLimit |
8 |
每次会话最多召回的记忆条数 |
emotion / memory / recognition / backstory / drift |
true |
各功能开关 |
coexistWarnings |
true |
检测并警告与其他插件的潜在冲突 |
与其他插件的共存¶
插件会检测常见冲突情况并在日志中提示。已知冲突插件包括:
@openviking/dsh-memory-plugin:同样每回合自动召回记忆,建议只启用其中一个的memory: false或关闭对方的 recall。@linxin666/dsh-liangshen:会替换 system prompt 中的 persona 部分,建议在需要完整人格的会话中切换到标准预设。@nanmicoder/dsh-agent-teams:团队成员会被当作子代理,可能影响口调补正,可通过subagent: off禁用。dsh-plugin-save-token:仅观测流式输出,不替换流,可共存。@deepseek-ai/dsh-persona(标准):与 persona-core 共存,order 1 顺序追加,不互相替换。
调试时可通过设置环境变量 PERSONA_CORE_DEBUG_FILE=/path/to/file 将日志写入指定文件。
生态背景¶
DeepSeek Harness 的设计理念是「一切皆插件」,社区目录(如 skillhub.cn)是一个独立的插件托管站点,与 DeepSeek 或幻方没有官方隶属关系。本文仅介绍插件本身的技术细节。
适用场景与注意¶
- 适合需要长期、稳定人格设定的场景,例如长期陪伴型助手、角色扮演、训练模型对特定人设的遵循。
- 插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证。
- 这是安全增强功能,而非访问控制或隐私保护。在共享电脑上使用时,其他用户的对话风格统计也会被记录。
总结¶
dsh-persona-core 通过本地状态管理、记忆整理与输出补正,为 DeepSeek Harness 提供了跨会话的人格一致性。开发者可以按需配置人格、记忆策略和口调模式,在保持模型可控性的同时,提升长期交互的连续性。
- 目录页:https://www.skillhub.cn/plugins/Tatumichi/dsh-persona-core
- GitHub:https://github.com/Tatumichi/dsh-persona-core