五会话自进化:用 DSH 把项目经验写进持久记忆

前言

在 DeepSeek Harness(DSH)里长期改同一仓库时,常见做法是每次新开会话靠人工回忆上下文,或把要点写进 README、技能文件。前者容易漏掉调试路径和反复出现的坑,后者需要主动维护,且很难自动关联「哪几次会话里出现过这条结论」。

五会话自进化(dsh-five-session-evolution)是维护者 liuhuishang 发布的 DSH 记忆类插件:每累计五个不同的项目根会话真正结束,触发一次独立复盘,把有来源引用的项目经验和工作流候选写入 DSH 持久存储,并在后续根会话中按需注入。学习结果按工作目录隔离,使用当前 DSH 默认模型,无需另配第三方记忆服务账户。

这是什么

插件全称:五会话自进化 · Five-session Evolution。一句话定位:Evidence-backed project memory and reusable workflow drafts for DeepSeek Harness——每五次项目会话结束自动复盘,积累可追溯经验与工作流候选。

  • 维护者:liuhuishang
  • 分类:记忆
  • 许可证:MIT(见 GitHub 仓库)
  • 初版面向:DSH 0.2.1-rc.5、Node.js 22+
  • 社区目录页:SkillHub 插件页
  • 源码与说明:GitHub 仓库

DSH 生态采用「一切皆插件」思路;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。安装前请自行查看源码与许可证,插件以当前 DSH 进程权限运行。

工作方式

下面介绍插件在运行层如何串联计数、队列与复盘。

同一项目的 5 个不同会话结束
  → 持久队列
  → 独立、无工具的复盘 Agent
  → JSON 校验与来源检查
  → 项目经验 + 工作流候选 + 复盘记录
  → 后续会话自动获得项目经验

要点如下:

  1. 默认每 5 个不同的根会话组成一批,可在配置中改为 2–20 个。
  2. 同一会话 ID 只计一次;恢复后再次关闭,计数保持原值。
  3. 子 Agent、插件自身复盘会话,以及标记为 automation / subagent / goal 的自动会话跳过。
  4. 每条经验和每个工作流候选必须引用本批至少两个不同的会话 ID;插件校验来源 ID 和结果结构,事实是否正确仍需结合当前项目核对。
  5. 有新证据时,同名主题经验与同名候选更新;默认保留最近 30 条经验、20 个候选和 100 次复盘记录。
  6. 待处理批次跨重启保留。失败按 60 秒、120 秒退避,默认第 3 次失败后暂停该项目的队首批次,等待手动重试。
  7. 同一 DSH Host 内复盘按顺序执行;成功结果与批次出队在同一持久记录中提交,避免重复应用学习结果。

工作流候选以草稿记录保存,安装和执行由用户决定;项目源代码、既有技能和宿主提示词仍由原有流程管理。模型权重不会被本插件修改。

什么算一次「会话结束」

本插件订阅 DSH 根 Agent 的 agent/disposed 生命周期。关闭、切换或清空会话是否计入,取决于当前客户端是否真正销毁该 Agent。

  • 一条回答结束、一个 turn 结束、界面暂时闲置,都不等于一次会话结束。
  • 会话需包含非空用户文本,并至少出现过一次 turn/end;失败或中断过的会话也可进入复盘。新建空白会话跳过。
  • 计数从启用插件后实际观察到的结束事件开始;去重依据是项目目录和会话 ID。移动项目目录会形成新的记忆分区。
  • 进程被强制终止时,尚未来得及持久化的结束事件可能丢失;推荐让 DSH 正常结束会话。

安装与启用

依赖 DSH 的 Agent、模型、预设、工具和 storageDomain 服务。插件包自带组合补丁,启用后挂载一个 Host 插件行。

从安装包 URL 安装

在 DSH 插件管理中使用「从包 / URL 安装」,填写 v0.1.0 安装包 URL:

