dsh-markdown-memory:基于文件夹的 DeepSeek Harness 长期记忆插件

前言

DeepSeek Harness (DSH) 插件生态强调“一切皆插件”。在构建或使用智能体时,长期记忆的留存与检索是常见痛点。向量数据库往往需要额外部署,托管服务涉及数据所有权,而会话蒸馏插件通常局限于单次会话或难以手动干预。

dsh-markdown-memory 试图解决上述问题,它将长期记忆降维为一个普通的 Markdown 文件夹,让所有熟悉文件操作的开发者都能直接掌控记忆的存储与读取。

核心功能

该插件将记忆目录挂载为系统提示的一部分,每个持久化事实对应一个 Markdown 文件,通过 YAML frontmatter 存储元数据。

  • 零基础设施:无需守护进程、数据库、账号或嵌入管道。直接指向一个文件夹即可运行。
  • 人类拥有:记忆以纯文本形式存储。你可以直接读取、编辑、执行 git diff 或删除,记忆的所有权完全属于你。
  • 代理无关:基于文件格式而非桥接协议。任何能读取文件的代理都能访问这份记忆,无需迁移数据。
  • YAML frontmatter 支持:支持 name、description 和自定义 metadata。
  • 索引文件支持:默认 MEMORY.md 作为索引文件,记录所有记忆。
  • 递归文件列表:支持递归列出目录下的文件。
  • 触发器检索:支持在会话步骤中根据关键词(trigger)按需召回记忆。
  • 会话种子记忆:支持在会话开始时注入关键事实。
  • 去重机制:在会话日志中自动去重,避免重复注入。
  • Obsidian 挂载:可以直接挂载现有的 Obsidian vault 作为记忆源。
  • 忽略模式:支持通过 .obsidian、.git、.trash、node_modules 等忽略模式过滤文件。

安装与启用

在终端中执行以下命令安装插件:

dsh plugin --profile <name> add dsh-markdown-memory

安装后,需要在配置文件中指定记忆目录的绝对路径。配置项包括 path、indexFile、maxBytes、sectionOrder 以及控制递归和文件数量的参数(如 maxFiles、maxDepth)。

典型用法

配置示例

在 cordis.patch.yml 中添加配置,指定记忆目录路径:

- id: markdown-memory
  name: dsh-markdown-memory
  config:
    path: /absolute/path/to/your/memory
    indexFile: MEMORY.md
    maxBytes: 32768
    sectionOrder: 120
    recursive: true
    ignore: ['.obsidian', '.git', '.trash', 'node_modules']
    maxFiles: 500
    maxDepth: 8
    recall: true
    maxRecallPerStep: 3
    caseSensitiveTriggers: false

挂载 Obsidian Vault

如果你已有 Obsidian vault,可以直接将其作为记忆源挂载:

- id: markdown-memory
  name: dsh-markdown-memory
  config:
    path: /absolute/path/to/YourVault
    indexFile: Home.md

模型将获得 vault 的根目录索引以及所有笔记的相对路径,支持使用 [[wikilink]] 进行引用。

设置种子记忆

对于需要在会话开始时即持有的关键事实,可在文件 frontmatter 中添加 seed: true:

---
name: deploy-ritual
description: the release steps that must not be reordered
metadata:
  seed: true
---

Never reorder the migration step ahead of the backup step.

设置触发器

对于需要按需检索的记忆,可在 frontmatter 中定义 triggers:

---
name: deploy-ritual
metadata:
  triggers:
    - deploy
    - release checklist
---

Never reorder the migration step ahead of the backup step.

注意事项

  • 绝对路径:记忆目录必须配置绝对路径,缺失或非目录会导致加载失败。
  • 会话刷新:对索引文件或记忆文件的编辑,在下次会话开始前不会生效,需要重启会话才能看到变更。
  • 大仓库优化:对于包含大量文件的 vault,建议同时调高 maxFiles 和 maxBytes 参数,以容纳完整的文件列表。
  • 文件类型限制:只有 .md 文件会被列入索引,其他文件类型(如附件)会被忽略。
  • 触发器匹配:触发器匹配为字面子串匹配,默认不区分大小写。

总结

dsh-markdown-memory 将记忆回归为文件系统中的文件。它不引入额外的复杂组件,利用现有的文件管理习惯,让记忆的存储、编辑和版本控制变得透明且可控。对于追求数据自主权和轻量化部署的开发者,这是一个务实的长期记忆解决方案。

插件目录:https://www.skillhub.cn/plugins/SYMlp/dsh-markdown-memory
源码地址:https://github.com/SYMlp/dsh-markdown-memory

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