dsh-trilogy:DeepSeek Harness 的项目记忆插件

前言

DeepSeek Harness (DSH) 的插件化架构旨在解决上下文管理的长期性问题。模型不具备持久的记忆能力,仅靠提示词(Prompt)无法保证每个工作区都有统一的上下文。dsh-trilogy 是一个 Host 插件,它接管了记忆文件的创建、加载和持久化工作,不依赖模型自觉,而是通过插件在宿主端强制执行记忆行为。

插件定位

  • 名称:dsh-trilogy
  • 一句话介绍:为每个工作区维护三份 Markdown 记忆文件:自动创建、自动加载、自动记录。
  • 维护者:TodayJin
  • 许可证:MIT

安装与启用

前置条件:pnpm 在 PATH 上,DSH 版本 0.1.7-rc.2。

通过本地链接安装,修改代码后重启 dsh web 即可生效:

dsh plugin --profile web add link:D:/path/to/dsh-trilogy

卸载插件不会删除项目的 memory/ 目录:

dsh plugin --profile web remove dsh-trilogy

核心功能

该插件为每个工作区在 <项目根>/memory/ 下维护三份文件:

  • PROJECT.md:记录项目现状,就地编辑。
  • DECISIONS.md:记录决策和被否决的方案,顶部追加。
  • SESSIONS.md:记录发生了什么,顶部追加。

主要能力:
1. 自动创建与加载:会话启动时自动创建文件;自动注入三个文件的内容(内容未变则不重复注入)。
2. 工具支持:提供 memory_checkpoint(分类记录)、memory_read(读取文件)、memory_search(BM25 检索)工具。
3. 区域分类:支持按区域标签分类记录,每个区域保底 1 条,其余按活跃度加权。
4. 图形界面:提供浏览器半边界面,支持查看、编辑、导出/导入、归档与恢复记忆。
5. 注入预算控制:严格限制注入量,SESSIONS.md 全文不注入,只注入最近 N 条日志。

使用方法

安装后无需配置,在任意项目里开一个会话,memory/ 目录和 AGENTS.md 的 boot block 会自动创建。

1. Bootstrap(初次填充)

如果 PROJECT.md 还是空的,插件会注入一条指令,要求模型读取 README、跑测试命令并填充 PROJECT.md 的五个固定节。填完后指令自动消失。

2. 会话注入机制

每个会话开始时,三个文件会自动注入上下文。
* 去重:内容没变则不重复注入。
* 日志策略:SESSIONS.md 全文不注入,只注入最近 N 条日志(默认 15 条)。
* 预算降级:如果总注入预算超限,会优先保留 PROJECT.md,然后减少日志条目数量,最后才丢弃历史日志。

3. 记录进展

使用 memory_checkpoint 工具:
* 参数支持 sessions[](可带 area)、decisions[]、project[]、notes。
* 工具会根据路由表将内容写入对应文件。
* 使用 memory_search 工具可以检索记忆内容(含归档)。

4. 图形界面操作

在 DSH Web 设置中找到“项目记忆”:
* 查看与编辑:按文件用途分页签查看(现状/决策/日志/归档)。
* 清除与忘记:清除会删除记忆文件;忘记只移除注册表索引,不删除磁盘文件。
* 导入导出:支持将 memory/ 导出为 JSON 包并在另一台机器或工作区导入。

配置与注入策略

在 profile 的 cordis.patch.yml 中按 id 覆盖配置:

- id: trilogy
  config:
    injectBudgetBytes: 24000
    nudgeMaxPerSession: 5

关键配置项:

键 默认值 说明
sessionEntriesInjected 15 决定有多少条 SESSIONS 日志被注入上下文
projectRootStrategy "workspace" "workspace" 表示工作区即项目根;"marker" 表示向上找 .git
projectStaleDays 14 PROJECT.md 落后多少天提示陈旧
writeBootBlock true 是否往 AGENTS.md 追加 Memory 段

注入优先级:
当注入预算不足时,按以下顺序降级:
1. 完整注入三个文件;
2. 日志条目逐档减半(15 -> 7 -> 3 -> 1);
3. 只保留 SESSIONS.md 的部分条目;
4. 只保留 DECISIONS.md 头部;
5. 最后才截断 PROJECT.md。

安全与注意事项

  1. 本机访问限制:所有 /trilogy 路由限制为本机访问(非 loopback 返回 403),防止未授权访问。
  2. 数据持久性:插件不依赖模型进行记忆维护,完全由 host 插件保证。卸载插件不会删除项目的 memory/ 目录。
  3. UI 图标:如果缺少特定图标,会自动回退成一个变色圆点。
  4. 模板可改:三个文件和 boot block 的模板位于 templates/,可自定义。

总结

dsh-trilogy 通过 Host 插件机制解决了 DSH 中上下文不连贯的问题。它强制执行了项目记忆的“三文件”结构,并通过智能的注入预算和区域分类策略,确保模型能高效获取上下文。适合需要长期维护项目上下文、多会话协作的开发场景。

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

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

小夜