dsh-memory-with-soul:用 Markdown 与 git 给 DSH 做长期记忆

前言

在 DeepSeek Harness(DSH)里跑智能体,常见问题是上下文一关,偏好、项目约定和上一轮结论就丢了。有人靠每次手动贴 system prompt,有人把笔记散在仓库各处,模型读不到、也缺少「读完该写回哪里」的约束。DSH 社区把能力拆成插件挂进 profile;下面介绍维护者 pzh-xsj 的 dsh-memory-with-soul(分类:记忆),用纯 Markdown + git 建记忆库,在会话开始注入、读文件时追踪、回合结束提醒提炼,不依赖数据库或云服务。

这是什么

dsh-memory-with-soul 是面向 DSH 的长期记忆库插件:会话开始时按 ~/.memory/config.json 的注入表把记忆拼成 <memory-context> 注入上下文;Agent 通过 read / ops_read_files 读记忆库文件时会被记下;回合结束时判断是否有「该提炼但未写日志」的情况并提醒写回文件。人格(角色卡)是一份 SOUL.md,改文件而不是改一堆配置项。当前 package 版本为 0.7.0,许可证 MIT。仓库:https://github.com/pzh-xsj/dsh-memory-with-soul;社区目录页:https://www.skillhub.cn/plugins/pzh-xsj/dsh-memory-with-soul(独立站点,与 DeepSeek / 幻方无官方从属关系)。

核心功能

三个生命周期挂点

时机 动作 实现位置(资料原文)
会话开始 读注入表,渲染并注入 <memory-context> core/render.py → agent.inject()
读文件 记录被读的记忆库文件 core/memory.py track
回合结束 判断是否需要提醒提炼 core/memory.py digest

插件加载时还会把包内 skills/ 复制到 ~/.dsh/skills/(非软链;内容变化后下次加载会刷新)。

记忆库目录

总册默认在 ~/.memory/:

~/.memory/
├── config.json          # 注入表:文件、预算、顺序
├── index.md             # 总览
├── README.md            # 给 AI 的保存/提炼/遗忘协议
├── roles/<role>/SOUL.md # 角色卡
├── playbooks/           # 跨项目方法论
├── topics/              # 单文件主题
├── user/                # 用户档案与偏好
├── agents/              # agent 注册表
├── archive/             # 归档(设置页只读)
└── .state/              # 运行时状态(gitignore)

项目级记忆在各工作区的 .memory/;每日日志形如 log/<agent>/YYYY-MM-DD.md,插件从 cwd 向上找 _meta.md 定位项目册。

设置页与配置

重启 DSH 后侧边栏会出现「记忆库」,共七个页签;内置 Web UI 路由为 /api/memory/ui(可通过 webUi 关闭)。在 profile 的 cordis.patch.yml 里对 memory-inject 那一行做 整行覆盖(不深合并),常用键包括:

键 默认 作用
enabled true 关闭插件设为 false
python ["python","python3","py"] 解释器候选;含路径分隔符则按绝对路径检查
injectSubagents false 子 agent 是否也注入(默认省 token)
trackAccess true 是否记录读过的记忆文件
digest true 回合结束是否做提炼提醒
installSkills true 加载时是否复制 skills
timeoutMs 10000 渲染器超时(毫秒)

Python 不在 PATH 时,可在 python 候选里写绝对路径。

安装与启用

装之前确认依赖:DSH >=0.1.0-rc.1 <0.3.0,Node.js >=22,Python >=3.10(核心逻辑在 core/memory.py,不是可选项)。

# 1. 安装插件(profile 名按实际修改;示例为 desktop)
dsh plugin --profile desktop add dsh-memory-with-soul

# 2. 首次使用:初始化记忆库(不 init 则只有空人格,插件仍可工作)
python ~/.dsh/profiles/desktop/node_modules/dsh-memory-with-soul/core/memory.py init

装好并 重启 DSH 后,新会话开头会出现 <memory-context> 块。Windows 上第 2 步路径为 %USERPROFILE%\.dsh\profiles\desktop\node_modules\dsh-memory-with-soul\core\memory.py,或按设置页里的路径提示操作。

典型用法

  1. 执行上面的安装与 init,用 git 管理 ~/.memory/(资料推荐可单独版本化、手动编辑、换机带走)。
  2. 在 roles/<role>/SOUL.md 写角色卡;在 user/、topics/、playbooks/ 等目录按 README 协议维护内容。
  3. 在项目工作区维护 .memory/ 与每日日志;回合结束时按插件提醒把结论写回 Markdown。
  4. 需要自检时,可在插件包目录运行 README 中的 smoke / test 命令,或对真库执行:
python core/memory.py checkup

适用场景与注意

适合谁: 希望 DSH 智能体跨会话记住偏好与方法论、又希望数据留在本地 Markdown、可用 git diff 审计的开发者。

边界(资料原文): 设置页主要读写总册;项目册有独立页签,日志落在项目 .memory/。archive/ 只读,归档用于保留「当时为何如此决定」。config.roles 决定运行中的 agent 用哪张角色卡,defaultRole 仅兜底且兜底可读不可写。DSH 是唯一支持的宿主;旧版 WorkBuddy 适配器已在 0.6.5 移除。

安全与权限: 插件随当前 DSH 进程权限运行,会读写 ~/.memory/、工作区 .memory/ 及 profile 配置。安装前请阅读仓库源码与 MIT 许可证,确认路径与注入内容符合你的环境策略。

结尾

dsh-memory-with-soul 把长期记忆落成 Markdown + git:会话注入、读文件追踪、回合结束提炼提醒,侧边栏「记忆库」统一管理。若要进一步了解参数与自检清单,以 GitHub README 为准。

  • 目录页:https://www.skillhub.cn/plugins/pzh-xsj/dsh-memory-with-soul
  • 源码:https://github.com/pzh-xsj/dsh-memory-with-soul
羽毛球分组比赛记分
小程序二维码

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

小夜