前言¶
在 DeepSeek Harness (DSH) 中开发智能体时,上下文窗口管理是一个核心痛点。随着对话轮次增加,历史记录会迅速膨胀,如果不加以控制,模型容易遗忘早期的关键偏好或项目事实。同时,处理长期记忆通常需要引入独立的向量数据库或向量服务,增加了系统复杂度。DSH Hermes Memory 插件旨在解决这些问题,它为 DSH 提供了一种轻量级的长期记忆方案,支持分层存储、自动提炼和压缩,且无需启动独立的数据库进程。
插件简介¶
DSH Hermes Memory 是一个面向本机 DeepSeek Harness 的轻量级长期记忆插件。它借用 Hermes 的分层与可追溯思想,通过自动提炼和压缩机制,将对话中的稳定事实沉淀为结构化记忆。该项目由 liuyuhao1122 维护,采用 MIT 许可证。
核心能力¶
该插件提供以下主要功能:
- 分层记忆存储:将记忆划分为 USER.md(用户偏好)、MEMORY.md(跨项目经验)、projects/<项目哈希>.md(当前项目事实)和 PROCEDURES.md(可复用流程),并在组装提示词时按需注入。
- 自动提炼与压缩:在会话结束后自动提取稳定事实,并在达到字符上限或检测到重复内容时进行自我压缩,确保记忆文件的大小可控。
- 隐私保护:对会话日志进行 gzip 压缩和 AES-256-GCM 加密,支持敏感数据遮盖。
- 基于工具的查询与管理:提供一系列工具命令,用于搜索、读取、记忆和删除事实。
安装与启用¶
使用该插件前,需要确保环境满足以下依赖:
- Node.js 20 或更新版本
- DeepSeek Harness 0.2.0-rc.2
安装步骤¶
通过官方插件安装命令将插件添加到 Harness 中:
dsh plugin --profile web add github:liuyuhao1122/dsh-hermes-memory
安装完成后,需要重启 dsh web 进程以加载新插件。插件会自动在 $DSH_HOME/memories-hermes(未设置环境变量时为用户目录下的 .dsh/memories-hermes)创建数据目录。
典型用法¶
安装后,可通过插件提供的工具命令与记忆交互。
工具命令¶
- 搜索:检索四层记忆及近期会话原文。
hermes_memory_search({query, limit?})
- 读取:读取特定层级的记忆。
hermes_memory_read({layer})
- 来源展开:按引用展开原始片段。
hermes_memory_source({ref})
- 添加事实:强制将事实添加到指定层级。
hermes_memory_remember({fact, layer})
- 删除事实:从活动记忆中移除匹配条目。
hermes_memory_forget({fact, layer})
数据结构¶
插件会在数据目录下生成以下文件:
* USER.md:用户偏好,注入提示词。
* MEMORY.md:跨项目经验,注入提示词。
* projects/<项目哈希>.md:当前项目事实,注入提示词。
* PROCEDURES.md:可复用流程,按需读取。
* sessions/*.jsonl:加密的会话片段。
* memory.key:本地加密密钥,备份时必须保留。
注意事项与限制¶
- 不启动独立服务:插件不启动数据库、向量服务或独立进程,完全依赖 DSH 的模型配额和本地文件系统。
- forget 的局限性:
forget命令仅移除活动 Markdown 中的条目并屏蔽常规搜索,不会立即擦除加密的会话或提炼日志。 - 保留期:原文归档默认保留 30 天,提炼归档默认保留 365 天。
- 版本兼容性:当前仅验证了与 DSH 0.2.0-rc.2 的兼容性,其他预览版本未经测试。
- 密钥安全:
memory.key丢失会导致插件停止初始化,必须与日志文件一同备份。
总结¶
DSH Hermes Memory 为 DSH 提供了一套无需额外数据库的分层记忆解决方案。通过自动提炼和压缩,它能够有效管理上下文,同时保持数据的隐私性。适合希望在本地环境中快速构建具备长期记忆能力的智能体的开发者。更多细节可参考插件目录或 GitHub 仓库。