前言¶
在使用 DeepSeek Harness (dsh) 开发智能体时,上下文窗口的长度是硬性限制,且每次会话结束后,之前的交互历史通常会丢失。为了解决这个问题,需要在每次请求前主动检索相关背景,并在对话结束后保存关键信息。dsh-memory 插件正是为此设计,它提供了一套完整的长期记忆解决方案。
这是什么¶
dsh-memory 是 DeepSeek Harness (dsh) 的一个长期记忆插件。它通过持久化存储机制,自动在回答前召回相关记忆,并在回答后保存值得记住的事实。该插件由 doublehappy123 维护,采用 MIT 许可证,旨在解决智能体在多轮对话中记忆断层的问题。
安装与启用¶
在安装前,请确保你的环境满足以下要求:
* dsh 版本 >= 0.1.1-rc.2
* Node.js 版本 >= 20
安装步骤如下:
1、使用 npm 源安装插件(推荐):
dsh plugin --profile web add dsh-memory
2、安装完成后,重启 dsh 进程或重新加载 Web UI 以使插件生效。
核心功能¶
该插件提供了以下核心能力:
-
持久化存储
所有记忆数据存储在 JSON 文件中,路径位于$DSH_HOME/memory-plugin/memories.json(即~/.dsh/memory-plugin/memories.json)。 -
自动召回
插件通过系统提示词指令,要求模型在回答问题的最开始调用memory_recall工具,以检索相关的上下文信息。 -
自动保存
模型被指示在回答完成后,如果发现了值得记住的新事实,应调用memory_save工具将信息存入长期记忆。 -
全功能工具
插件注册了 5 个工具供模型调用:memory_save: 保存事实或偏好。memory_recall: 通过关键词或标签搜索记忆,返回排序结果。memory_list: 列出所有记忆(支持分页和标签过滤)。memory_update: 根据 ID 更新现有记忆。memory_delete: 根据 ID 删除记忆。
-
动态上下文注入
系统会自动将重要性评分 ≥ 3 星的记忆注入到每次请求的运行时上下文中。 -
可视化设置页面
在 Web UI 中,进入 Settings → 长期记忆,可以浏览、搜索、添加、编辑和删除记忆。搜索支持实时防抖(300ms)。 -
智能搜索
搜索功能结合了关键词匹配、标签匹配,并依据重要性和时间进行评分排序。 -
导入与导出
支持将记忆库导出为 JSON 文件进行备份,也支持从 JSON 文件导入(支持合并或替换模式)。
数据结构与重要性¶
每条记忆记录的结构如下:
{
"id": "uuid",
"content": "self-contained fact or preference",
"tags": ["preference", "python"],
"category": "technical",
"importance": 4,
"createdAt": "2026-09-01T12:00:00.000Z",
"updatedAt": "2026-09-01T12:00:00.000Z",
"source": "model"
}
重要性评分分为 5 个等级:
* 1 星:短暂 —— 很快可能不再相关。
* 2 星:低 —— 次要的偏好或上下文。
* 3 星:正常 —— 默认等级,有用的重复信息。
* 4 星:高 —— 重要的偏好或决策。
* 5 星:关键 —— 必须永远记住的信息。
导入与导出¶
导出的文件包含版本号、导出时间、记忆总数和记忆数组。
{
"version": 1,
"exportedAt": "2026-09-02T...",
"count": 42,
"memories": [ ... ]
}
导入功能接受上述完整格式或原始的记忆对象数组。导入模式支持合并(去重 ID,更新现有,添加新)或替换。
注意事项¶
- Web Profile 依赖:可视化设置页面仅在使用 Web profile 时可用。但上述的 5 个模型工具在 headless profile 下也能正常工作。
- 文件权限:插件以当前 dsh 进程的权限运行,请确保相关目录有写入权限。
短结尾¶
dsh-memory 通过系统提示词和工具调用的结合,让模型具备了自我管理上下文的能力。它不仅解决了上下文窗口限制的问题,还通过可视化的管理界面降低了使用门槛。对于需要长期记忆的智能体开发场景,这是一个实用的工具。更多细节和源码可以参考其 GitHub 仓库。