DSH 共享记忆体系:让跨会话上下文「零传递」(禅道二开实践)
用 AI Agent 做长线项目时,跨会话传递上下文是个老大难。本文记录我用 DSH(DeepSeek Harness) 内置机制搭建“共享记忆”的完整方案:新会话零手工传递,自动具备项目上下文;并附禅道(Zentao)二开项目的落地实践与外部记忆框架选型评估。
文中所有主机地址、端口、路径均以占位符表示(如 <禅道内网主机>、<禅道部署目录>),不包含任何真实敏感信息。
一、问题:为什么需要“共享记忆”
Section titled “一、问题:为什么需要“共享记忆””用 Agent 处理一个持续数周的项目(比如禅道二次开发),会频繁遇到:
- 新会话里,Agent 对项目一无所知:不知道服务器在哪、怎么登录、代码仓库在哪、有什么纪律约定;
- 每次都要手工粘贴“交接文档”,又长又容易漏;
- 会话间信息靠人肉搬运,费时且不可靠。
理想形态是:记忆写一次,之后所有会话自动拥有。DSH 恰好提供了一组原生机制,可以组合出这样的体系。
二、DSH 记忆机制全景
Section titled “二、DSH 记忆机制全景”DSH(DeepSeek Harness)自带四种“记忆载体”,按注入/加载方式区分:
| 机制 | 位置 | 生效方式 | 特点 |
|---|---|---|---|
| 全局指令 AGENTS.md | ~/.dsh/AGENTS.md |
自动注入每个会话的系统提示 | 所有项目共享;改动后自动替换;有预算上限 |
| 项目指令 AGENTS.md | 项目根/各层目录的 AGENTS.md、CLAUDE.md |
git 仓库内自动发现并注入 | 按项目隔离;进入目录即生效 |
| 技能 Skills | ~/.dsh/skills/<名称>/SKILL.md |
会话技能目录收录,按名按需加载 | 详细手册;不占常驻预算 |
| 工作区档案 | 会话工作区文件 | 持久化共享,主动读取 | 深度报告、调研产出(建议 git 版本化) |
另有外部记忆通道:DSH 内置 MCP client,可接入第三方记忆服务器(如 Memorix、Engram,默认关闭),作为可选的语义检索增强层。
2.1 AGENTS.md 的注入行为(关键)
Section titled “2.1 AGENTS.md 的注入行为(关键)”- 用户全局
~/.dsh/AGENTS.md会进入每一个会话的首次请求(呈现为Instructions from: ~/.dsh/AGENTS.md); - 项目级
AGENTS.md按.git定位项目根,在对应目录下工作的会话自动加载; - 文件内容变更后,下一次触发会自动替换为最新内容,无需重启或手工操作;
- 内容有字节预算约束,超预算的宽泛文件会被省略、最具体的文件被截断——常驻内容必须精简。
2.2 Skills 的加载行为
Section titled “2.2 Skills 的加载行为”- 技能目录包格式:
<kebab-case 名称>/SKILL.md,frontmatter 必填name、description; - 技能只在被显式加载时才注入正文,因此可以写得很详细而不占常驻预算;
- 适合放“操作手册”:二开纪律、升级流程、调研大纲等。
三、四层记忆架构设计
Section titled “三、四层记忆架构设计”组合上述机制,形成四层模型:
L0 全局常驻(自动注入所有会话) ~/.dsh/AGENTS.md —— 最小稳定事实(<2KB)L1 项目常驻(git 自动发现注入) <项目根>/AGENTS.md —— 项目专属上下文L2 按需手册(skill 工具按名加载) ~/.dsh/skills/<项目>/SKILL.md —— 详细操作手册L3 档案(主动 read) <工作区>/docs/ —— 报告、调研产出(git 版本化)L4 外部记忆(阶段二可选) Mem0(自托管)+MCP 等 —— 语义检索增强(默认关闭)设计原则:
- 常驻内容只放稳定事实(L0/L1):主机、登录别名、仓库位置、纪律红线、文档指针——一两 KB 以内;
- 详细内容下沉到 L2:手册按需加载,写多长都不心疼;
- 深度产出进 L3 档案:报告、调研结果留在工作区并纳入 git;
- 敏感信息只存“指针”:口令、密钥、哈希绝不写入任何记忆层,只写“口令见某配置文件”;
- 记忆即代码:L0/L1/L2 的源文件全部纳入 git 仓库,可审计、可回滚。
L0 全局事实示例(精简化)
Section titled “L0 全局事实示例(精简化)”## 禅道二开项目(主要工作域)- 主机:<禅道内网主机>(CentOS 7) - 免密登录:ssh <别名>(root;密钥 ~/.ssh/<专用密钥>)- 禅道:zbox 开源版 <版本> @ <禅道部署目录>;Web http://<主机>/zentao/- 应用数据库:MySQL <版本> @ 127.0.0.1:<端口>,库 zentao,表前缀 zt_ - 口令等敏感信息不写入记忆层;见服务器 <配置文件路径>- 二开仓库:远端裸仓 <裸仓路径>(main);本地克隆 <工作区>/custom
## 纪律(所有会话遵守)- vendor(官方)代码一律不入库;二开只写 module/<模块>/ext/ 或自定义 module/- 远端数据库默认只读;敏感配置脱敏(模板入库)- 远端操作默认只读;需要写入时先说明并获批
## 手册与档案- 详细二开/升级/调研指南:skill <技能名>- 部署/账号/拓扑文档:工作区 docs/L2 技能 frontmatter 示例
Section titled “L2 技能 frontmatter 示例”---name: zentao-devdescription: 禅道二开完整上下文手册:部署拓扑、二开纪律与 ext 扩展机制、升级保留流程、 DB/API 调研大纲与产出归档约定。涉及禅道二开相关任务时加载本技能。whenToUse: 涉及禅道二开、部署/升级/回滚、数据库或 API 调研时---
# zentao-dev 技能手册...四、外部记忆框架评估(阶段二候选)
Section titled “四、外部记忆框架评估(阶段二候选)”DSH 内置机制已覆盖“文件型共享记忆”;如果还需要语义检索(对大量记忆做向量化查询),可以引入外部框架。调研结论:
| 框架 | 形态 | 能力 | 部署/依赖 | 数据主权 | 适用场景 | 结论 |
|---|---|---|---|---|---|---|
| Mem0 | 开源可自托管 + 云平台 | ADD/SEARCH 事实记忆、去重/冲突消解、图记忆、会话记忆;MCP 生态成熟 | 自托管需向量库(Qdrant 等);云需注册 | 自托管可控 | 语义检索型积累记忆 | 首选(自托管 + MCP) |
| MemPalace | 开源轻量 | 对话/项目挖掘为可检索记忆;宣称 benchmark 高分 | 轻量自托管 | 可控 | 个人/项目知识记忆 | 轻量备选 |
| TencentDB Agent Memory | 腾讯云托管(含开源版) | 记忆管理 API、Team Memory 团队共享、宣称降 Token 消耗 | 腾讯云账号/网络 | 数据入腾讯云 | 已有腾讯云、团队共享 | 托管备选(需合规评估) |
选型判断:三者都是“记忆写入/检索”增强层。对于静态+渐进式项目知识(部署事实、开发纪律、调研产出),DSH 内置文件机制即可完整覆盖;外部框架默认不启用,避免云依赖与数据外泄风险。只有当需要“跨大量记忆做语义检索”或“团队共享记忆”时,才值得进入阶段二。
五、落地案例:禅道二开项目
Section titled “五、落地案例:禅道二开项目”5.1 实施过程
Section titled “5.1 实施过程”- 建记忆仓库
dsh-memory/(独立 git 仓库):放 L0 AGENTS.md、L2 技能、部署脚本、架构文档; - 写 L0 全局事实:主机/别名/仓库/纪律/文档指针(控制在 2KB 内);
- 写 L2 技能手册:二开纪律、ext 扩展机制、升级流程、DB/API 调研大纲;
- 写 L1 项目级 AGENTS.md:工作区目录说明与常用操作;
- 部署脚本 install.ps1(幂等):把仓库内容同步到
~/.dsh(目录 junction 优先、复制回退); - 执行部署 + 校验。
5.2 校验结果(践行检查)
Section titled “5.2 校验结果(践行检查)”| 校验项 | 结果 |
|---|---|
| 敏感信息 grep(口令/密钥/哈希) | 零命中 ✅ |
| L0 常驻文件字节数 | 1608 B(预算 2048 B)✅ |
| 部署脚本幂等性 | 首跑建链接、二跑识别已存在 ✅ |
| L0 自动注入 | 部署后本会话即时出现 Instructions from: ~/.dsh/AGENTS.md ✅ |
| L2 技能生效 | 技能目录收录且 skill 工具加载成功 ✅ |
5.3 效果
Section titled “5.3 效果”部署完成后,任何新会话:
- 首轮请求自动携带项目事实(L0/L1 注入)——主机、登录方式、仓库、纪律、文档位置;
- 需要细节时一句
skill <技能名>加载完整手册; - 深度报告在工作区
docs/中,随时可读。
不再需要任何“交接文档粘贴”。
六、记忆即代码:版本控制与变更流程
Section titled “六、记忆即代码:版本控制与变更流程”- 源文件入 git:
dsh-memory/仓库管理 AGENTS.md 与技能的源,部署脚本负责同步到~/.dsh; - AGENTS.md 变更是“全局发布”:影响所有会话,提交信息需说明影响面,修改需谨慎;
- 敏感红线:记忆层只存“指针”,发布前用 grep 校验口令/密钥/哈希零命中;
- 可回滚:git revert 后重跑部署脚本即可全局回退。
七、局限与阶段二规划
Section titled “七、局限与阶段二规划”已知局限:
~/.dsh/AGENTS.md影响本机所有会话,只适合放“稳定事实”;- 文件型记忆适合项目知识,不适合高频对话历史记忆;
- 常驻内容有字节预算,细节必须下沉到技能/档案层。
阶段二(可选):
- 需要语义检索时:评估自托管 Mem0 + MCP(数据主权可控)接入 DSH;
- 需要团队共享记忆:评估 TencentDB Agent Memory(Team Memory);
- 需要轻量个人知识库:可先试 MemPalace。
DSH 的“共享记忆”不是单一功能,而是一组机制的组合:
AGENTS.md(自动注入)+ Skills(按需加载)+ 工作区档案(深度产出)+ 可选 MCP 外部记忆 = 四层共享记忆体系
关键收获:记忆的源文件纳入 git、敏感信息只存指针、常驻内容保持精简、细节下沉按需加载。这套模式让跨会话协作从“每次人肉交接”变成“一次写入、处处可用”,对任何长线 Agent 项目都适用。