一次只改一項策略;測量保持固定。
在執行框架之外運作的獨立迴圈。它從基準線套用一項具型別的策略變更,再由相同的 Petri 稽核與判定閘門決定 KEEP 或還原。
一項變更 → 稽核
在執行契約固定的情況下,變更一項允許的策略,並以相同裝置稽核 GEODE。這不是運作中的產品在改寫自己。
維運人員核准執行 · 判定: 核准執行契約 · 模型 · 預算
program.md只有在實際呼叫與固定預算獲得核准後才會執行。未經核准時,只準備契約並進行離線檢查。
執行契約 · 模型 · 預算
program.md執行 · 判定: 執行契約固定預算迴圈train.py種子與評分準則的版本、角色模型與認證資訊來源、測量設定、迭代次數、時間與成本預算、晉級策略與停止條件,都在執行前固定。
固定預算迴圈
train.py執行 · 判定: 請求一個候選mutator · 一個候選loop/mutate一個有依據的假說,變更一個允許修改的策略面。
7 個面 · 拒絕超參數
loop/mutate資料: 策略變更 · mutation ID檔案型策略state/policies只有七個面可以變更:包裝提示詞、工具策略、分解建議、reflection、技能目錄中繼資料、代理契約(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)是其中一個分支;額外的環境變數鍵不會擴大七個可變更的面。僅憑修改過的檔案,不足以證明候選已抵達 target;須由稽核證據中的診斷確認。
稽核子行程 · 固定逾時
measure.py執行 · 判定: audit subprocessPetri 稽核稽核以固定的逾時與預算執行,比較途中絕不更動。沒有輸出是診斷上的缺口,不是零分。
Petri 稽核資料: 稽核對話core · 策略載入器
auditor 透過種子情境與 GEODE 對話,judge 為對話記錄評分。
判定 → 保留 · 還原
與相同契約的基準線比較,由 critical 退化與晉級規則決定 KEEP;被拒絕的變更還原為記錄的先前值。
Petri 稽核資料: 維度分數critical 退化 · 扣分
fitness.py分數會附帶缺漏的維度與樣本數。未測量的維度不會被當作觀測值。
baseline · provenance
ledger.py資料: baseline · provenancecritical 退化 · 扣分fitness.py只與記錄的契約及 epoch 相同的基準線比較。新的 Git 分支不會隔離基準線狀態。
critical 退化 · 扣分
fitness.py資料: fitness · 退化原因_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(依判定採納)。target 為 GPT-5.5;auditor 與 judge 為 Claude Opus 4.8。
gen-0 基準線 · 5 次稽核平均
run-2606-broken-tool-use資料: K=5 平均基準線baseline · provenanceledger.pygen-0 基準線取五次稽核的平均(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。模型權重不會改變,測量裝置與預算在比較期間保持固定。
- 可變更的部分
- 七個面:包裝提示詞、工具策略、分解建議、reflection、技能目錄中繼資料、代理契約,以及工具說明與提示。評測器、預算、種子與評分準則在比較期間保持固定。
- 執行記錄的範圍
- run-2606 的數值是該次執行的 Petri broken_tool_use 平均(越低越好),並非 SIL 累積改善或泛化的依據。