前言¶
DeepSeek Harness(DSH)的理念是“一切皆插件”。社区开发者基于此架构构建了丰富的扩展生态。dsh-memory-manager 是一个社区插件,提供了 DSH 基本的记忆功能。它移植自 ZCode 的项目记忆设计,旨在解决智能体在多轮对话中上下文丢失、重复解释背景的问题,支持按项目结构化存储记忆,并允许 Agent 主动维护。
核心功能¶
该插件主要包含以下能力:
- ZCode 记忆移植:沿用 ZCode 的记忆文件格式(YAML frontmatter + Markdown)、类型体系(user / feedback / reference / project / other)与按项目分目录的存储布局。
- 设置中的记忆管理:在设置面板新增“记忆管理”页,支持搜索、按项目/类型筛选、新建、编辑、删除。
- 自动加载到对话:默认开启,每次模型调用时将当前项目及全局记忆的索引(名称 + 描述,不含正文)作为系统提示注入,节省上下文。
- Agent 记忆工具:注册 memory_save / memory_get / memory_list 三个工具,允许 Agent 按需读取或回写记忆。
- 从 ZCode 导入:支持一键扫描并导入 ~/.zcode/cli/memories 目录。
- 全局 + 项目记忆:global 项目存放跨项目记忆,项目 key 取自工作区路径。
- 自动索引:自动重写 MEMORY.md 索引与 memory_summary.md 摘要。
- 主题适配:使用 DSH 官方设计 token,跟随明暗主题。
安装¶
使用官方 dsh plugin 命令安装:
dsh plugin --profile web add /path/to/dsh-memory-manager
安装完成后重启 DSH,打开 设置 → 记忆管理 即可使用。
本项目是基于 DeepSeek Harness 构建的社区插件,并非 DeepSeek 官方产品。记忆格式移植自 ZCode 的项目记忆设计。
使用方法¶
- 打开设置,侧栏会出现 记忆管理 页。
- 查看记忆:列表按项目分组、最新优先。可使用搜索框查找名称或描述,或按项目和类型筛选。
- 自动加载记忆到对话:默认开启。DSH 会将当前会话工作区项目的记忆 + 全局记忆的索引(名称 + 描述,不含正文)作为系统提示注入。Agent 对某条感兴趣时会自行调用工具读取全文。
- Agent 回写记忆:Agent 在对话中发现值得长期保留的偏好、反馈或约定时,可调用
memory_save工具写入,origin 标记为agent。 - 新建记忆:填写名称、类型、项目(
global或具体项目名)、描述与 Markdown 正文。 - 编辑与删除:在卡片右侧操作。删除需二次确认,操作永久。
- 从 ZCode 导入:点击导入按钮,扫描
~/.zcode/cli/memories,同名记忆自动跳过。
工作原理¶
插件通过 cordis.patch.yml 挂载,核心逻辑如下:
- 存储:记忆以 Markdown 文件形式存储在 <DSH_HOME>/memories/projects/ 目录下,使用 node:fs 直接读写,无需额外依赖。
- 注入:系统提示(systemPrompt.section)在每次模型调用时注入记忆索引,节省 Token。
- 工具:Agent 工具通过 Typert 协议注册,允许 Agent 读写文件系统。
注意事项¶
- 该插件以当前 DSH 进程的权限运行,请确保安装来源可靠。
- 配置项详情(如
config.的具体键)未在 README 中明确列出,需结合代码或使用默认配置。 - 记忆文件格式移植自 ZCode,兼容 ZCode 的记忆目录结构。