https://github.com/liuhuishang/dsh-five-session-evolution/releases/download/v0.1.0/dsh-five-session-evolution-0.1.0.tgz

Release 页:v0.1.0

通过 Discover 索引发现

支持自定义 Discover 源的客户端,可在插件管理 → 发现 / Discover → 添加索引源中填入:

https://raw.githubusercontent.com/liuhuishang/dsh-five-session-evolution/main/market-index.json

刷新后搜索 五会话自进化 或 Five-session Evolution。请以客户端支持的安装来源为准。

经过上面的步骤,安装后检查 five-session-evolution 插件行已启用,并用下文状态工具确认加载。

配置

在已安装插件行的 config 中调整,例如:

batchSize: 5
injectMemory: true
timeoutMs: 300000
maxSessionChars: 12000
maxMemories: 30
maxCandidates: 20
maxAttempts: 3
provider: ''
model: ''
字段 默认值 含义
batchSize 5 每批会话数,2–20;建议在批次处理完后调整
injectMemory true 向根会话动态带入该项目的经验,最多约 10,000 个 JSON 字符
timeoutMs 300000 单次复盘截止时间,10 秒至 30 分钟
maxSessionChars 12000 每个会话保留的末尾对话文本字符数,1,000–40,000
maxMemories 30 经验数量上限,1–100
maxCandidates 20 候选数量上限,1–100
maxAttempts 3 自动尝试次数,1–10
provider / model 空 两者都空则跟随当前 DSH 默认模型;固定模型时两者一起填写

切换配置保留已入队批次的原始成员。单项目最多保留 100,000 个已计数会话的哈希和 100 个待复盘批次;达到容量时停止新批次准入并记录警告。

典型用法:查看进度与重试

插件注册两个工具,可直接对 DSH 说明意图,例如:

  • 调用 evolution_status,显示这个项目的自进化进度和经验。
  • 调用 evolution_retry,重试这个项目最早的失败批次。

evolution_status 返回计数、待满批数量、队列、经验、工作流候选、复盘摘要和最近错误,省略保留的对话正文。evolution_retry 重置队首批次的尝试次数并排队,运行时会消耗所选模型的 tokens。

经验通过动态系统提示段提供给后续根会话,并保留来源 ID,属于可核查、可能过时的参考资料。工作流候选可通过状态工具读取,再按项目的技能开发流程评估和安装。

数据、费用与注意

  • 持久记录位于 DSH storageDomain 的 five_session_evolution domain、workspaces 表中,物理位置由宿主存储配置决定。
  • 插件会保留每个待处理会话的用户/助手文本摘录(原始工具输出、隐藏推理和图片跳过);对话里的个人资料仍可能出现在摘录中。提交前对常见令牌、Authorization、密码字段和私钥格式做尽力脱敏,格式之外的敏感文本仍可能保留。
  • 复盘会把本批摘录和已有经验发送到所选 DSH 模型提供方,并产生模型费用;通常是一次模型轮次。成功提交后,本插件记录会移除该批摘录。
  • 适用于一个写入 Host 管理同一存储;多个进程并发写同一后端尚未验证。卸载会停止后台任务并释放 domain,持久数据由宿主存储管理。

适用场景

适合长期维护代码、反复调试、文档生产和其他有重复流程的项目——需要「隔几次会话自动归纳」,又不想单独搭记忆 SaaS 的场景。

若你更关心单次会话内的上下文窗口,本插件解决的是跨会话、有来源的项目级记忆与工作流草稿,二者可并存,但不要期待它替代版本控制或人工 code review。

结尾

五会话自进化把「五个根会话结束 → 结构化复盘 → 注入后续会话」做成 DSH 插件内的闭环,经验与工作流候选都绑会话 ID,便于回溯和更新。

  • 目录页:https://www.skillhub.cn/plugins/liuhuishang/dsh-five-session-evolution
  • GitHub:https://github.com/liuhuishang/dsh-five-session-evolution
羽毛球分组比赛记分
小程序二维码

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

小夜