前言¶
在 DeepSeek Harness(DSH)里长期跑任务时,常见痛点不是「结论忘了」,而是「当时为什么这么定」在上下文被压缩后一起消失。会话摘要往往只留结果,依据、犹豫和取舍理由很难在下一轮对话里自动回来。社区插件 canglight/dsh-chain(包名 dsh-chain-shared)面向这类问题:把判断存成结构化记录,每轮从磁盘重新渲染进系统提示,并用分级遗忘与检索把相关条目拉回当前轮次。下面介绍它是什么、能做什么,以及如何安装与使用。
这是什么¶
dsh-chain 是 maintainer canglight 维护的 DSH 记忆类插件(GitHub 仓库 canglight/dsh-chain,社区目录 SkillHub 条目)。官方 README 的定位是:给 DeepSeek Harness 用的思维链记忆插件——记的不是「发生了什么」,而是「当时为什么这么定」;每条记忆是一句判断,并附带依据、犹豫与结论,按时间衰减,只有被重新想起才会留住。
本仓库发布的是全会话通用版:任意会话里看到的都是同一套记忆链。README 明确说明:「每条会话各一套、互不串味」的隔离版不在这个包里。
当前 npm 包版本为 2.4.1(见仓库 package.json);功能说明以 README 与 CHANGELOG 为准。
核心功能¶
四个设计目标(README 对照)¶
| 问题 | 插件做法 |
|---|---|
| 上下文压缩后,决策理由丢失 | 判断存成 JSONL,每轮从磁盘重新渲染进系统提示,与对话历史无关 |
| 记了很多,用时想不起来 | 用当前用户话检索(jieba 分词 + 通用 IDF 等),命中则把判断行贴回提示词 |
| 记忆堆积成噪声 | 八个池分半衰期自动淡出;长期未想起的条目先淡、再归档 |
| 不知道自己记得什么、哪条还可信 | 元记忆工具 chain_about 回答「关于 X 我知道什么 / 多可信 / 变过几次」 |
八个记忆池与遗忘¶
记忆按池分层,各池有不同的宽限期、半衰期与归档策略。核心层(原则 / 人格)永不衰减;事实、铁律、经验、核心日常、片面日常、情绪、海马体等池各有时间表。权重衰减不只看时间:被检索命中的次数会拉长半衰期(README 给出公式 1 + 0.6·log2(1+次数),封顶 4 倍)。
核心池默认最多 32 条(CORE_MAX / 设置项 coreMax)。满了之后,再向核心层追加「原则/人格」会被拒绝,并提示改写到 AGENTS.md。标签若未命中任何池,不猜测,落入「海马体」并标注「未归类」,由夜巡审查。
每轮注入与字符预算¶
插件每轮向系统提示注入一段 ## 我的思维链(只对我可见),可包含当前情绪、各池摘要,以及「你这句话让我想起来」的检索结果。注入不是「取最近 N 条」,而是按 injectMaxChars(默认 24000 字符,约 8k token)装箱:常驻候选池按权重全局排序逐条装入;装不下的条数写在段标题里(另有 N 条未展开(chain_recall 可查)),核心段不参与装箱。README 称这样注入量相对稳定:例如 1000 条记忆时封顶约 24000 字符。
另有一块工作记忆(待办 / 承诺),由正则从用户话中识别,最多 3 条、3 天未提起过期,存在 working.json,不进记忆链与星云图。
八个工具与一个可视化 Tab¶
| 工具 | 作用 |
|---|---|
chain_append |
写一条判断(judgement / evidence / hesitation / conclusion / tags / weight,可选 eventId) |
chain_recall |
按关键词 / 日期 / 权重查询;最多补带 2 条同 eventId 记录 |
chain_graph |
导出 Mermaid 图谱 |
chain_touch |
对已有记录标「确认」或「被推翻」 |
chain_mood |
写当前情绪(单槽状态,会过期) |
chain_patrol |
手动跑夜巡并出报告 |
chain_about |
只读查询「关于 X 我知道什么」(被想起次数、确认次数、生命周期等);调用不算「想起」 |
chain_conflict |
比较指定 id 或同池矛盾候选 |
会话视图提供 「思维链」 Tab:3D 星云图,八个记忆池各成一簇(另有决策 / 元记忆虚拟区),可拖拽旋转、滚轮缩放、点节点看详情。
检索与可选语义路径¶
chain_recall 与每轮「这句话让我想起来」共用检索:IDF 罕见词命中与字符二元组重合两路排名,再按 RRF 融合;没有词面证据的条目不进候选。若安装可选依赖 @huggingface/transformers(约 400 MB),可走语义检索;未安装时语义路径自动退回关键词路,不报错。
夜巡与自动唤醒¶
每天 18:00 后(可调 patrolHour),插件在满足条件时自动跑一次夜巡,报告写入 ~/.dsh/memories/.chain-shared/patrol/YYYY-MM-DD.md,含久未命中、疑似重复、矛盾候选、海马体待整理等小节。默认会通过 DSH HTTP 接口向最近说话的那个会话投递「请审核报告」消息;可在 ~/.dsh/memories/.chain-shared/settings.json 中设置 wakeSessionId 或 wakeEnabled: false。
安装与启用¶
插件以当前 DSH 进程权限运行,安装前应自行审阅 GitHub 源码 与 MIT 许可证。数据默认落在本地 ~/.dsh/memories/.chain-shared/,README 说明插件不联网、不发遥测。
依赖要求:Node ≥ 20、运行中的 DSH(任意 profile)。建议在插件目录内安装依赖(pnpm add link: 不会替插件安装其自身依赖):
- 将插件源码放到
~/.dsh/plugins/dsh-chain-shared(来源见上述 GitHub 仓库)。 - 在插件目录执行:
cd ~/.dsh/plugins/dsh-chain-shared
npm install --registry=https://registry.npmmirror.com
- 挂进 profile 并重启 DSH(插件清单变更不热加载):
cd ~/.dsh/profiles/web
pnpm add link:~/.dsh/plugins/dsh-chain-shared
README 亦提到可用 dsh plugin add;具体参数以官方文档为准,勿在未核对前自行拼接命令。
可选:@deepseek-ai/schemastery 未装时插件仍可运行,但思维链画布右上角设置按钮可能无反应;@node-rs/jieba 未装时检索会静默降级。
如需限定记忆只对部分会话生效,可在启动 DSH 前设置环境变量 DSH_CHAIN_TARGET_SESSION_IDS(逗号分隔会话 id);缺省为空表示全会话共享。
首次安装时记忆库为空,需在对话中让模型写入,或调用 chain_append 写第一条。
典型用法¶
写入一条判断¶
在对话中让助手调用 chain_append,或自行通过工具接口写入。字段包括判断、依据、犹豫、结论、标签与权重;同一决策可用 eventId 串起前后条目。
按当前话召回¶
用户提问或陈述时,插件会用当前句做检索,把命中条目注入「你这句话让我想起来」段。需要主动查库时调用 chain_recall。
查看「关于某主题我知道什么」¶
调用 chain_about(只读),了解某主题相关条目的被想起次数、人工确认、是否被取代等,便于判断可信度。
调整池参数与注入预算¶
打开「思维链」Tab → 右上角 设置:可改八个池的宽限 / 半衰期 / 归档、injectMaxChars、coreMax、patrolHour。改完经插件接口 /chain-shared/api/settings 立即生效,并写入 ~/.dsh/memories/.chain-shared/settings.json。
手动夜巡¶
# 在插件或文档约定的方式下调用工具
chain_patrol({ apply: true }) # 手动跑夜巡;apply 为 true 时可显式执行权重归整(见 README)
唤醒行为自检(不发消息):
node lib/wake.mjs check
node lib/wake.mjs prompt --dry
适用场景与注意¶
更适合:希望 DSH 在多轮、长任务中保留决策理由而非仅结论;愿意通过工具或对话主动维护记忆;接受全会话共享一条链(单用户或多会话同一 harness 场景)。
不太适合(README 自述):指望「全自动记住一切」;不想让模型在提示词里看到自己的旧判断;需要强会话隔离(应使用隔离版而非本包)。
使用上需注意:写入依赖模型判断,可能漏记或记错;注入会把历史判断塞回系统提示,需自行评估隐私与提示词长度;核心层有上限,长期「我是谁」类规则仍建议配合 AGENTS.md。
结尾¶
dsh-chain 把 DSH 的记忆从「发生了什么」推进到「为什么这么定」:JSONL 持久化、按池遗忘、每轮字符预算注入、检索召回与 3D 星云浏览,再加夜巡报告与可选自动唤醒,适合在 Harness 生态里做长期决策链沉淀。
- 社区目录:https://www.skillhub.cn/plugins/canglight/dsh-chain
- 源码与完整说明:https://github.com/canglight/dsh-chain
DSH 生态强调「一切皆插件」;SkillHub 为社区目录站点,与 DeepSeek / 幻方无官方从属关系。