GEODE 的官方像素角色 Geodi
返回展廳

GEODE

Autonomous Agent Harness

從觀測,到下一步行動。

一個可以委託研究、檔案處理與排程工作的本機自主代理執行框架。

2026.02.21 — present

設計、判斷、驗證:Author · 實作:Claude · 審查:Codex

  • CLI公開發布 · PyPI
  • MCP 伺服器已實作

Decision Offloading w. Jev

代理在任務途中做出的中間決策,哪些可以交給只做判斷的模型 Jev?本研究檢驗交出之後,經獨立驗證的任務品質是否仍能維持,並將準備、重複判斷、修復與最終交付都計算在內。早期前導實驗的結果無法只靠替換判斷呼叫來解釋,因此將輸入契約、判斷契約、機率策略與執行代理的使用方式,分別拆成各自的實驗。

Jev 架構圖 · 執行環境依固定提交 9e2c041,研究依 2026年9月的記錄
Jev 判斷路徑:執行環境整合與研究上半部是現今 GEODE 執行環境中的選用判斷路徑。只有在 judgment_engine 設為 jev 時,最終驗證與 reflection 才會呼叫一次 TypeSafe SystemOne 上的 Jev,回應須通過型別、範圍與機率總和的受理檢查後才會使用。只有 supported 能通過最終驗證,其結果交給「完成判定」一章的 PostVerify 與 Stop 策略。下半部是執行環境之外的 Jev v3 研究:固定狀態面板(U3)比較 Astra 與 Jev 的判斷;Harbor 0.22 的 E/I 執行只更換判斷路徑,並以獨立的規則 oracle 分別檢查結果與交付;公開資料包將原始與公開雜湊分開,並提供不需模型的重新計算。TypeSafe SystemOnejev-1.13.0 · 僅限判斷Astra 判定 · actor 模型gpt-6-astra/xhigh · 訂閱Jev 研究報告公開技術報告core/config/judgment.pyjudgment_engine · llm | jevauto → typesafe · openrouterloop/_lifecycle.pyPostVerify · Stop 策略core/agent/verify.py最終判定 · 一個 Choice 問題只有 supported 通過 · 僅文字adapters/typesafe.pySystemOne · 呼叫一次 · 無備援受理檢查 · 總和容許誤差 1e-5loop/_reflection.pyreflection · 證據分類memory · observabilitytimeline · ledger 判定列U3 · 固定狀態面板120 對 · 27 個來源 · 無 actorAstra · Jev · 相同問題E/I · Harbor 0.22Astra actor · 工具 · 修復判定路徑 · Astra · Jev · Jev-firstrule oracle正確性 · 交付分開計算jev-v3-20260927E2E-DATA · 原始來源 · 公開雜湊REPRODUCE · model-freeGEODE 執行環境 · 9e2c041選用判斷 · 預設 llmJev v3 研究 · 2026年9月執行環境之外 · 獨立的執行框架1選擇路徑2 請求 · 候選 · 觀測 · 最終判定 · 一個 Choice 問題 → SystemOne · 呼叫一次 · 無備援23 一次 SystemOne 呼叫 · SystemOne · 呼叫一次 · 無備援 → TypeSafe SystemOne34 已受理的 Choice · 受理檢查 · 總和容許誤差 1e-5 → 只有 supported 通過 · 僅文字45passed · reflection6判定列1相同的選擇2為證據分類3 一次 SystemOne 呼叫 · SystemOne · 呼叫一次 · 無備援 → TypeSafe SystemOne34 分類結果 · 受理檢查 · 總和容許誤差 1e-5 → reflection · 證據分類41Jev 判斷2Astra 判斷3面板結果 · 報告1生成 · 工具 · 修復2完成判定路徑3 獨立檢查 · E/I · Harbor 0.22 → 正確性 · 交付分開計算34失敗 · 修復譜系5不需模型的重算

執行環境 · 最終判定

