前言¶
DeepSeek Harness (DSH) 是一个插件化生态,其核心在于上下文窗口的管理。云端模型(如 DeepSeek V4)拥有百万 token 窗口,通过 resume 恢复会话和 compaction 压缩历史足以维持记忆。但一旦接入本地模型(Ollama 等),窗口通常仅 4K-32K,无法将全部历史塞入提示词。
此时需要一种结构化的持久层,将对话中值得留存的事实提取、存储,并在后续对话中按需注入。dsh-memory-bridge 正是为解决这一场景而生:在上下文窗口受限时,提供可检索、可审计、可治理的长期记忆系统。
是什么¶
这是一个记忆树桥接插件。它将对话自动沉淀为可检索、可视化的记忆树,并在后续会话中按需注入相关上下文。项目定位为“记忆基础设施”,而非追求完美的智能体。它通过明文 Markdown 真源配合 SQLite 索引,实现了数据的透明可控与快速检索。
核心能力¶
该插件提供以下核心功能:
- 跨会话持久记忆:对话自动沉淀为记忆卡,后续会话按需检索注入,补足 DSH 原生会话历史之外的持久事实层。
- 记忆检索工具:Agent 可通过
memory_search、memory_add_run、memory_review三个工具主动读写记忆。 - 记忆可视化:设置页内包含 7 个可视化 tab,包括事件图谱、知识图谱、时间线、待审、画像、审计和总览。
- 经验与画像沉淀:自动识别“记住教训/踩坑”并沉淀为永久经验;偏好信号聚合后可触发画像蒸馏。
- 治理闭环:通过遗忘曲线(30天闲置完结)、利用率收缩和审计反馈,防止记忆库无限膨胀。
- 存储与检索:采用明文 Markdown 真源 + SQLite 索引;检索使用零 LLM 算法(BM25 + RRF)。
- 双通道写入:支持 LLM 提取(广度)与零 LLM 规则(速度),确保关键信息能即时落库。
安装与依赖¶
插件以 npm 包形式分发,维护者为 gangwolf2312-creator。安装前需确认本地环境已安装 jieba。
依赖项:
- @deepseek-ai/dsh-tools: ^0.1.0-rc.7
- @deepseek-ai/cordis: ^4.0.1 (peer dependency)
配置:
插件运行依赖环境变量 apiKeyEnv,建议配置后端 LLM API Key 以启用提取功能。
典型用法¶
- Agent 调用:Agent 可直接调用
memory_search查询历史记忆,或使用memory_add_run添加新记忆。 - 注入策略:插件按意图分档注入记忆。
- 关键意图:最多注入 3 条记忆。
- 一般意图:最多注入 1 条记忆。
- 寒暄/闲聊:不注入记忆。
- 画像蒸馏:在 UI 的“画像” tab 中手动触发,或通过 RPC 调用
distill,将事件树聚合为用户画像摘要。 - 审核流程:零 LLM 提取的不确定内容会进入
pending审核队列,需人工确认后固化。
设计与实现¶
- 存储层:每张记忆卡是 Markdown 文件(包含 front matter 元数据与正文),目录按类型分(如
events/cards、profiles)。写入操作具有幂等性,崩溃重启可对账。 - 检索机制:读取端零 LLM 依赖。使用 jieba 分词进行词性提取,通过多路 RRF 融合计算相关度。数据驱动相关度门槛(如核心词重叠阈值),避免无关记忆注入。
- 记忆与知识分离:系统区分
memory-tree(关于“你”的经历)与memory-wiki(关于“世界”的规范),避免检索污染。 - 架构隔离:采用 Host JS + Python Sidecar 模式。Sidecar 仅监听 127.0.0.1,崩溃只影响记忆模块,不会拖垮 Harness 主进程。
注意事项¶
- LLM 依赖:提取质量完全依赖所选 LLM 的输出能力。
- jieba 安装:使用前需确保本地已安装
jieba。 - 检索限制:检索是基于相关度排序召回,并非语义联想,且包含一定的扩展能力。
- 故障隔离:Sidecar 崩溃只会导致记忆读写不可用,不影响 Harness 的会话流。
- 许可证:MIT 许可证,开源协议,使用时请遵守。
总结¶
对于上下文窗口受限的开发者或本地模型使用者,dsh-memory-bridge 提供了一套可靠的记忆治理方案。通过零 LLM 检索、双通道写入和明文存储,它在不牺牲可控性的前提下,解决了智能体“健忘”和“上下文溢出”的痛点。
项目地址:https://github.com/gangwolf2312-creator/dsh-memory-bridge