前言¶
DeepSeek Harness 提供了智能体开发的框架,但原生并不包含长期跨会话记忆的能力。在处理多轮对话或长时间运行的任务时,上下文窗口有限,无法保留关键信息。wwskills/dsh-long-memory 插件通过 SQLite 数据库和全文检索技术,为 DSH 提供了持久化的记忆层。
插件简介¶
该插件由 wwskills 维护,基于 MIT 许可证开源。它解决了 DSH 在长期对话中记忆丢失的问题,支持通过 SQLite 存储、FTS5 全文检索以及可选的 Embedding 向量召回来管理记忆。插件采用单包双面打包架构,同时包含 Node.js 服务端逻辑和浏览器 UI 组件。
核心功能¶
插件的核心能力集中在记忆存储、自动提取与规则进化三个方面。
存储与召回¶
- SQLite 数据库存储:使用 SQLite 作为底层存储,数据持久化。
- FTS5 全文检索:内置 FTS5 扩展,原生支持中文全文检索,无需额外配置即可使用。
- Embedding 向量召回:支持可选的 Embedding 模型,可与 Ollama(本地零成本)或 OpenAI 兼容的 API 结合。开启后采用 BM25 + 向量 + RRF 融合排序。
- 文件追踪:自动生成
MEMORY.md会话标记和memory/YYYY-MM-DD.md日记文件。
自动记忆提取¶
- L7 自动提取:利用 DSH 的 LLM 提供商自动从对话中提取记忆,支持配置置信度阈值,低于阈值的项目进入确认队列。
- Keyword 回退机制:当 LLM 不可用时,自动切换到基于正则的关键词提取模式。
- Confirm Queue 确认队列:低置信度的记忆不会直接写入,而是进入队列等待用户确认。
- Supersession 自动覆盖:当新提取的记忆与旧记忆重叠时,自动标记旧记忆为已覆盖(superseded)。
自进化学习¶
- 信号词检测:实时监听“不对”、“错了”、“应该是”等信号词,捕获用户的纠正。
- 错误捕获:自动捕获工具执行错误 (
tools/result) 和 Harness 级别的错误 (agent/error) 作为学习素材。 - 规则生命周期:纠正信息可被提取为规则,经历“提议 -> 批准 -> 拒绝 -> 归档 -> 推广至 Agent”的完整生命周期。
- 规则注入:已批准的规则会通过
agent/pre-step事件注入到 Agent 上下文中,限制在 800 token 预算内。 - 用户画像构建:基于 USER 类型记忆自动构建技术栈、编码风格等用户画像。
浏览器界面与 API¶
- 侧边栏与多标签页:提供可调节宽度(160-360px)的侧边栏,包含记忆、规则、画像等 4 个标签页。
- Web API:提供 RESTful 接口,支持对记忆、规则、确认队列进行增删改查操作。
安装与配置¶
安装需要确保系统环境满足要求:Node.js >= 22.5 且 DeepSeek Harness >= 0.1.0-rc.2。
安装¶
执行以下命令安装插件:
dsh plugin --profile web add @wwskills/dsh-long-memory
配置示例¶
插件的配置项较多,默认值通常可用。以下是关键配置的示例:
Embedding 配置
- id: long-memory
config:
embedding:
provider: 'ollama' # 'none' | 'ollama' | 'openai-compatible'
model: 'bge-m3'
dimension: 1024
ollama:
base_url: 'http://127.0.0.1:11434'
L7 自动提取配置
- id: long-memory
config:
l7:
enabled: true # 启用自动记忆提取
auto_extract: true # 使用 LLM + 关键词回退
confirm_threshold: 0.6 # 低于此置信度的记忆进入确认队列
自进化学习配置
- id: long-memory
config:
corrections:
signal_words: # 触发纠正捕获的关键词
- '不对'
- '错了'
- '应该是'
promote_threshold: 5 # 提取规则的最小纠正次数
rule_token_budget: 800 # 规则注入上下文的 Token 预算
存储路径¶
数据默认存储在 ${DSH_HOME}/long-memory/ 目录下,包含数据库文件和 Markdown 文档目录。
工具列表¶
插件提供了 8 个命令行工具用于管理记忆:
| 工具名 | 功能说明 |
|---|---|
mem_search |
在记忆库中进行 FTS5 或混合检索 |
mem_record |
手动持久化一条记忆,自动检测作用域 |
mem_status |
查看存储和检索状态 |
mem_stats |
查看记忆统计信息 |
mem_forget |
归档或删除记忆,写入审计日志 |
mem_confirm |
处理待确认的敏感记忆 |
mem_scope_list |
列出所有作用域 |
mem_scope_set_active |
设置当前活跃的作用域过滤器 |
Web API 接口¶
通过 RESTful API 可以脱离浏览器界面进行管理。主要接口如下:
| 方法 | 路径 | 功能 |
|---|---|---|
| GET | /plugins/dsh-long-memory/api/memories |
列出记忆 |
| PUT | /plugins/dsh-long-memory/api/memories/:id |
归档记忆 |
| DELETE | /plugins/dsh-long-memory/api/memories |
删除记忆 |
| GET | /plugins/dsh-long-memory/api/memories/stats |
记忆数量统计 |
| GET | /plugins/dsh-long-memory/api/confirm-queue |
获取待确认队列 |
| POST | /plugins/dsh-long-memory/api/confirm-queue |
确认/拒绝记忆 |
| GET/POST | /plugins/dsh-long-memory/api/config |
获取/保存配置 |
| GET | /plugins/dsh-long-memory/api/corrections |
列出纠正记录 |
| POST | /plugins/dsh-long-memory/api/corrections/:id/extract |
将纠正提取为规则 |
| GET | /plugins/dsh-long-memory/api/rules |
列出规则 |
| POST | /plugins/dsh-long-memory/api/rules/:id/approve |
批准规则 |
| POST | /plugins/dsh-long-memory/api/rules/:id/reject |
拒绝规则 |
| POST | /plugins/dsh-long-memory/api/rules/:id/promote |
推广规则至 AGENTS.md |
注意事项¶
- 运行环境:插件以当前 DSH 进程权限运行,安装前建议检查源码与许可证。
- 依赖版本:必须满足 Node.js >= 22.5 和 DeepSeek Harness >= 0.1.0-rc.2 的版本要求。
- 单包双面:插件将 Node.js 服务端逻辑与浏览器 UI 打包在一起,无需单独部署服务端。
结语¶
wwskills/dsh-long-memory 通过 SQLite、FTS5 和 L7 提取机制,为 DeepSeek Harness 提供了完整的长期记忆解决方案。结合自进化学习功能,它不仅能存储信息,还能根据用户的纠正不断优化 Agent 的行为。对于需要长期运行或处理复杂上下文的智能体开发场景,该插件是必要的组件。