前言¶
在 DSH 里,智能体由一串插件行拼成:模型、提示词片段、技能目录、工具、审批策略,各自一行配置。会话结束后,常见情况是:工具因 pnpm 或测试前置构建失败,模型在本轮想通了,下一轮却从零开始;有人改 system prompt 觉得「手感更好」,却没有对照基线验证;某次会话里行之有效的步骤也没有写进下一轮能读的地方。根因往往是:循环里没有稳定记录「发生了什么」,也没有用同一任务在两套 harness 上对比改动是否有效。
miketako3/dsh-fracture 是社区维护的 DSH 插件(SkillHub 分类:记忆)。它读取已结束的会话,把每轮收成事实而非散文,再按规则沉淀摘要与技能,并在有测量支持时才改 harness;能通过探测的 composition 改动还会进入观察窗口,变差则自动回滚。代码级候选插件仍须人工 dsh plugin add 安装。
这是什么¶
一句话:监视本会话、保留所学,并有限度地改动运行环境——且只有第二次运行证明有益的改动才会被保留。
维护者:miketako3。许可证:MIT(README)。当前 package 版本:0.2.0。运行环境要求 Node.js >= 22。
DSH 把 harness 当成数据,因此「候选 harness」可以看成对当前配置的差异;两套 harness 可同时存在,同一任务跑两遍即可对比,而不必让模型自评自己的修改是否合理。插件写入的内容集中在 .dsh/fracture/,均为可读文件。
数据流与四层改动边界¶
每轮结束由观测逻辑记录事实:调用了哪些工具、顺序、失败点、是否有人工纠正。观测写入 observations.jsonl;累计到一定轮次后重写 digest(MEMORY.md);同一流程在干净重复足够次数后可蒸馏为 skills/<slug>/SKILL.md 并注册到技能目录。摘要与技能列表以短索引形式进入提示词,避免一次性加载全部历史。
自主改动按四层划分,深度与门禁不同:
| 层级 | 改动内容 | 门禁 |
|---|---|---|
| Memory | 观测、digest、journal | 无,仅追加 |
| Skills | skills/<slug>/SKILL.md,运行时注册 |
无,仅追加 |
| Composition | 提示词行、技能目录行、工具开关 | 需 probe 判定 + 观察窗口,回归则自动回滚 |
| Code | 候选 plugin/ 模块 |
人工执行 dsh plugin add |
前两层是知识层,不能执行代码、不能扩大权限,删文件即可撤销,因此无需额外确认。第三层由循环拥有并可撤销,默认在应用后观察若干轮,指标变差则回滚。第四层决定进程内执行何种代码:循环可以撰写并在独立 dsh 进程中探测带 plugin/ 的候选,但未验证代码不会进入评判进程;触及审批、沙箱策略、插件管理器或本插件自身的候选会在存储与探测前被拒绝。
蒸馏技能、应用改动、执行回滚各会在会话中发一条折叠通知,避免静默修改。
安装与启用¶
官方安装命令(web profile):
dsh plugin --profile web add github:miketako3/dsh-fracture
从仓库拉取并在安装过程中构建。若 pnpm 报 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED,按错误提示把 allowBuilds 相关行写入 $DSH_HOME/profiles/web/pnpm-workspace.yaml 后重试;键名含 commit hash,main 移动时会变。
安装完成后重启一次。README 写明无需额外配置即可开始观测与记忆。
可选配置示例($DSH_HOME/profiles/web/cordis.patch.yml 中 fracture 插件段):
- id: fracture
name: dsh-fracture
config:
autonomy: full # off | memory | skills | full
baseDir: .dsh/fracture
digestEvery: 20 # observed turns between digest rewrites
distillMinRepeats: 3 # clean repetitions before a skill is written
autoLoop: true # let the 15 minute idle trigger run the whole loop
autoApply: true # apply a prompt-only candidate that probed improved
watchTurns: 12 # turns watched before an applied change is kept
maxWatches: 3 # changes watched at the same time
judge: off # off | rubric; score a candidate that has no check
工具与典型用法¶
循环内部使用下列工具,也可手动调用:
| 工具 | 作用 |
|---|---|
fracture_diagnose |
按工具失败率、重复读、审批拒绝、压缩压力、消息反馈等排序 harness 薄弱点 |
fracture_propose |
由 proposer 子智能体写出 candidate.json,可选附带 skills/ 或 plugin/ |
fracture_probe |
在当前 harness 与候选上各跑同一任务并对比,输出 runs/<id>/report.md |
fracture_plan |
把需求转成可执行或可阅读的检查项 |
fracture_adopt |
将已通过 probe 的候选打成可安装 bundle 并追加 lesson;不自动安装 |
fracture_status |
查看已学内容、提案与各候选得分 |
fracture_loop |
执行 diagnose → propose → probe → apply 一轮,门禁与空闲触发相同 |
memory_search |
搜索 digest、历史轮次与蒸馏技能 |
典型自助流程:先用 fracture_status 看当前状态;需要推进改进时调用 fracture_loop(或依赖 autoLoop 空闲触发);对某一候选要落地前用 fracture_adopt 生成 bundle,代码层仍由人决定是否 dsh plugin add。检索已有记忆时用 memory_search。
设计细节(四层、触发条件、观察窗口、受保护面)见仓库内日文文档 docs/仕組み.md。
适用场景与注意¶
适合长期在同一项目里用 DSH 智能体、希望错误与成功流程能跨会话沉淀、又希望对 prompt / 工具组合类改动有对照实验而非凭感觉改配置的场景。
安装前请自行阅读仓库源码与 MIT 许可证。插件以当前 dsh 进程权限运行;社区目录 SkillHub 插件页 与 GitHub 仓库由维护者发布,与 DeepSeek / 幻方无官方从属关系,DSH 生态本身也遵循「一切皆插件」的扩展方式。
若你接受「对比运行优于自评」与「证据累积」的思路,fracture 把记录、蒸馏、探测与受控回滚绑在同一套文件与工具里,便于审计 .dsh/fracture/ 下的每一次学习与每一次被保留的 harness 差异。
- 目录页:https://www.skillhub.cn/plugins/miketako3/dsh-fracture
- 源码与 README:https://github.com/miketako3/dsh-fracture