在 DeepSeek Harness (DSH) 的插件化生态中,构建具备长期记忆能力的智能体是常见需求。传统记忆方案往往依赖静态日志,检索效率低,或者依赖外部云服务,存在隐私风险。dsh-living-memory 旨在解决这些问题,提供一个完全本地化、具备自我维护能力的记忆存储与检索方案。
插件介绍¶
dsh-living-memory 是一个为 DeepSeek Harness 设计的“活体”记忆插件,由 dearbld 维护。它将智能体在对话中的信息、学到的教训以及做出的决策捕获到本地的 SQLite 知识库中,并定期进行主动维护:去重、合并、关联成知识图谱,以及模拟海马体的“遗忘-重用”机制。
核心功能¶
- 完全本地化与单文件存储:数据完全存储在本地,单一 SQLite 文件。默认情况下,没有任何遥测数据离开设备。可选的向量通道在未配置前处于关闭状态。
- 自维护夜间巡检:插件会定期运行夜间巡检,自动处理存储库。它执行去重与合并(处理高相似度条目)、时间衰减(未使用的条目权重降低)、冲突检测(新旧记忆冲突时标记而非静默覆盖)以及知识图谱的构建。
- 混合召回机制:支持 7 种信号的混合检索,使用 Reciprocal Rank Fusion (RRF) 算法融合排序。这包括全文检索(SQLite FTS5 + jieba 分词)、衰减因子、相关性权重、共现统计、知识图谱 PPR 算法以及跳数增强。
- 中文优先处理:采用专门的中文分词配置,确保中文语料检索的准确性。
- Web GUI 遥测面板:集成在 DSH 的 Web GUI 中,提供数据快照和审计追踪。
- 数据与代码分离:守卫规则和字典配置为 JSON 数据文件而非代码逻辑。这意味着调整防御策略或自定义术语无需修改源码,且发布的包中不会包含特定的站点特定黑名单。
安装与启用¶
使用官方安装命令即可完成注册。该命令会根据指定的 profile(默认为 web)调用对应的包管理器。
dsh plugin --profile web add dsh-living-memory
安装完成后,重启 DSH,插件会自动注册以下工具:
memory:提供search(搜索)、timeline(时间线)、stats(统计)、read_episodic(读取片段)、read_evolution(读取演变)功能。memory_write:提供带类型写入功能(fact/decision/todo/lesson),支持可选的关系边。
插件通过 cordis.patch.yml 自动挂载读写角色,默认配置为零配置。若需限制写入权限,可调整该文件。
数据位置与配置¶
数据文件默认存储在用户主目录下的 DSH 配置路径中:
~/.dsh/dsh-living-memory/
该目录包含数据库文件、每日快照以及配置文件(如 guard-rules.json 和 dict-extra.json)。
向量通道(可选)¶
插件支持向量通道用于增强检索,但默认关闭。如需启用,需在 DSH 的凭证管理器中配置 EMBEDDING_BAILIAN_KEY。此时插件会通过 DSH 的凭证管道读取该密钥,而不会在本地存储该密钥。
守卫规则与字典¶
根据设计理念,守卫规则和字典是数据文件,而非代码。
* 守卫规则:分三层,第一层优先级最高。包含拒绝(硬拦截)、敏感(不自动提取)、警告(软拦截)三类规则组。
* 字典:用于实体识别和知识图谱类型标注。支持自定义 JSON 文件覆盖默认配置。
典型用法¶
在智能体的工作流中,推荐遵循以下步骤:
- 先搜索再行动:在执行任务前调用
memory search <topic>,检查是否有相关的过往决策或事实。 - 写入关键信息:通过
memory_write记录决策、教训或待办事项,并指定类型。 - 查看时间线:使用
memory timeline查看按时间倒序排列的记忆概览,帮助智能体定位上下文。 - 依赖夜间巡检:让插件在夜间自动执行去重、合并和衰减操作,保持知识库的整洁和准确。
注意事项¶
- 插件以当前 DSH 进程的权限运行,请确保安装前检查源码与许可证(MIT)。
npm publish前会自动运行scripts/preflight.cjs进行发布前的合规扫描。- 插件不强制依赖任何外部服务,即便向量通道不可用,剩余的 6 种本地信号也能保证基本功能运行。