前言¶
DeepSeek Harness (DSH) 的生态强调插件化扩展。在构建智能体时,一个常见痛点是模型在多轮对话或跨会话中逐渐遗忘上下文。dsh-layered-memory 旨在解决这一问题,通过引入分层长期记忆机制,帮助智能体在会话之间保持连续性和个性化。
插件简介¶
这是一个静态 bundle 插件,由 Olalaye 维护。它通过 dsh plugin 命令安装后,随 Harness 启动自动加载。安装后零配置,模型会自动获得记忆管理能力。插件的核心价值在于将记忆划分为三层结构,并利用 AI 进行自动提炼与去重。
核心架构¶
插件将记忆划分为三个层级,每层独立存储、独立容量上限。
- 瞬时(Transient):存储当前会话的要点。由
agent/pre-step事件钩子自动捕获用户消息,无需模型干预。 - 情景(Episodic):存储每次会话的摘要。在任务收尾或用户告别时,通过
memory_commit提交,自动沉淀会话记录。 - 语义(Semantic):存储长期事实、偏好和习惯。由模型自动提炼,支持跨会话精准召回。
数据持久化在 ~/.dsh-memory/ 目录下,以 JSON 文件形式存储。
安装与启用¶
通过 DSH 的插件管理器安装,无需构建步骤。
dsh plugin --profile demo add github:Olalaye/dsh-layered-memory
安装完成后,模型会自动获得四个工具函数和一套系统提示词,无需额外配置即可使用。
模型工具¶
插件向模型注册了四个工具,支持自然语言调用。
- memory_recall:跨层检索相关历史。当用户提到”之前”、”上次”或”记得吗”时优先调用。
- memory_remember:写入语义事实或瞬时笔记。适用于用户明确表达的长期偏好或习惯。
- memory_commit:提交当前会话摘要。将情景记录沉淀到情景层,并将事实沉淀到语义层。
- memory_stats:查看各层条数与存储位置。
典型用法¶
在对话中直接使用自然语言即可触发记忆操作:
- “记住:我汇报时喜欢用表格”
- “以后写文档都用中文,标题用 ## 两级”
- “上次我们讨论的 X 项目结论是什么?”
- “把这个会话记下来”
- “查一下我上次说的关于 Y 的要求”
- “忘记我之前说的那件事吧”
管理接口¶
该插件不提供 React 设置页,而是通过 HTTP API 提供管理能力。Web 服务默认仅监听 127.0.0.1。
管理 API 路由:
- GET
/api/memory/stats:统计各层条数。 - GET
/api/memory/list:列出记忆条目。 - GET
/api/memory/search:全文检索。 - POST
/api/memory/add:手动新增。 - POST
/api/memory/update:编辑条目。 - POST
/api/memory/remove:删除条目。 - POST
/api/memory/clear:清空记忆。
删除、清空等敏感操作必须通过 HTTP API 完成。
注意事项¶
- 数据隐私:记忆数据存储在用户目录(
~/.dsh-memory/)下,属于个人隐私数据,不属于仓库内容。 - 删除限制:模型工具暂不提供删除入口,仅支持通过 HTTP API 进行删除或清空操作。
- 会话计数:重启进程后,会话计数器会重置,但已落盘的历史数据不会丢失。
- 回环监听:Web 服务仅监听本地回环地址,不对外暴露。
参考资料¶
- GitHub 仓库:Olalaye/dsh-layered-memory
- 社区目录:SkillHub