前言¶
DeepSeek Harness(DSH)新开一个会话就从头开始:你说过的规矩、定过的边界、踩过的坑,下一轮往往全没了。人设卡能影响「它像不像一个人」,但解决不了「它还记不记得你」;常见的记忆插件能留住事实,却未必因此形成稳定的人格表述。
下面介绍社区插件 dsh-seed(维护者 990718xyh),它在 DSH 里同时做两件事:记住发生过什么,再从经历里更新「我是谁」。插件归类为「记忆」,当前 GitHub 星标为 0;生态上 DSH 奉行「一切皆插件」,目录站 SkillHub 插件页 与 DeepSeek / 幻方无官方从属关系。
这是什么¶
dsh-seed 的定位是:给 DSH 从零长出来的人格——「A persona that grows from experience: remembers what happened, becomes someone from it.」
它不预设完整人设,靠轮次内的抽取、治理、反思与自述,把关于你的称呼、边界和禁忌写进上下文,并在证据足够时修订自述版本。实现上仅使用 node: 内置模块,无原生扩展、无需构建;许可证为 MIT,package 版本在资料中为 0.7.2,要求 DSH ≥ 0.2.0。
装上之后多出什么¶
新会话不用重讲。 每轮开头会把你们谈定的称呼、边界、踩过的坑重新注入上下文。例如你说过「周日别找我」,下一轮它会自行带上这条约定。
人格会随经历变化。 攒够未处理的条目会触发反思,抽出带事件 id 的判断;再攒够判断会生成「我是谁」的候选,经审查后才落盘,证据不足则驳回。
过程可观测。 配置面板后可在 /persona 查看九层各有多少条、自述当前第几版、本轮向上下文注入的字数等。
每轮在跑什么¶
一轮对话结束后,插件在后台大致按下列链路运行(抽取与提炼走小模型;失败只写审计,不打断对话):
轮末
│
├─ 抽取:这一轮里有什么值得留
│
├─ 治理:新来的跟旧的什么关系
│ ADD / UPDATE / DELETE / NOOP / DEFER
│
├─ 攒够 5 条没嚼过的 → 反思:抽出判断,每条挂事件 id
│
└─ 攒够判断 → 自述:出候选 → 审查 → 落盘或驳回
资料中强调的设计约束包括:
- 事实不物理删除:说错了标
invalid、留失效时间,便于事后追溯。 - 记忆强度:被检索一次
+0.05(封顶 1.0),未使用则每天×0.998(下限 0.1);称呼、约定、禁忌钉住,不衰减且每轮固定注入。 - 反思必须带证据:每条判断挂真实事件 id,挂不上则丢弃。
- 自述有闸门:改「我是谁」先出 proposal,review 通过才落盘。
- 检索:Unicode 分词(CJK bigram / 其他语言整词 / NFKC),idf 加权与 BM25 长度归一化;匹配到本轮最高分 85% 的条目不参与时间衰减。
- 只收三类关于你的事:怎么称呼你、谈定的边界、明确禁止的。
安装与启用¶
在 DSH「Add plugin」向导里搜索 dsh-seed,或使用官方 CLI(命令以 README 为准):
# 浏览器版
dsh plugin --profile web add github:990718xyh/dsh-seed
# 桌面版
dsh plugin --profile desktop add github:990718xyh/dsh-seed
装完重启 DSH。不要急着看面板——先聊两句;第一轮结束后它才开始记。
卸载示例(桌面 profile):
dsh plugin --profile desktop remove dsh-seed
插件以当前 DSH 进程的权限运行;安装前请自行查看 GitHub 源码 与 MIT 许可证,确认符合你的环境与安全要求。
配置¶
在 ~/.dsh/profiles/<profile>/cordis.patch.yml 中插入 persona 段(示例来自 README):
- insert:
- id: persona
name: 'dsh-seed'
config:
id: seed
dir: ~/.dsh/persona
heartbeat: { enabled: true, everyMinutes: 30 }
study: { enabled: false }
panel: { enabled: true, route: /persona, port: 8787 }
说明要点:
id决定数据目录名(见下文「数据落盘」)。llm不写则跟随当前选中的模型;写死模型可能在换模型后出现 no API key,抽取链会静默停止。study(自学)默认关闭;开启需要联网与 API 费用,按需再开。- 面板默认端口 8787;被占用时改
panel.port,否则面板起不来,仅在审计里留下panel-error。
数据落盘¶
数据在 ~/.dsh/persona/<id>/,纯文本可直接查看:
journal/<host>.jsonl 所有写入,只追加
snapshot/base.json 压实后的基线
heartbeat.json 心跳状态
典型用法¶
- 按上文命令安装并重启 DSH。
- 先进行至少一轮正常对话,让轮末抽取与治理跑起来。
- 在后续新会话中验证:称呼、边界、禁忌是否自动出现在上下文,无需重复口述。
- 需要可视化时启用
panel,访问配置的route(默认/persona)查看层级与自述版本。 - 若希望插件联网自学,再将
study.enabled设为true并确认 API 与费用可接受。
适用场景与注意¶
适合:长期用同一 DSH profile 协作、希望跨会话保留约定与禁忌,并让人格自述随真实对话缓慢演进,而不是每轮重讲规则或只靠静态人设卡。
注意:
- 记忆范围刻意收窄为「称呼 / 边界 / 禁止」,不是通用知识库;什么都记等于什么都抓不住。
- 反思与自述依赖小模型与证据链;异常时查审计,而非假设已 silently 写入人格。
- 面板与 heartbeat 会占用本地端口与定时任务;端口冲突务必改配置。
- 社区目录与 GitHub 为独立信息源;版本、星标与行为以你安装时的包与 README 为准。
结尾¶
dsh-seed 把「记住发生过什么」和「从经历里长出是谁」放在同一条轮末流水线里:治理、反思、自述闸门与可读的落盘目录,面向 DSH 开发者做可核对、可运维的长期人格记忆。
- 目录页:https://www.skillhub.cn/plugins/990718xyh/dsh-seed
- 源码与文档:https://github.com/990718xyh/dsh-seed