前言¶
在 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,或按设置页里的路径提示操作。
典型用法¶
- 执行上面的安装与
init,用 git 管理~/.memory/(资料推荐可单独版本化、手动编辑、换机带走)。 - 在
roles/<role>/SOUL.md写角色卡;在user/、topics/、playbooks/等目录按 README 协议维护内容。 - 在项目工作区维护
.memory/与每日日志;回合结束时按插件提醒把结论写回 Markdown。 - 需要自检时,可在插件包目录运行 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