SuperAPI AI 工具集

harness-learn

编程与开发

查看项目

更新于 10-16 00:21

技能介绍

用途:当某个 harness 的策略提示词在特定任务族上表现不佳时,用 harness-learn 运行可度量的学习循环,取代手工迭代提示词。它是上游 metaharness(ADR-235,metaharness@0.3.0 起)GEPA 学习能力的入口。

主要能力与机制:学习过程对候选策略基因组在留出切片上打分,只有实测胜出的候选才会被提升(已发布的 cand-6 基因组是首个提升案例:留出集 gold 由 2/12 提升到 3/12,零回归)。实现位于 scripts/learn.mjs:校验 --repo 是否存在并导出为 $METAHARNESS_REPO;通过 _harness.mjs 调用固定版本 metaharness@~0.4.1(本地安装或一次性版本化缓存,绝不使用 @latest),命令形式为 metaharness learn --host <h> --model <m> --slice <s> [--run],并带有优雅降级与硬超时;识别 checkout-required 信息并转为结构化载荷;上游输出末尾 JSON 报告时解析,否则把原始文本放入 rawReport。

使用方式:学习框架(GEPA + SWE-bench + Docker)对 npm 包来说过重,因此 learn 需要本地克隆:

git clone https://github.com/ruvnet/metaharness.git node scripts/learn.mjs --repo ./metaharness --host claude-code --model haiku --slice slices/lite.json

没有检出时脚本会输出 {status: "checkout-required"} 并以 0 退出,这是前置条件报告而非错误(与 degraded: true 不同,后者表示 npm 包本身缺失)。托管服务路径(网关侧 learn 任务、无需检出)属于上游 ADR-235 的后续工作,目前尚不可用。

成本与超时:默认 dry-run 会解析切片清单并报告成本,不发起任何模型调用,费用为 $0;--run 是唯一产生花费的路径。默认超时为 dry-run 120 秒、带 --run 600 秒,较大切片需显式 --timeout-ms,按切片规模 × 模型成本匹配。MCP 工具 metaharness_learn 的子进程预算为 120 秒,真实学习循环建议在终端执行:ruflo metaharness learn ... --run --timeout-ms <big>。

退出码:0 表示报告已生成(或 dry-run、checkout-required、degraded);1 表示在 --alert-on-fail 下学习运行报告失败;2 表示配置错误(--repo 路径无效)。

限制:需要本地克隆仓库,托管服务尚未提供,真实运行会消耗模型成本且可能超出默认超时。