前言¶
DeepSeek Harness(DSH)采用“一切皆插件”的架构,允许开发者通过插件扩展系统的核心能力。在使用 LLM 构建智能体时,最常见的问题是上下文丢失:新对话无法利用旧对话中沉淀的信息,导致智能体必须重复解释背景或重复执行任务。dsh-shared-memory 插件旨在解决这一痛点,它提供了一套跨对话记忆系统,通过持久化记忆注入和工具化管理,让智能体能够保持连贯性。
插件定位¶
这是一个为 DSH 提供跨对话记忆能力的插件。它采用类似 Hermes 的设计理念,将持久化记忆注入每个会话的系统提示词中,并提供 memory 工具和可视化面板来维护这些记忆。
核心功能¶
该插件主要包含以下能力:
- 分层记忆管理:
- 常驻注入:
MEMORY.md(Agent 高频笔记)和USER.md(用户画像)会常驻注入每个新会话的系统提示词中。 - 按需加载:
topics/目录下的主题文件(如feishu.md)不常驻注入,仅在MEMORY.md末尾生成一行索引,Agent 需要时通过工具按需读取。
- 常驻注入:
- 记忆维护工具:
- 提供
add、replace、remove、list命令。 - 支持
target参数,可指定写入memory、user或topic:<文件名>。 - 内置写入自检规则,引导 Agent 仅记录原则、偏好、决策、纠正、工作数据和持久事实。
- 提供
- 可视化记忆面板:
- 侧边栏提供“记忆”按钮,点击打开面板。
- 面板包含“笔记”、“画像”、“主题库”三个标签页,支持浏览、编辑、增删条目,并实时显示容量使用情况。
- 格式与限制:
- 记忆条目使用
§分隔符,推荐使用[发现]/[决策]/[偏好]/[纠正]作为前缀。 - 容量可通过环境变量
DSH_MEMORY_CHAR_LIMIT、DSH_MEMORY_USER_CHAR_LIMIT、DSH_MEMORY_TOPIC_CHAR_LIMIT进行控制。
- 记忆条目使用
安装与启用¶
安装该插件推荐使用官方插件命令。
dsh plugin --profile web add github:futongxu9-maker/dsh-shared-memory
如果命令行方式不可用,可执行手动安装:
- 将
dsh-shared-memory目录复制到~/.dsh/profiles/web/node_modules/dsh-shared-memory/。 - 在
~/.dsh/profiles/web/cordis.patch.yml中追加以下内容:
- insert:
- id: shared-memory
name: 'dsh-shared-memory'
- 刷新页面或重启服务。
使用方法¶
插件启用后,主要在模型侧和用户侧进行交互。
-
模型侧(Agent 使用):
系统提示词会自动注入MEMORY.md、USER.md和主题索引。Agent 可调用memory工具进行维护,例如添加新条目、替换旧条目、删除条目或查看当前用量。工具会根据内置规则拦截不符合要求的临时内容。 -
用户侧(人工管理):
点击侧边栏底部的“记忆”按钮,在打开的面板中切换三个标签页进行管理。面板支持增删改查操作,并显示字符占用情况。 -
手动编辑:
记忆文件存储在~/.dsh/memories/目录下。可以直接编辑MEMORY.md、USER.md或topics/*.md文件来修改内容。
环境要求¶
- DeepSeek Harness:版本需为 rc.6 或更高(
dsh web)。 - 操作系统:支持 Windows、macOS 和 Linux。
- 许可证:MIT。
总结¶
dsh-shared-memory 通过结构化的分层记忆和可视化面板,解决了智能体在跨对话中遗忘上下文的问题。安装该插件后,开发者可以更轻松地管理 Agent 的长期记忆。