五会话自进化 · Five-session Evolution
English · MIT · DeepSeek Harness 插件
让项目经验积累下来:每五个不同的项目会话结束后,自动复盘一次,提炼有来源的经验与工作流候选,在后续会话中带入项目记忆。
适合长期维护代码、反复调试、文档生产和其他有重复流程的项目。学习结果保存在 DSH 自己的持久存储中,按工作目录隔离;使用当前 DSH 默认模型,无需另配记忆服务账户。
工作方式
同一项目的 5 个不同会话结束
→ 持久队列
→ 独立、无工具的复盘 Agent
→ JSON 校验与来源检查
→ 项目经验 + 工作流候选 + 复盘记录
→ 后续会话自动获得项目经验
- 默认每 5 个不同的根会话组成一批,可配置为 2–20 个。
- 同一会话 ID 只计一次;恢复后再次关闭,计数保持原值。
- 子 Agent、插件自身复盘会话,以及标记为 automation / subagent / goal 的自动会话跳过。
- 每条经验和每个工作流候选必须引用本批至少两个不同的会话 ID。插件校验来源 ID 和结果结构;事实正确性仍需结合当前项目核对。
- 有新证据时,同名主题经验与同名候选更新;默认保留最近 30 条经验、20 个候选和 100 次复盘记录。
- 待处理批次跨重启保留。失败按 60 秒、120 秒退避,默认第 3 次失败后暂停该项目的队首批次,等待手动重试。
- 同一个 DSH Host 内,复盘按顺序执行。成功结果与批次出队在同一持久记录中提交,避免重复应用学习结果。
这是运行层的经验积累与流程提炼,模型权重保持原样。工作流候选以草稿记录保存,安装和执行由用户决定;项目源代码、既有技能和宿主提示词由原有流程管理。
安装与兼容性
初版面向 DSH 0.2.1-rc.5、Node.js 22+。依赖 DSH 的 Agent、模型、预设、工具和 storageDomain 服务。插件包自带组合补丁,启用后挂载一个 Host 插件行。
在 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
支持自定义 Discover 源的客户端,可在插件管理 → 发现 / Discover → 添加索引源中填入:
https://raw.githubusercontent.com/liuhuishang/dsh-five-session-evolution/main/market-index.json
刷新后搜索 五会话自进化 / Five-session Evolution。索引使用固定 40 位 Git 提交;添加此源后即可发现,社区市场的公共目录收录另行审核。请以你的客户端支持的安装来源为准。安装后检查 five-session-evolution 插件行已启用,使用下方状态工具确认加载。
市场维护流程见 PUBLISHING.md。
什么算一次“会话结束”
本插件订阅 DSH 的根 Agent agent/disposed 生命周期。关闭、切换或清空会话是否触发计数,取决于当前客户端是否真正销毁该 Agent。一条回答结束、一个 turn 结束、界面暂时闲置,都不等于一次会话结束。
会话需要包含非空用户文本,并至少出现过一个 turn/end。失败或中断过的会话也可进入复盘,以便记录教训。新建空白会话跳过。计数从启用插件后实际观察到的结束事件开始,历史存档保持原样。
去重依据是项目目录和会话 ID。移动项目目录会形成新的记忆分区;符号链接路径可能形成不同分区。进程被强制终止时,尚未来得及持久化的结束事件可能丢失。推荐让 DSH 正常结束会话。
配置
在已安装插件行的 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_evolutiondomain、workspaces表中,物理位置由宿主存储配置决定。 - 本插件额外保留每个待处理会话的用户/助手文本摘录、会话 ID、时间与预设名;原始工具输出、隐藏推理和图片跳过。对话里的个人资料仍可能出现在摘录中。
- 提交前按常见令牌、Authorization、密码字段和私钥格式做尽力脱敏;格式之外的敏感文本仍可能保留。
- 复盘会把这一批摘录和已有经验发送到所选 DSH 模型提供方,并产生模型费用。它通常是一次模型轮次,实际请求量取决于提供方重试和错误重试。
- 成功提交后,本插件记录移除该批摘录;DSH 原有的会话日志、复盘 Agent 日志和备份仍由宿主保留策略管理。
- 复盘 Agent 隐藏工具 schema 并阻止工具执行;插件只接受经校验的结构化结果,并负责写入自己的 domain。
- 适用于一个写入 Host 管理同一存储;多个进程并发写同一后端尚未验证。卸载会停止后台任务并释放 domain,持久数据由宿主存储管理。
开发与验证
在与目标 DSH 版本匹配的开发环境中安装依赖,然后执行:
npm run check
npm test
npm pack --dry-run
测试覆盖第五次结束触发、去重、项目隔离、持久队列恢复、失败保留、来源校验、工具隔离,以及真实 Cordis 的插件加载和卸载。模型返回使用固定测试数据;实际模型联网和真实桌面完整流程需在安装后验收。
发布脚本、索引与社区提交步骤见 PUBLISHING.md。
No comments yet. Be the first to write one.