dsh-fracture:用观测与二次运行,让 Harness 只保留被验证的改动

前言

在 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
羽毛球分组比赛记分
小程序二维码

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

小夜