DeepSeek Harness(DSH)采用插件化架构。虽然内置指令很方便,但它们通常是静态的文本模板。如果你希望 Agent 具备特定的角色性格,或者在多个会话中保持一致的行事风格,就需要更高级的机制。dsh-persona 插件通过注入人设提示词和跨会话记忆,解决了这个问题。
是什么¶
dsh-persona 是一个由 haimuhaimu 维护的插件,旨在给 DSH 的 Agent 装上一个可切换、会记住的“人设”。它支持持久化人设注入、跨会话角色记忆和运行时切换,内置了三个精写人设和一个“本尊”模式。
核心功能¶
- 持久人设注入:在每轮请求前,将当前人设作为上下文注入。Agent 全程以该身份回应。
- 跨会话角色记忆:每个人设独立保存一套记忆(存储在
~/.dsh/persona-memory.json)。重启后依然记得,激活时自动注入最近记忆。 - 运行时切换:通过工具命令一键换人设,选择会持久化到磁盘。
- 内置人设:包含 3 个精写人设和 1 个“default”模式。
- 纯 JS、零构建:与
dsh-image-gen一样,即装即用。
安装与启用¶
使用官方命令安装:
dsh plugin --profile <profile> add github:haimuhaimu/dsh-persona
如果通过 pnpm 安装遇到 prepare 脚本拦截,需将包键加入 profile 的 pnpm-workspace.yaml 的 allowBuilds 后重新 add。安装完成后重启 DSH Desktop 或重载 profile。
使用方法¶
安装并启用后,agent 默认以 an-ruotong 身份回应。
列出人设¶
list_personas
切换人设¶
switch_persona("yan-guan")
关闭人设恢复默认:
switch_persona("default")
记忆管理¶
- 记住:将一件事记进当前人设的跨会话记忆。
persona_remember("用户喜欢清晨的光线、讨厌网红风")
- 回想:查看当前人设的记忆(可传关键词过滤)。
persona_recall
- 遗忘:按序号删除一条记忆(序号对应 recall 的列表)。
persona_forget 1
内置人设¶
| id | 名字 | 特点 |
|---|---|---|
an-ruotong |
安若童 | 清冷敏锐的视觉观察者,用照片和短句记录普通日常 |
yan-guan |
严观 | 眼光毒辣、有品位的审美与文案裁判 |
lao-jie |
老街 | 旧书店里的说书人,把琐事讲成有画面感的小故事 |
default |
本尊 | 关闭人设,回到 DSH 默认助手 |
配置与机制¶
配置项¶
在 cordis.patch.yml 中可以配置:
| 键 | 默认值 | 说明 |
|---|---|---|
activePersona |
"an-ruotong" |
首次运行的默认人设 id |
statePath |
~/.dsh/persona-state.json |
状态文件路径(保存当前人设) |
memoryPath |
~/.dsh/persona-memory.json |
跨会话记忆文件路径 |
personas |
[] |
追加自定义人设 |
人设选择的优先级:持久化状态 > activePersona > default。想重置,删除状态文件即可。
工作原理与限制¶
- 注入机制:人设文本(提示 + 记忆)作为一条
kind: 'plugin' / form: 'instructions'的用户消息注入,进入会话日志、跨轮可见。 - 去重逻辑:注入按“人设 id @ 记忆版本”去重。切换人设或记忆变化时,下一次请求会重新注入完整上下文。
- 记忆限制:每个人设最多 100 条、单条最多 400 字。注入时最多携带最近 40 条,防止上下文无限膨胀。
- 已知限制:会话经历 compaction(上下文压缩)后,早期注入的人设可能被摘要掉。此时可再次
switch_persona触发重注入。
总结¶
dsh-persona 通过简单的命令和配置,为 DSH Agent 增加了性格和记忆。它适合希望获得更稳定、更拟人化交互体验的用户。插件以当前 dsh 进程权限运行,安装前请检查源码与许可证。
- 插件目录:https://www.skillhub.cn/plugins/haimuhaimu/dsh-persona
- 源码地址:https://github.com/haimuhaimu/dsh-persona