关于 harness-learn
harness-learn 封装 metaharness 的 GEPA 学习流程,用评分任务语料迭代 harness 策略,适合希望用测量结果改进提示词的开发者。它支持先进行零模型调用的成本预估,并要求本地克隆 metaharness 仓库。
主要功能
- 01基于评分语料迭代策略基因组
- 02依据留出集评分筛选候选
- 03干运行解析切片并估算成本
- 04解析结构化报告或原始文本
- 05需要本地 metaharness 克隆
适用场景
- 01改进特定任务族表现不佳的策略提示词
- 02运行学习任务前预估成本
- 03学习完成后查看已晋级策略内容
MCP 相关
MCP 工具 metaharness_learn 可调用学习流程,但其子进程预算为 120 秒。实际学习运行应通过终端命令执行。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill harness-learn安装后在 Claude Code 中输入/harness-learn确认已加载。
详细介绍
提供 metaharness learn——上游 GEPA 学习框架,可针对评分后的任务语料库进化框架策略基因组,而非手动编辑提示词。候选方案会在留出切片上评分,只有经过测量确认的优胜方案才会晋升(已发布的 cand-6 基因组是首个此类晋升方案:留出集 gold 从 2/12 提升至 3/12,且零回退)。
适用场景
- 某个框架的策略提示词在某类任务上的表现不佳,你希望通过可测量的改进循环来优化,而非手动反复迭代提示词。
- 在承诺投入费用前估算学习运行的成本——默认的 dry-run 会解析切片清单并报告成本,不会调用任何模型。
- 学习运行晋升了某个基因组后:配合
harness-gepa --op render检查晋升策略的实际内容。
前置条件(上游设计)
学习框架(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 包本身缺失)。托管服务路径(网关端学习任务,无需检出代码仓库)是上游 ADR-235 的后续事项,目前尚不可用。
算法
- 若提供了
--repo,则验证其是否存在;并将其导出为$METAHARNESS_REPO。 - 调用固定版本的
metaharness二进制文件(metaharness@~0.4.1,本地安装或一次性版本化缓存——绝不使用@latest):通过_harness.mjs执行metaharness learn --host <h> --model <m> --slice <s> [--run](支持优雅降级和硬超时)。 - 默认超时:dry-run 为 120s,使用
--run时为 600s——较大切片的实际运行需要指定与切片大小 × 模型成本相匹配的--timeout-ms。 - 检测到需要检出代码仓库的提示信息时,返回结构化载荷并以 0 退出。
- 若上游输出 JSON 报告,则解析其末尾的 JSON;否则将原始报告文本放在
rawReport下返回。
成本说明
只有 --run 会产生费用。其他所有情况——dry-run、检出代码仓库探测、降级路径——费用均为 $0。MCP 工具(metaharness_learn)的子进程运行时限为 120s;实际学习周期请在终端中通过 ruflo metaharness learn ... --run --timeout-ms <big> 运行。
退出代码
0— 已生成报告(或为 dry-run、需要检出代码仓库、降级情况)1— 使用了--alert-on-fail,且学习运行报告失败2— 配置错误(--repo路径无效)