選用 Jev 時,最終驗證以一個 Choice 問題呼叫 Jev 一次,只有通過受理檢查的 supported 判定能通過。

  1. judgment_engine · llm | jevcore/config/judgment.py執行 · 判定: 選擇路徑最終判定 · 一個 Choice 問題core/agent/verify.py

    只有在 judgment_engine 設為 jev 時才使用 Jev 路徑(預設 llm)。provider auto 依 TypeSafe、OpenRouter 的順序,選擇有金鑰的一方;沒有金鑰時維持 LLM judge 路徑。這不是將失敗請求改送他處重試的備援。

  2. 最終判定 · 一個 Choice 問題core/agent/verify.py資料: 請求 · 候選 · 觀測SystemOne · 呼叫一次 · 無備援adapters/typesafe.py

    原始請求與候選經遮蔽並限制長度後,連同工具觀測,以一個 Choice 問題(supported、contradicted、insufficient_evidence)送出。判斷呼叫不提供任何工具(allow_tools=False)。需要圖片的判斷不會送往 Jev,而是成為 verification_error。

  3. SystemOne · 呼叫一次 · 無備援adapters/typesafe.py資料: 一次 SystemOne 呼叫TypeSafe SystemOne

    呼叫一次,直接連往 TypeSafe 或經由 OpenRouter,不會轉往其他供應商。Jev 絕不作為根文字生成模型。

  4. 受理檢查 · 總和容許誤差 1e-5adapters/typesafe.py資料: 已受理的 Choice只有 supported 通過 · 僅文字core/agent/verify.py

    回應須通過型別、範圍與機率總和(容許誤差 1e-5)的受理檢查後才會使用。只有 supported 通過;contradicted 與 insufficient_evidence 會成為重試訊號,並附上固定的下一項檢查。不是 end_turn 或未通過受理檢查的回應,會成為 verification_error,這不是重試訊號(should_retry=False)。分數是二元投射,並非經校準的機率。

  5. 只有 supported 通過 · 僅文字core/agent/verify.py資料: passed · reflectionPostVerify · Stop 策略loop/_lifecycle.py

    判定交給「完成判定」一章的 PostVerify 與 Stop 策略。判定是該策略的輸入,而非權限;等待審查時,候選只以 pending_text 保留,最終回應為空,因此不會交付任何內容。

  6. PostVerify · Stop 策略loop/_lifecycle.py記錄 · 觀測: 判定列timeline · ledger 判定列memory · observability

    判定決策記錄在 timeline 與 evidence ledger 中:這些是執行環境的記錄,與研究產出物分開。

執行環境 · reflection

相同的選擇也驅動 reflection 的證據分類;下一項檢查的句子由程式碼設定。

  1. judgment_engine · llm | jevcore/config/judgment.py執行 · 判定: 相同的選擇reflection · 證據分類loop/_reflection.py

    相同的選擇也適用於 reflection。

  2. reflection · 證據分類loop/_reflection.py資料: 為證據分類SystemOne · 呼叫一次 · 無備援adapters/typesafe.py

    reflection 使用 Jev 為有限範圍的證據分類,並附加由程式碼決定的下一項檢查。它不會改變信念假說或自信程度。

  3. SystemOne · 呼叫一次 · 無備援adapters/typesafe.py資料: 一次 SystemOne 呼叫TypeSafe SystemOne

    呼叫一次,直接連往 TypeSafe 或經由 OpenRouter,不會轉往其他供應商。Jev 絕不作為根文字生成模型。

  4. 受理檢查 · 總和容許誤差 1e-5adapters/typesafe.py資料: 分類結果reflection · 證據分類loop/_reflection.py

    只有已受理的分類會更新 reflection 狀態;失敗時,下一輪從相同的先前狀態重試。

研究 · 固定面板 U3

在沒有 actor 的情況下,成對比較 Jev 與 Astra 對相同狀態與問題的判斷。

  1. Astra · Jev · 相同問題U3 · 固定狀態面板資料: Jev 判斷TypeSafe SystemOne

    U3(原始實驗提交 2f2b494):120 個固定狀態 · 27 個來源群集 · 240 次呼叫。每個狀態與問題都以一對的形式送給 Jev 與 Astra;沒有 actor、工具或 Harbor。

  2. Astra · Jev · 相同問題U3 · 固定狀態面板資料: Astra 判斷Astra 判定 · actor 模型

    同一樣本的正確數:Astra 90/120,Jev 84/120;每次呼叫的中位數 10.446 s 對 0.253 s。這只是判斷呼叫的延遲,並非任務時間或成本的節省。

  3. U3 · 固定狀態面板資料: 面板結果 · 報告Jev 研究報告

    U3 的準確率與延遲結果收錄於公開技術報告。此處不主張此面板是否屬於 E2E 公開資料包。

研究 · E/I 執行

