DeepSeek Harness 记忆分诊插件:每轮对话结束自动判断条目保留或归档,把项目条目迁入 project 桶、全局条目留在总体记忆,合并近义重复条目,规则拿不准时用 LLM 兜底;自动动作只做可恢复的归档,永不直接删除。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-memory-triage
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:AtinyFurina/dsh-memory-triage
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README

DeepSeek Harness 记忆分诊插件:自动判断记忆保留 / 归档,并自动路由到项目桶或总体桶。
规则优先 + LLM 兜底。自动动作只做可恢复的归档,永不直接删除。
功能
- 每轮对话结束自动分诊(防抖 5s + 阈值触发:新增 3 条或 3000 字符)
- 全局条目(用户画像、沟通偏好、纪律等)留在总体记忆
- 项目条目(具体项目的状态与决策)自动迁入 project 桶
- 低价值条目(importance ≤ 2 且非全局豁免的 preference)归档
- 近义重复条目自动合并(标题 dice 相似度 ≥ 0.62 或内容包含),其余归档
- 规则拿不准的条目用 LLM 兜底判定(每批 ≤ 8 条,失败静默跳过)
- 镜像 Markdown 与 dsh-mneme 格式字节级兼容,人工编辑仍可合并回库
安装
插件文件放到 ~/.dsh/profiles/web/plugins/dsh-memory-triage,在
~/.dsh/profiles/web/cordis.patch.yml 挂载:
- insert:
- id: dsh-memory-triage
name: ./plugins/dsh-memory-triage/lib/index.js
config:
memoryDir: ~/.dsh/memory
enabled: true
debounceMs: 5000
triggerThresholdCount: 3
triggerThresholdChars: 3000
archiveLowImportance: true
llmFallback: true
llmBatchSize: 8
purgeDays: 30
purgeOnSchedule: false
重启宿主后生效。
命令
/triage-run—— 立即全库分诊/triage-purge—— 彻底删除归档超过purgeDays天(默认 30)的条目(仅限已归档)/triage-persona <人格名>—— 切换当前人格:带旧人格标签的记忆自动隐去、通用记忆保持可见;/triage-persona none清除标记恢复全部可见/triage-repersona <新人格名> [新人设描述]—— 继承重写:把当前人格的带标签记忆按新人设改写一份副本(原文保留)并切换
人格标签(persona tagging)
- 记忆条目可通过标签
persona:<名字>归属某个人格;无该标签的条目为通用记忆,所有人格可见 - 库中存有"当前人格"标记;注入、搜索、列表只显示"当前人格 + 通用"条目,其他人格的条目自动隐去
- 切换人格零 LLM 消耗、零删除;切换时插件会用 LLM 扫描未打标的偏好/决策条目,把人格专属的条目补上旧人格标签(失败静默跳过,不阻塞切换)
- 此过滤由 dsh-mneme 的本地补丁实现(inject/search/list 统一按当前人格过滤,实时生效无需重启)
配置
| 键 | 默认 | 说明 |
|---|---|---|
memoryDir |
~/.dsh/memory |
dsh-mneme 记忆目录(共用同一 SQLite) |
enabled |
true |
总开关 |
debounceMs |
5000 |
回合结束防抖 |
triggerThresholdCount |
3 |
触发阈值(新增条数) |
triggerThresholdChars |
3000 |
触发阈值(新增字符) |
archiveLowImportance |
true |
低价值偏好自动归档 |
minDice |
0.62 |
合并相似度阈值 |
exemptKeywords |
内置清单 | 全局豁免词(命中保留总体记忆) |
projectKeywords |
内置清单 | 项目词(命中迁入 project 桶) |
llmFallback |
true |
LLM 兜底开关 |
llmBatchSize |
8 |
兜底每批条数 |
purgeDays |
30 |
归档超期天数 |
purgeOnSchedule |
false |
分诊时自动清理超期归档(默认关) |
安全设计
- 自动分诊只做三类软操作:保留、迁移类型、归档(archived=1,可恢复)
- 真删仅发生在
/triage-purge或purgeOnSchedule: true,且只作用于已归档条目 - LLM 兜底失败 / 余额不足时静默跳过,绝不影响记忆写入
- 与 dsh-mneme 多连接共用 WAL,busy_timeout 8000ms 串行化写入
测试
node --test test/triage.test.mjs
14 个单元测试覆盖分类规则、去重合并、LLM 决策解析。
License
GPL-3.0
链接
同类插件
vectorize-io/hindsight#coding-agents★ 56238
Hindsight:会学习的 Agent 长期记忆系统,自动召回/保存、知识页、深度反思与按仓库隔离的记忆银行。
volcengine/OpenViking#examples/dsh-memory-plugin★ 41160
面向 DeepSeek Harness 的 OpenViking 记忆与上下文插件:pre-step 自动召回与画像注入、会话捕获、`viking://` URI 防护,以及对接 OpenViking 服务端的 recall/write 记忆工具。
MemTensor/MemOS#memos-local-plugin★ 12187
DeepSeek Harness 本地记忆插件:分层 L1/L2/L3 记忆,自动沉淀与手动 memos_* 检索工具并存,内置记忆浏览器。
agentscope-ai/ReMe#dsh★ 3720
将 DeepSeek Harness 接入 ReMe 本地优先、自进化的个人知识库:自动把已完成的主 Agent 对话沉淀为用户掌控的 Markdown 记忆,通过 reme_search 结合 BM25、可选向量检索和 wikilink 展开搜索对话与资料,并按日整理长期记忆。
zilliztech/memsearch#MemSearch★ 2807
供 DSH 与其他编程 Agent 共享的 Markdown 记忆,支持自动捕获、步骤前上下文注入、搜索召回,以及通过审阅面板实现 memory-to-skill 自进化。
vshulcz/deja-vu#extensions/dsh★ 1336
读取本机上其他四十二个编程智能体已经写下的会话文件(Claude Code、Codex、Cursor、VS Code Copilot Chat、opencode、OpenClaw、Hermes、Kimi、Cline、Zed 等),包括安装之前的历史:提供 deja_recall、deja_session、deja_blame、deja_fix、deja_how、deja_remember 六个工具与 /deja 命令,并可选地把召回结果加入运行时上下文。本地 BM25 索引,不用大模型,不用向量嵌入,不联网(dsh plugin --profile web add dsh-deja)。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。