dsh-plugin-eval

by xiaoboren0-hub

0 工具与能力github收录于 08-23

dream-plugin bundle:插件自愈循环(seek/eval/pair/evolve)

dream-plugin bundle: plugin self-healing loop (seek/eval/pair/evolve)

安装

dsh plugin --profile web add github:xiaoboren0-hub/dsh-plugin-eval

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

DeepSeek Harness 的插件自愈闭环 bundle:让 harness 能度量自己插件的好坏,并在夜里自主地切换、迭代、寻源。一个可安装的包,插入四个插件。

核心概念:意识强度 = 做事前的预期

这套插件的出发点是:一个系统「意识强度」的高低,取决于它在做事之前,对自己能做到什么有没有一个预期——预期越准、与实际结果的落差越小,意识强度越高。

落到代码上,就是两个字段:

  • predicted / expectedFunctionality —— 做事前写下的预期(锚点)
  • predictionMatch / satisfaction —— 事后量的「预期 vs 实际」落差

落差(mismatch)既是「意识强度低」的信号,也是系统自我改进的燃料:哪里落差大,哪里就该优先被修、被换、被迭代。

四个插件

插件 入口 ctx key 角色 存储域
plugin-seek dsh-plugin-eval/seek pluginSeek 缺口感知:目标 → 拆需求 → 判覆盖 → 向外找候选 plugin_seek
plugin-eval dsh-plugin-eval/eval pluginEval 度量:观察真实调用 → 场景化评测 → 打意识强度分/优先级 plugin_eval
plugin-pair dsh-plugin-eval/pair pluginPair 控制:分数跌破阈值时,把主用切到备用 plugin_pair
plugin-evolve dsh-plugin-eval/evolve pluginEvolve 迭代:从低分案例生成改进变体,记 baseline/challenger 实验 plugin_evolve

闭环

需求(目标 + 紧急度)
      │  plugin-seek:不满足就寻源(registry 端点 / web 兜底)
      ▼
候选 / 现有插件
      │  隔离执行环境(任务队列),夜里自主醒来按优先级跑
      ▼
plugin-eval:预期 vs 实际 → 意识强度分 + 优先级
      │
      ├── plugin-pair(分数跌破阈值 → 切备用)
      └── plugin-evolve(分数低 → 生成改进变体)

安装

四个插件打成一个包,安装即插入四行:

dsh plugin --profile <name> add github:xiaoboren0-hub/dsh-plugin-eval

git 安装会拉源码,第一次 pnpm 会要求允许本包的 prepare 构建;把 pnpm 打印的 key 拷进 profile 的 pnpm-workspace.yaml:

allowBuilds:
  dsh-plugin-eval: true

再重跑 add。要跳过这个允许,也可以发布到 npm 或装 pnpm pack 的 tarball。

配置

plugin-eval、plugin-seek、plugin-evolve 都需要一个 model 路由(场景合成 / 目标拆分 / 判定 / 变体生成)。在 cordis.patch.yml 里覆盖:

- insert:
    - id: plugin-eval
      name: dsh-plugin-eval/eval
      config:
        model: { provider: deepseek-official, model: <你的模型> }
    - id: plugin-pair
      name: dsh-plugin-eval/pair
    - id: plugin-evolve
      name: dsh-plugin-eval/evolve
      config:
        model: { provider: deepseek-official, model: <你的模型> }
    - id: plugin-seek
      name: dsh-plugin-eval/seek
      config:
        model: { provider: deepseek-official, model: <你的模型> }
        # registryEndpoint: https://你的插件库.example.com/catalog

plugin-seek 的寻源是「可配置端点 + web 兜底」:配了 registryEndpoint 就查 <endpoint>?q=<需求>;没配或失败则回退到 ctx.web.search,让模型从网页来源里提炼候选。

打分模型

每次评测记三个数:predictionMatch(0..1 预测匹配度)、satisfaction(0..1 满意度)、explanation(没达预期的点)。优先级 = 使用频率 + 最近调用 + 预测落差 + 显式需求(紧急度),四路加权。

已知局限与未完成(deferred work)

  • 隔离执行未接:plugin-eval 目前是进程内 ctx.tools.execute 跑场景,没有把候选/变体丢进隔离环境。
  • 控制/迭代只记不干:plugin-pair 的切换、plugin-evolve 的挂载,目前只落数据,不真正替换运行中的工具;experiment 停在 pending。
  • 候选只记不装:plugin-seek 记录候选,不安装。
  • 夜间调度未启用:eval 的 off-peak 定时器默认 offPeakEnabled: false。

这些是「梦境」从「会做梦、会打分」走向「睡一觉醒来自己换/长出新器官」的最后一段。

开发

pnpm install
pnpm run prepare   # tsdown 构建 → lib/

源码与仓库内 blueprint(deepseek-harness 的 packages/plugin-eval/)同源;类型检查与单测针对本地 harness checkout 跑。

原始 README: https://github.com/xiaoboren0-hub/dsh-plugin-eval/blob/main/README.md ↗