以 Astra 作為 actor,只更換判斷路徑,並以獨立的規則 oracle 分別檢查結果與交付。

  1. Astra actor · 工具 · 修復E/I · Harbor 0.22資料: 生成 · 工具 · 修復Astra 判定 · actor 模型

    在 Harbor 0.22 上的 E/I 中,actor Astra 負責生成、工具呼叫與修復;只有判斷路徑改變。

  2. 判定路徑 · Astra · Jev · Jev-firstE/I · Harbor 0.22資料: 完成判定路徑TypeSafe SystemOne

    E7(原始實驗提交 1f65534):12 個自行撰寫的合成任務 × 3 種組態 × 2 次 = 72 次執行,每種組態 24/24。Jev-first 組態實際發生的備援為 0/24,因此其效果未被測量。

  3. E/I · Harbor 0.22記錄 · 觀測: 獨立檢查正確性 · 交付分開計算rule oracle

    獨立的規則 oracle 檢查最終結果,實際的最終交付則另行計算。在中斷的 U8n 的 11 個事後配對中,所有候選都通過 oracle,但交付為 Astra 11/11、Jev Noul 0/11。

  4. E/I · Harbor 0.22資料: 失敗 · 修復譜系E2E-DATA · 原始來源 · 公開雜湊jev-v3-20260927

    E2E 公開資料包保留準備、失敗與修復的譜系,原始與公開副本的雜湊分開保存。經遮蔽的公開副本,不能代替對未更動原始資料的驗證。

  5. REPRODUCE · model-freejev-v3-20260927資料: 不需模型的重算Jev 研究報告

    從儲存的回應重新計算數值,與重新執行是不同的操作。此報告是公開技術報告,不是經同儕審查的論文。

所有連線以相同粗細顯示。選擇一個流程,即只突顯其路徑,並標出步驟編號。

  • 實線 · 請求、候選與結果的流向
  • 虛線 · 執行、判定、授權、設定
  • 長點劃線 · 記錄與觀測,與判定分開
  • 粗黑線 · 所選流程;數字表示順序
  • 方框 · 程式碼或記錄的邊界,標頭為其路徑
  • 內層小框 · 該邊界內的元件
  • 虛線框 · 該邊界之外
  • 迴圈 · 執行框架
  • 路徑選擇 · 判定 · oracle
  • 記錄 · 公開資料包
  • 傳輸 · 判斷面板

上下兩部分是不同的系統。研究的組態與結果並未全部在現今的執行環境路徑中啟用;兩者唯一的共同連結,是都呼叫同一個 Jev 模型(jev-1.13.0)。

執行環境受理檢查
執行環境將機率總和容許誤差嚴格維持在 1e-5。評測端的呼叫者會傳入各自記錄的容許誤差,而不是放寬執行環境的解析器。
研究範圍
U3 只測量判斷呼叫;E/I 包含 actor 與修復。兩者的分母絕不混用,U8n 的 11 對則是對中斷研究的事後分析。

三種判斷契約

Choice

傳回
各類別或選項的機率
判斷
完成與否;請求的意圖與對象

Noul

傳回
每個條件的 P(true)
判斷
矛盾;證據不足

Score

傳回
固定序位尺度上的期望值與分布
判斷
生成候選的排名

期望值代表候選在尺度上的位置,不作為信心度使用。

評測與串接

每個契約都在各自固定的輸入面板上評測,其中部分契約接入實驗執行框架的執行路徑,以觀察執行代理如何使用判斷。在上方架構圖中,研究部分呈現這些執行;執行環境部分則是現今 GEODE 中的選用路徑。

改變設計的觀測

  1. I5 → I6 · 輸入契約
    1. 追蹤一個共同的交付失敗後發現,判斷輸入缺少任務契約,並將同一請求中的工具觀測描述為過去的上下文
    2. 在使用修訂程式碼與新帳號的另一次執行中,I6 交付 6/6
  2. U3 · 相同的 120 對狀態
    1. 每次呼叫的中位數 Astra 10.446 s · Jev 0.253 s;同一樣本的正確數 90/120 · 84/120
    2. 針對每項決策,同時權衡速度與準確率,以決定委派範圍
  3. U2 · 機率
    1. Jev 的機率在大小上校準得較好,但 Astra 更能穩定地把自己錯誤的判斷排在前面
    2. 校準與錯誤篩選分開測量,門檻值在 selection 分割上凍結
  4. U6a · 意圖與對象
    1. 在設計者撰寫的 40 個 family 上,Jev 216/220 · Astra 220/220,符合預先登錄的 −5 pp margin
    2. 固定的意圖與對象分類,被縮小為下一個應用候選
  5. U8n · 交付
    1. 中斷執行的事後 11 對:修復後的候選在兩個 arm 中都通過 oracle;交付為 Astra 11/11 · Jev Noul 0/11
    2. 證據不足的判斷阻擋了正確的交付;目前的 Noul 設定缺乏作為唯一交付評判的依據