dsh-memory:DeepSeek Harness 的长期记忆插件

前言

在使用 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 以使插件生效。

核心功能

该插件提供了以下核心能力:

  1. 持久化存储
    所有记忆数据存储在 JSON 文件中,路径位于 $DSH_HOME/memory-plugin/memories.json(即 ~/.dsh/memory-plugin/memories.json)。

  2. 自动召回
    插件通过系统提示词指令,要求模型在回答问题的最开始调用 memory_recall 工具,以检索相关的上下文信息。

  3. 自动保存
    模型被指示在回答完成后,如果发现了值得记住的新事实,应调用 memory_save 工具将信息存入长期记忆。

  4. 全功能工具
    插件注册了 5 个工具供模型调用:

    • memory_save: 保存事实或偏好。
    • memory_recall: 通过关键词或标签搜索记忆,返回排序结果。
    • memory_list: 列出所有记忆(支持分页和标签过滤)。
    • memory_update: 根据 ID 更新现有记忆。
    • memory_delete: 根据 ID 删除记忆。
  5. 动态上下文注入
    系统会自动将重要性评分 ≥ 3 星的记忆注入到每次请求的运行时上下文中。

  6. 可视化设置页面
    在 Web UI 中,进入 Settings → 长期记忆,可以浏览、搜索、添加、编辑和删除记忆。搜索支持实时防抖(300ms)。

  7. 智能搜索
    搜索功能结合了关键词匹配、标签匹配,并依据重要性和时间进行评分排序。

  8. 导入与导出
    支持将记忆库导出为 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 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