跨 run · 为什么改、改后怎样
harness 变更史
回答:改了什么、为什么改、改完有没有变好。关键是分清「已实现」和「已生效」:代码合入与单测只是前者;回放效果是旧 run 副本上的现象;只有真实 run 或官网在受控对照下的结果才算后者。
19 / 19 条起草自项目文档,待用户核对
这些条目是 2026-10-03 根据 G 任务书、Codex 审查、开发报告和 decisions.tsv 整理出来的历史记录,每条的「来源」写明了文档与日期;状态一律取保守值(拿不准写未解决 / 待验),负责人不确定写「未登记」。核对后把登记表 notes/changelogs/harness_changes.tsv 里该行的 drafted 列清空,「起草待核对」标记就会消失。
目前 19 条改动里,0 条有「已生效」的证据。没有任何一项达到「真实 run 验证」或「官网验证」:已有的只是代码合入、单测与回放。待验 19,已提议 0,保留 0,回退 0。
验证级别(由低到高)
- 已实现 代码或配置已改,通过单测 / fake 端到端;没有真实效果数据。目前 17 条。
- 回放验证 在旧 run 的只读副本上回放出的效果,不是新 run,更不是官网收益。目前 2 条。
- 真实 run 验证 新的真实 run 里观察到预期指标。目前 0 条。
- 官网验证 官网分在受控对照(足够重复)下支持。目前 0 条。
| ID · 日期 · 级别 | 改动 | 动机证据 | 预期 | 前后 run / 数值 | 验证级别 | 结论 | 提交 · 来源 |
|---|---|---|---|---|---|---|---|
| HC-01 起草待核对 2026-10-03 · 级别 A | tune.p 默认 0:9 个 D 模板写 tune.p: 0,tune 代码保留(G39.1) | 全部 D 组 run 的 tune 节点仅 1 个被接受(r2-D-s1 #16,+0.8);D 冠军祖先链无 tune;T2 D run 里 tune 约占 1/4 节点槽 | tune 不是 D 赢 A 的原因,关闭后不损失官网分;D 对 A 的 1.4–2.8 分只能解释为同 seed 随机差异 | 配置已改,无新 run 数据。改动前的单次对照:T1 初筛 D 53.4 / A 52.0;T2 心脏插值 63.9 / 61.1;全胚插值 61.7 / 59.9(每榜只比了一次) 改前参照 run: 20261002-202908-search-t1-scr-D; 20261002-202907-search-t1-scr-A验证:无(改动后还没有新 run) | 已实现 没有「已生效」的证据 | 待验 | 提交 b729aa1 decisions.tsv「tune 默认关闭」;G39-G43_plan_2026-10-03.md §0.1、§1 |
| HC-02 起草待核对 2026-10-03 · 级别 B | 候选去重:可执行代码树哈希 或 seed-0 预测 digest 或 score_twin(≥2 个共同 seed 分数全等)算同一候选,用于终选、晋级和无进展规则(G39.2) | scr-D 终选前 5 里 5/5 是同一程序的副本,scr-A 为 4/5;scr-B 的 #8 / #11 代码不同但三个 seed 分数逐位相同 | 终选前 5 里不同输出数不再被副本占满 指标:终选前 5 的不同输出数;门槛 ≥ 3(回放验收线) | 回放效果:scr-D 终选前 5 的不同输出数由 1 变为 5;scr-B 的 #8 / #11 / #14 合并为同一候选。这是回放,不是官网收益,也没有新 run 验证 回放里的现象,不是官网收益 改前参照 run: 20261002-202908-search-t1-scr-D验证:回放:scr-A / B / D 的只读副本(Spark ~/vec/scratch/integration_replay/) | 回放验证 没有「已生效」的证据 | 待验 | 提交 b729aa1 2026-10-03_integration.md §2.4、§5 |
| HC-03 起草待核对 2026-10-03 · 级别 B | 已证否方向:输出与父节点相同、或 METHOD 首行为 NO_CHANGE: 的节点记 refuted_direction,Researcher 与 Engineer 的父节点块里显示(G39.3) | PLAN 被证否后原样回退的节点占槽位约 21%(无变化节点 D 6 个、A 5 个);Researcher 看不到该父节点已被证否的方向 | 原样回退的槽位占比下降(改为必须交备选机制) 指标:无变化节点占新节点比例 | 已实现;占比是否下降暂无数据 改前参照 run: 20261002-202908-search-t1-scr-D验证:无(改动后还没有新 run) | 已实现 没有「已生效」的证据 | 待验 | 提交 b729aa1 |
| HC-04 起草待核对 2026-10-03 · 级别 B | Engineer 不设固定时限(180 s 无动作记一次停顿、连续 3 次结束);预写 METHOD 占位;失败的 draft 不烧掉方法族名额(G39.4) | draft 节点 3/4 撞 30 分钟上限、没写 METHOD 被判失败;最近 5 个 run 仅约 20% 节点用 GPU,全是 OT / CFM / VAE draft | 原先超时的 OT / CFM / VAE draft 能产出可打分程序 指标:draft 节点中可打分的数量;门槛 ≥ 2 / 3(回放验收线) | 回放效果:3 个超时 draft 中 2 个(#6 ot_cfm、#28 graph_fate)能执行并产出格式合格的预测,#18 崩溃。新规则下的真实 draft 成功率暂无数据 回放里的现象,不是官网收益 改前参照 run: 20261002-202908-search-t1-scr-D验证:回放:scr-D 的 3 个超时 draft | 回放验证 没有「已生效」的证据 | 待验 | 提交 b729aa1 2026-10-03_integration.md §5;decisions.tsv「Engineer 不设固定时限」 |
| HC-05 起草待核对 2026-10-03 · 级别 A | search_spec:新机制至少查分 6 次、过了谷底才判无效(G39.5) | A / D 冠军谱系都是第 8–15 次查分才过谷底;C 对正确方法族下了错误否定 | 新方向不再因早期几次查分偏低被过早放弃 | 提示词已改,无效果数据 验证:无 | 已实现 没有「已生效」的证据 | 待验 | 提交 未核对 G39-G43_plan_2026-10-03.md §0.1 4d |
| HC-06 起草待核对 2026-10-03 · 级别 B | --ablate 关闭机制对照:执行器对声明了关闭机制的节点再跑一次对照,记 mechanism_active;现有种子加 --ablate 参数(G39) | 需要判断新机制是否真的起作用(原先只能看总分) | mechanism_active 记录能区分机制有效与无效 | fake 端到端中 fake Engineer 的程序不接受该参数,对照全部记 unclear(符合契约);真实 Engineer 是否遵守暂无证据 验证:fake 端到端(Spark) | 已实现 没有「已生效」的证据 | 待验 | 提交 b729aa1 2026-10-03_integration.md §2.7、§6 |
| HC-07 起草待核对 2026-10-03 · 级别 C 相关问题 DATA-1 | 新增 Compliance 角色(正则 + 单轮 LLM)审 PLAN / 检索文本 / 数据元数据;新增 Data agent(fetch → 隔离区 → 删窗 → 哈希 → 挂载,节点记数据纪元)(G52) | run 内角色之间此前没有合规检查环节;用户 2026-10-03 定「下载不违规、使用才违规」 | run 内可以拿到合规的外部数据,且保留阶段测量值不进入 PLAN | fake 端到端:Compliance 删句、Data agent 被拒路径走通;真实下载 / 入库 / 挂载 / 纪元 +1 未验证,各仓库解析器未用真数据验证 验证:fake 端到端(Spark) | 已实现 没有「已生效」的证据 | 待验 | 提交 b729aa1 2026-10-03_integration.md §2.1、§6、§7;decisions.tsv |
| HC-08 起草待核对 2026-10-03 · 级别 C 相关问题 REL-1 | LLM 中继 + 回退链 + relay_cli 角色:Researcher / Compliance / Analyst / Reviewer 默认 Opus(经 VM 中继),回退 Token Plan 千问;每次调用记 token(G49) | 用户要求 Claude / Codex 凭据与流量只在 VM;harness 此前没有回退逻辑 | 强模型承担 Researcher / Analyst / Reviewer 后搜索质量更高 | 单测与 fake 中继通过;中继未部署,真实 Opus 是否遵守文本工具协议没验证,角色实际可能跑在回退模型上 验证:fake 中继端到端(Spark) | 已实现 没有「已生效」的证据 | 待验 | 提交 b729aa1 |
| HC-09 起草待核对 2026-10-03 · 级别 C 相关问题 G44-1 | run 外轨迹审计 G50、轨迹分析 G44 与通知 G51 接入 package → verify → 审计 → 通知顺序 | 提交前需要独立于 run 的泄漏检查;每个 run 的效率问题需要机器事实包 | 预期指标未登记 | 已接入;G44 提案没有在真实 run 上验收,G45 调度器未接线 验证:Spark 全量回归(58 / 58) | 已实现 没有「已生效」的证据 | 待验 | 提交 b729aa1 |
| HC-10 起草待核对 2026-10-03 · 级别 A | 教训表 lessons_<榜>.md:官网分以「方法族相对差」的形式进入 run 内的 Researcher / Analyst 提示 | 用户 2026-10-03 决定;依据规则 §10:分数可用于选择,不能用于反推目标性质 | Researcher 在方法族之间分配精力更合理 | 已生成:T1 22 个 run、T2 全胚插值 5 个、T2 心脏外推 2 个;没有使用 / 不使用的对照。Codex 外层审阅 P1-2 指出这只是项目策略,不是合规的充分条件 验证:无(还没有 run 使用它) | 已实现 没有「已生效」的证据 | 待验 | 提交 3d1f4a3 |
| HC-12 起草待核对 2026-10-03 · 级别 B 相关问题 LEAK-1 | 本地尺子泄漏修复:T2 心脏外推目标改为 proxy_noscale;T3 本地 proxy 改名并加稠密度护栏 | T2 心脏外推 proxy 的尺寸项被方向库里的 E9.5 常数泄漏,程序白拿 +4.15,官网只有 49.6 | 本地分不再奖励泄漏的尺寸常数 | 改动程序与照抄基线在本地同分(g40 配置注释记 VM 核对 50.00 / 50.00),即本地尺子看不见坐标缩放,只能靠官网配额判断;无新官网结果 验证:无新官网结果 | 已实现 没有「已生效」的证据 | 待验 | 提交 未核对 decisions.tsv「本地尺子目标泄漏审计」;2026-10-03_proxy_target_leak_audit.md |
| HC-13 起草待核对 2026-10-03 · 级别 A 相关问题 LEAK-1 | G40 心脏外推尺度扫描:3 个锁定 run(log s = 0.15 / 0.30 / 0.45),护栏改为 proxy_noscale 非劣(require_gain_on: null) | 公开日志:改形态的 14 族全部 ≤ 52,scale_only 54.5;本地 proxy_noscale 测不到尺度,规则 §10 允许试参数看分 | 官网分随 s 变化,能找到优于照抄的缩放 指标:官网分(3 份预测) | 配置已写;Spark 上有同名运行目录;官网分暂无登记,待核验 验证:Spark 上存在 g40-s015 / s030 / s045 同名运行目录(2026-10-03);官网结果待核验 | 已实现 没有「已生效」的证据 | 待验 | 提交 未核对 decisions.tsv「心脏外推用官网配额预注册扫坐标 RMS 缩放因子」;G39-G43_plan_2026-10-03.md G40.3 |
| HC-14 起草待核对 2026-10-03 · 级别 A 相关问题 RULER-1 | T3 方法卡 v2:真实 Mab21l2 KO 细胞混入 WT E8.75 + celltype^β 压缩 + WT 稀释,self_zero 降为部件(G41) | 公开日志该路线 66.6,位移迁移 / 文献先验 / 逐基因编辑全失败;与 T3 校准(lgo875 唯一排对 3 个官网点)一致 | T3 官网分 > 60 指标:官网分;门槛 ≥ 1 份官网 > 60(G41.3 验收) | 方法卡已改;官网分暂无登记,待核验 验证:Spark 上存在 t3-gata4-komix-a / b / c 同名运行目录(2026-10-03);官网结果待核验 | 已实现 没有「已生效」的证据 | 待验 | 提交 未核对 decisions.tsv「T3 方法卡 v2 主线」;G39-G43_plan_2026-10-03.md G41 |
| HC-15 起草待核对 2026-10-03 · 级别 C 相关问题 G45-P0-3 | 权重复用:训练型程序声明 per_view 权重,按缓存键(代码树 + 训练 seed + 视图内容 + 依赖环境 + 额外参数)回放,不重训(G45.7) | 同一候选被重复执行约 9 次(权威、对照、晋级 2、护栏 5);30 分钟上限对 OT / CFM / VAE 太紧 | 不再重复训练,终选预留时间显著下降 | 已实现但未见回归结果;Codex 审阅发现验收失败仍可打分(P0#3)、缓存键没覆盖 GPU 环境(P1#11) 验证:报告的回归与 fake 两环端到端两节仍是占位 | 已实现 没有「已生效」的证据 | 待验 | 提交 未提交(2026-10-03 工作区;carryover.py / health.py 为未跟踪文件) |
| HC-16 起草待核对 2026-10-03 · 级别 C 相关问题 G45-P0-1 | 跨环续做 carryover:环交接点把没做完的 Engineer 会话 / 被截断的训练封存成只读快照,下一环校验后优先续做(每环 ≤ 4 个)(G45.6) | 环的边界会丢工作:截止时在飞的 Engineer 工作和训练没有可靠交接 | 一环没做完的工作能在下一环继续 | Codex:「当前实现还不能放心用于正式跨环链」;档案里还没有真实跨环续做 验证:无真实跨环续做 | 已实现 没有「已生效」的证据 | 待验 | 提交 未提交(2026-10-03 工作区;carryover.py / health.py 为未跟踪文件) |
| HC-17 起草待核对 2026-10-03 · 级别 B 相关问题 G45-P1-10 | 健康监督代替固定执行时限:每 60 s 采样、30 分钟无自己的计算 / I/O 记 would_hang(默认只观测,enforce: false),360 分钟兜底;SIGTERM → 宽限 → SIGKILL;健康邮件改每小时(G45.7) | 固定 30 分钟限制让 OT / CFM / VAE 训练被判超时 | 健康的长训练不再被误杀 | 只观测;误判率仍在统计,没有数据。Codex P1#10:宽限只等 leader,没有等整个进程组 验证:无 | 已实现 没有「已生效」的证据 | 待验 | 提交 未提交(2026-10-03 工作区;carryover.py / health.py 为未跟踪文件) |
| HC-18 起草待核对 2026-10-03 · 级别 C 相关问题 G45-P1-9 | 终选资源保护:配置了护栏却没有基线则拒绝候选替换并先写基线;终选预留按实测估算;链级已暴露 seed 轮换(3–7 → 8–12)(G45.7) | 旧终选在缺基线时跳过护栏;预留估算偏小;多环反复用同一组护栏 seed 破坏「新 seed」的解释 | 终选不被搜索挤占,护栏 seed 跨环不重叠 | 已实现;Codex P1#8(内部截止仍按廉价基线留时间)和 P1#9(换 seed 使评测指纹变化、旧分数被清空)仍开着 验证:无 | 已实现 没有「已生效」的证据 | 待验 | 提交 未提交(2026-10-03 工作区;carryover.py / health.py 为未跟踪文件) |
| HC-19 起草待核对 2026-10-03 · 级别 B | Compliance 正则误报修复:「E8.5 + E9.5」不再被当成「E8.5 及以后」 | 节点 4 的 PLAN 原文被误删句 | 预期指标未登记 | 单测通过(Spark);真实 run 中误报率暂无数据 验证:Spark:test_compliance 等通过 | 已实现 没有「已生效」的证据 | 待验 | 提交 未核对 |
| HC-11 起草待核对 2026-10-02 · 级别 A | 分项反馈与 T1 评分规则简报:角色看到四项排名指标的分解(原始值 / skill / 得分),Engineer 的 vec-score 返回 score_parts | 用户 2026-10-02 决定:让 agent 优化官方分数真正奖励的东西 | 按分项优化比只看总分更能提升官网分 | 已实现;没有对照 验证:无 | 已实现 没有「已生效」的证据 | 待验 | 提交 20bd7e1 |
登记表 notes/changelogs/harness_changes.tsv,文件最后修改 2026-10-03;同一 ID 追加多行 = 状态更新,页面取最新一行;看板只读。
怎么登记
列沿用 agent/outer/changes.py 的前 21 列(id 即变更 ID;level 为 A 白名单 / B harness 修复 / C 设计级;status 为 proposed / provisional / kept / rejected / inconclusive,对应页面上的已提议 / 待验 / 保留 / 回退 / 无定论),其后追加 issue_id, commit, baseline_run, verify_level(implemented / replay / real_run / official), updated_at, source, drafted。预期指标写 hypothesis / primary_metric / min_gain,前后数值写 baseline_run / validation_runs / result。只追加;同一 id 追加新行 = 更新状态,页面取最新一行。「kept」且 outcome_affecting 的行需要 pairs≥2 的独立配对证据(见 changes.py)。