前言¶
DeepSeek Harness(DSH)支持通过插件扩展能力,但默认没有长期记忆机制。如果需要在多轮对话中保留上下文,或者让智能体记住用户的长期偏好,通常需要自己实现存储与检索逻辑,工作量不小。针对这个场景,qq-memory 插件提供了一套完整的长期记忆与遗忘曲线方案:让 AI 自主决定记什么、什么时候回忆、什么时候遗忘,并把不重要的记忆过滤掉,从而减少不必要的 token 消耗。
插件概览¶
qq-memory 是一个通用的 DSH 长期记忆插件,由维护者 ZSF-2026 开发,分类为「记忆」。它为 DSH 应用(聊天机器人、助手、Agent 等)提供跨会话记忆能力,并利用艾宾浩斯遗忘曲线让旧记忆自然淡出,避免在 prompt 中反复注入无用信息。
核心功能¶
- 长期记忆与遗忘曲线:每条记忆有强度,按指数衰减公式
R = e^(−Δt / (strength × τ))估算保持率;强度越高的记忆越难被遗忘,久未提及的记忆会逐渐降低。 - 自动注入与 token 节约:每次模型调用前,只把「尚未遗忘、按权重排序」的记忆拼进 system prompt,超过最大条数或长度的记忆会被截断,降低 token 消耗。
- 按会话隔离:全局记忆(角色设定、长期偏好)所有会话共享;会话记忆按 session 隔离,互不串扰。
- 工具化接口:提供
qq_memory_remember(添加记忆)、qq_memory_recall(按关键词回忆并复习)、qq_memory_forget(主动遗忘)、qq_memory_list(列出尚未遗忘的记忆)四个工具,供 AI 调用。 - 零外部依赖:唯一依赖
@deepseek-ai/schemastery(DSH 自带),存储使用 Node.js 内置fs,落盘为单个 JSON 文件。
安装与启用¶
插件发布到 npm 后,可通过以下命令安装:
dsh plugin --profile web add qq-memory
安装完成后重启 DSH(例如 dsh web)即可生效。本地开发或试用时,也可以通过 link 方式引入:
dsh plugin --profile web add -w link:/path/to/qq-memory
配置参数¶
可在 DSH 设置面板的 qq-memory 命名空间里修改,或通过环境变量覆盖。主要参数如下:
| 参数 | 默认 | 说明 |
|---|---|---|
tauDays |
7 | 遗忘半衰期(天),值越大遗忘越慢 |
threshold |
0.15 | 遗忘阈值:保持率低于此值即视为「已遗忘」 |
boost |
1.5 | 每次回忆时的强度放大系数 |
maxItems |
10 | 注入上下文的最大记忆条数 |
maxChars |
200 | 单条记忆注入的最大字数 |
对应环境变量:QQ_MEMORY_TAU_DAYS / QQ_MEMORY_THRESHOLD / QQ_MEMORY_BOOST / QQ_MEMORY_MAX_ITEMS / QQ_MEMORY_MAX_CHARS。
存储位置¶
默认存储路径为 ~/.dsh/qq-memory/memories.json,可通过环境变量 QQ_MEMORY_DIR 覆盖,便于测试与迁移。
典型用法¶
在 DSH 的对话或工具定义中,可以通过工具调用实现记忆的增删查:
- 记住一条长期记忆(含内容、重要性、标签):
- 调用
qq_memory_remember,传入content、importance(影响初始强度)和tags。 -
插件会自动去重相似内容并合并记忆。
-
按关键词回忆记忆:
- 调用
qq_memory_recall,传入关键词。 -
命中的记忆会被「复习」,强度增加、时间戳刷新,使其忘得更慢。
-
主动遗忘一条过时记忆:
-
调用
qq_memory_forget,传入记忆 ID。 -
列出当前尚未遗忘的记忆:
- 调用
qq_memory_list,返回尚未遗忘的记忆列表,包含 id、内容和标签。
适用场景与注意事项¶
该插件适合需要跨会话记忆的 DSH 应用场景,例如:
- 需要记住用户长期偏好的助手或客服机器人。
- 需要维护角色设定与历史上下文的 Agent。
- 需要在对话中引用过往关键信息的聊天机器人。
注意事项:
- 插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证。
- 记忆存储为本地 JSON 文件,需确保运行目录有写入权限。
- 插件依赖
@deepseek-ai/schemastery,DSH 已内置该依赖,无需额外安装。
结语¶
qq-memory 让 DSH 应用具备长期记忆与按需回顾的能力,同时通过遗忘曲线自动过滤低价值记忆,帮助节省 token。如果你正在构建需要记忆功能的智能体或助手,可以考虑引入这个插件。了解更多细节,可访问插件目录页或查看 GitHub 仓库。