一次只改一项策略,测量保持固定。
在执行框架之外运行的独立循环。从基线出发,应用一项限定类型的策略变更,再由同样的 Petri 审计与判定门槛决定 KEEP 或还原。
一项变更 → 审计
运行契约固定后,只改变一项允许的策略,并用同一套测量装置审计 GEODE。这不是运行中的产品在自行改写自身。
运维人员审批执行 · 判定: 审批运行契约 · 模型 · 预算
program.md只有真实调用与固定预算获得批准后,运行才会开始。未获批准时,只准备契约并离线检查。
运行契约 · 模型 · 预算
program.md执行 · 判定: 运行契约固定预算循环train.py种子与评分标准的版本、角色模型与凭据来源、测量设置、迭代、时间与成本预算、晋级策略和停止条件,都在运行前固定。
固定预算循环
train.py执行 · 判定: 请求一个候选mutator · 一个候选loop/mutate一个有依据的假设只改变一个允许修改的策略面。
7 个面 · 拒绝超参数
loop/mutate数据: 策略变更 · mutation ID基于文件的策略state/policies只有七个面可以改变:包装提示词、工具策略、分解建议、反思、技能目录元数据、智能体契约(role、system_prompt、tools),以及工具描述与提示。超参数变更在解析和应用阶段都会被拒绝。应用策略、重新测量和可选的提交是不同的步骤,因此应用本身并不是审计。
种子池 · 评分标准固定
prepare.py执行 · 判定: 种子 · 评分标准固定审计子进程 · 固定超时measure.pyprepare.py 是种子池与评分标准的固定基准,候选不会改动它。改动测量模块改变的是测量本身,而不是被测系统。
基于文件的策略
state/policies数据: 所选策略按策略 OVERRIDE · STRICTmeasure.pymeasure.py 读取当前选定的策略文件,并将其传入审计环境。
按策略 OVERRIDE · STRICT
measure.py执行 · 判定: 按策略的 override 路径core · 策略加载器measure.py 将 wrapper 及各策略的 override 与 strict 路径传给审计子进程,运行时中对应的策略加载器分别读取。wrapper(GEODE_WRAPPER_OVERRIDE → system_prompt)是其中一个分支;额外的环境变量键不会扩大七个可变的面。仅凭文件被修改,不能证明候选已到达目标;由审计证据中的诊断加以确认。
审计子进程 · 固定超时
measure.py执行 · 判定: audit subprocessPetri 审计审计以固定的超时与预算运行,比较途中从不改变。缺少输出属于诊断空缺,而不是零分。
Petri 审计数据: 审计对话core · 策略加载器
审计模型借助种子场景与 GEODE 对话,评判模型为对话记录评分。
判定 → 保留 · 还原
与同一契约的基线比较,由 critical 回归与晋级规则决定 KEEP;被拒绝的变更还原为记录的先前值。
Petri 审计数据: 维度分数critical 回归 · 辅助扣分
fitness.py分数附带缺失维度与样本数。未测量的维度不被当作观测值。
baseline · provenance
ledger.py数据: baseline · provenancecritical 回归 · 辅助扣分fitness.py只与所记录契约和 epoch 都相同的基线比较。新建 Git 分支并不能隔离基线状态。
critical 回归 · 辅助扣分
fitness.py数据: 适应度 · 回归原因_should_promote · KEEPgate.py先检查 critical 维度回归与辅助扣分,再进行 margin 或目标维度检验。仅凭一个为正的标量值从不晋级。
_should_promote · KEEP
gate.py数据: KEEP · 下一个基线baseline · provenanceledger.py被保留的候选成为下一个基线。在本地保留的候选不等于仓库合并或发布。
_reject_and_revert
gate.py执行 · 判定: REJECT · 还原先前值基于文件的策略state/policies对于 runner 生成的候选,还原以其 mutation ID 记录的策略段落,还原失败会被标记。手动变更不会自动还原;还原结果不确定时,不进入下一个候选。
_should_promote · KEEP
gate.py记录 · 观测: 结果 · 判定行results · mutation 行ledger.py测量、判定与来源作为结果行只写入一次;历史行从不改写。
对照 · 重复测量
2026年6月的运行:以不做变更的 never arm 与 K=5 基线单独测量审计噪声,单次审计的 KEEP 再用重复测量复核。
run-2606-broken-tool-use执行 · 判定: 三个 arm固定预算循环
train.py2026年6月3–4日的运行以三个 arm 区分漂移与变更效果:never(不变更)、random(随机采纳)和 gate(由判定采纳)。目标为 GPT-5.5;审计与评判模型为 Claude Opus 4.8。
gen-0 基线 · 5 次审计均值
run-2606-broken-tool-use数据: K=5 均值基线baseline · provenanceledger.pygen-0 基线取 5 次审计的均值(Petri broken_tool_use,越低越好,均值 2.667)。
never arm · 无变更对照
run-2606-broken-tool-use执行 · 判定: 不变更直接测量审计子进程 · 固定超时measure.pynever arm 在没有任何策略变更的情况下漂移到均值 3.38(10 次审计,越低越好):这是审计噪声大于变更效果的直接依据。
--replicate K · 重新测量
train.py执行 · 判定: --replicate K审计子进程 · 固定超时measure.py在相同条件下对同一候选再测量 K 次,排除单次审计的侥幸结果。
replicate · 重新测量单次 KEEP
run-2606-broken-tool-use执行 · 判定: 重新测量 → 还原_reject_and_revertgate.py在单次 gate 审计中被保留的候选(1.6),重复测量得到 3.0–3.8,比基线更差,因此还原为 champion 2.667。本次运行的结论是没有明显改进。
所有连接以相同粗细显示。选择一个流程,即只突出显示其路径,并标出步骤编号。
- 实线 · 请求、候选与结果的流向
- 虚线 · 执行、判定、授权、配置
- 长点划线 · 记录与观测,与判定分离
- 粗黑线 · 所选流程;数字表示顺序
- 方框 · 代码或记录的边界,顶部标注路径
- 内层小框 · 该边界内的组件
- 虚线框 · 该边界之外
- 循环 · 测量运行
- 契约 · 判定
- 策略 · 记录
- 变更 · 审计对象 · 执行记录
GEODE 的 SIL 驱动程序名为 autoresearch;其 prepare/train/program 结构与固定预算借鉴了 Karpathy 的 autoresearch。不改变任何模型权重,测量装置与预算在比较期间保持固定。
- 可以改变什么
- 七个面:包装提示词、工具策略、分解建议、反思、技能目录元数据、智能体契约,以及工具描述与提示。评测器、预算、种子与评分标准在比较期间保持固定。
- 执行记录的范围
- run-2606 的数值是该次运行的 Petri broken_tool_use 均值(越低越好),不能作为 SIL 累积改进或泛化的依据。