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

GEODE

Autonomous Agent Harness

從觀測,到下一步行動。

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

2026.02.21 — present

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

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

模型的停止提議,須經驗證才成為完成。

對可交付的停止而言,模型即使要求停止,仍須經過完成驗證。結果分為完成、在預算內繼續、等待審查三種;執行上限、取消與錯誤則以另一種停止狀態結束。

完成判定架構圖 · 依固定提交 9e2c041 的程式碼路徑繪製
GEODE 完成判定架構圖模型的停止提議如何成為完成。只有可交付的停止(natural、forced_text、actionable_partial)會經過 PreVerify hook、結構檢查與所選的評判模型(預設 LLM judge,選用時為 Jev),以及 PostVerify 與 Stop hook。通過者儲存為 completed;可修復的失敗會在預設兩次嘗試的預算內繼續同一請求。判定無法使用、試圖將失敗轉為通過,或預算用盡時,會扣留候選並將工作階段暫停。取消、上限與基礎設施造成的停止,以及 control workflow 的執行,不經驗證即儲存。IPC · CLI 呼叫端回應 · 工作階段狀態外部審查者pending · 未聯繫評判模型LLM judge · Jev Choiceipc_server/poller.pycontrol workflow · 略過公開驗證loop/agent_loop.pyarun · 模型回合_arun_once · 修復續行loop/_guards.py · models.py可交付的停止 · natural 等失敗 · 上限 · 取消停止loop/_lifecycle.pyfinalize_and_return_asyncpolicy_action · 解讀判定續行預算 · 預設 2 次core/hooks/public.pyPreVerify · STRENGTHENPostVerify · ACCEPT · REVISE · ESCALATEStop · CONTINUEmemory · observability檢查點 · 工作階段狀態timeline · ledger 判定列core/agent/verify.py結構檢查 · empty_turn語意判斷 · LLM 或 Jevverification_error · 失效即封閉GEODE 執行環境行程AgenticLoop 一個回合的結尾迴圈 · 停止候選定案 · 判定1 停止提議 · arun · 模型回合 → 可交付的停止 · natural 等12完成候選3 PreVerify · finalize_and_return_async → PreVerify · STRENGTHEN34verify_turn_async5判斷請求6passed · rubric_misses7 PostVerify 決策 · policy_action · 解讀判定 → PostVerify · ACCEPT · REVISE · ESCALATE78Stop · CONTINUE9completed · 已儲存10回應1passed · rubric_misses2 PostVerify 決策 · policy_action · 解讀判定 → PostVerify · ACCEPT · REVISE · ESCALATE23Stop · CONTINUE4修復 · 嘗試 +11verification_error2 PostVerify 決策 · policy_action · 解讀判定 → PostVerify · ACCEPT · REVISE · ESCALATE23ESCALATE · pending4判定 · 證據列1 防護 · 上限 · arun · 模型回合 → 失敗 · 上限 · 取消停止12失敗 · 取消停止3略過公開驗證4僅儲存 · 不驗證5回應

驗證 → 完成

只有可交付的停止會經過 PreVerify → 判斷 → PostVerify → Stop。模型的停止提議與 hook 指示,本身都不構成完成。

  1. arun · 模型回合loop/agent_loop.py資料: 停止提議可交付的停止 · natural 等loop/_guards.py · models.py

    模型以文字回答而未呼叫工具時,該回合成為 natural 停止候選(在最後允許的輪次則為 forced_text)。模型的停止提議尚不等於完成。

  2. 可交付的停止 · natural 等loop/_guards.py · models.py資料: 完成候選finalize_and_return_asyncloop/_lifecycle.py

    只有 natural、forced_text 與 actionable_partial 屬於可交付的停止,也只有這些會進入公開驗證。

  3. finalize_and_return_asyncloop/_lifecycle.py執行 · 判定: PreVerifyPreVerify · STRENGTHENcore/hooks/public.py

    透過 STRENGTHEN,PreVerify hook 只能新增要求與缺漏代碼。它能讓判定更嚴格,絕不能使其通過。

  4. finalize_and_return_asyncloop/_lifecycle.py執行 · 判定: verify_turn_async結構檢查 · empty_turncore/agent/verify.py

    先進行結構檢查(空回合、model_action_required);無法修復的結構失敗會略過語意判斷。off 或 rule_based 等舊設定會解析為 llm_judge,無法關閉判定。

  5. 語意判斷 · LLM 或 Jevcore/agent/verify.py資料: 判斷請求評判模型

    所選的評判模型(預設 LLM judge,選用時為 Jev Choice)會在不帶工具的情況下呼叫一次,最長 120 秒,且不超過剩餘的時間預算。可能帶有個人觀測資料的候選,不會送往輔助評判模型。

  6. 語意判斷 · LLM 或 Jevcore/agent/verify.py資料: passed · rubric_missespolicy_action · 解讀判定loop/_lifecycle.py

    判定內容包括通過與否、缺漏代碼、供下次嘗試使用的 reflection,以及重試是否有用。語意判斷通過,絕不能掩蓋結構檢查的失敗。

  7. policy_action · 解讀判定loop/_lifecycle.py執行 · 判定: PostVerify 決策PostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.py

    PostVerify hook 決定 ACCEPT、REVISE 或 ESCALATE。對驗證失敗的候選做出 ACCEPT,會轉為 escalate。沒有決策時,套用執行環境的預設值(通過 → accept,可重試 → revise,其餘 → escalate)。

  8. policy_action · 解讀判定loop/_lifecycle.py執行 · 判定: Stop · CONTINUEStop · CONTINUEcore/hooks/public.py

    只有在不 escalate 時,Stop hook 的 CONTINUE 指示才能要求修復續行。hook 的指示是下次嘗試的輸入,而非權限。

  9. policy_action · 解讀判定loop/_lifecycle.py資料: completed · 已儲存檢查點 · 工作階段狀態memory · observability

    通過且 accept 時,會合併續行的嘗試、儲存結果,並將工作階段記錄為 completed。

  10. finalize_and_return_asyncloop/_lifecycle.py資料: 回應IPC · CLI 呼叫端

    完成時傳回最終答案;等待審查時傳回空白答案與 EXTERNAL_VERIFICATION_REQUIRED;未經驗證的停止則傳回停止原因。

預算內修復

可修復的失敗會繼續同一請求。預設預算為兩次嘗試;用盡時,候選進入等待審查。

  1. 語意判斷 · LLM 或 Jevcore/agent/verify.py資料: passed · rubric_missespolicy_action · 解讀判定loop/_lifecycle.py

    判定內容包括通過與否、缺漏代碼、供下次嘗試使用的 reflection,以及重試是否有用。語意判斷通過,絕不能掩蓋結構檢查的失敗。

  2. policy_action · 解讀判定loop/_lifecycle.py執行 · 判定: PostVerify 決策PostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.py

    PostVerify hook 決定 ACCEPT、REVISE 或 ESCALATE。對驗證失敗的候選做出 ACCEPT,會轉為 escalate。沒有決策時,套用執行環境的預設值(通過 → accept,可重試 → revise,其餘 → escalate)。

  3. policy_action · 解讀判定loop/_lifecycle.py執行 · 判定: Stop · CONTINUEStop · CONTINUEcore/hooks/public.py

    只有在不 escalate 時,Stop hook 的 CONTINUE 指示才能要求修復續行。hook 的指示是下次嘗試的輸入,而非權限。

  4. 續行預算 · 預設 2 次loop/_lifecycle.py執行 · 判定: 修復 · 嘗試 +1_arun_once · 修復續行loop/agent_loop.py

    有修復指示,且只在嘗試次數低於預算(預設兩次)時,才繼續同一請求。達到預算時成為 escalate_budget_exhausted 並等待審查。

等待審查

判定無法使用、試圖將失敗轉為通過,或預算用盡時,會扣留候選並暫停工作階段。

  1. verification_error · 失效即封閉core/agent/verify.py失敗 · 無判定: verification_errorpolicy_action · 解讀判定loop/_lifecycle.py

    缺少評判模型、逾時或回應無效,都會成為 verification_error:既非通過,也非修復訊號。無法使用的判定絕不能代替成功。

  2. policy_action · 解讀判定loop/_lifecycle.py執行 · 判定: PostVerify 決策PostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.py

    PostVerify hook 決定 ACCEPT、REVISE 或 ESCALATE。對驗證失敗的候選做出 ACCEPT,會轉為 escalate。沒有決策時,套用執行環境的預設值(通過 → accept,可重試 → revise,其餘 → escalate)。

  3. policy_action · 解讀判定loop/_lifecycle.py執行 · 判定: ESCALATE · pending外部審查者

    候選以 pending_text 保留,不出現在一般回應中;檢查點會儲存,工作階段則暫停。不會自動聯繫外部審查者。

  4. policy_action · 解讀判定loop/_lifecycle.py記錄 · 觀測: 判定 · 證據列timeline · ledger 判定列memory · observability

    timeline 寫入判定、證據與 pending 列,evidence ledger 寫入 verification_policy 列。這些是盡力而為的記錄,不證明外部效果。

未經驗證的停止

取消、上限與基礎設施造成的停止,以及 control workflow 的執行,不經公開驗證即儲存。

  1. arun · 模型回合loop/agent_loop.py執行 · 判定: 防護 · 上限失敗 · 上限 · 取消停止loop/_guards.py · models.py

    輪次、時間、成本與上下文上限、取消、重複失敗偵測等防護,會以封閉的 TerminationReason 集合中的一個成員結束回合。在設定中停用的上限,不一定會強制執行。

  2. 失敗 · 上限 · 取消停止loop/_guards.py · models.py失敗 · 無判定: 失敗 · 取消停止finalize_and_return_asyncloop/_lifecycle.py

    取消、基礎設施與上限造成的停止沒有可驗證的候選,因此不經公開驗證即儲存。

  3. control workflow · 略過公開驗證ipc_server/poller.py執行 · 判定: 略過公開驗證finalize_and_return_asyncloop/_lifecycle.py

    IPC 呼叫要求略過公開驗證,或有 control workflow 進行中時,只在該次執行期間關閉公開驗證,結束後恢復先前的值。

  4. finalize_and_return_asyncloop/_lifecycle.py資料: 僅儲存 · 不驗證檢查點 · 工作階段狀態memory · observability

    未經驗證的停止,仍會儲存結果與檢查點,並發出工作階段結束事件。

  5. finalize_and_return_asyncloop/_lifecycle.py資料: 回應IPC · CLI 呼叫端

    完成時傳回最終答案;等待審查時傳回空白答案與 EXTERNAL_VERIFICATION_REQUIRED;未經驗證的停止則傳回停止原因。

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

  • 實線 · 請求、候選與結果的流向
  • 虛線 · 執行、判定、授權、設定
  • 長點劃線 · 記錄與觀測,與判定分開
  • 短虛線 · 失敗或無法使用的判定
  • 粗黑線 · 所選流程;數字表示順序
  • 方框 · 程式碼或記錄的邊界,標頭為其路徑
  • 內層小框 · 該邊界內的元件
  • 虛線框 · 該邊界之外
  • 迴圈 · 定案
  • 停止 · hook · 判定
  • 儲存 · 記錄
  • IPC 進入

只繪出固定提交 9e2c041 中的呼叫路徑。評判模型的通過,與外部基準測試驗證器的成功是兩回事;此處的完成是執行環境內部的決策。

判定引擎
預設為 LLM judge;只有在 judgment_engine 設為 jev 時,才由 Jev Choice 判定。無論哪一種,無法使用的評判模型都會產生 verification_error,絕不會成為成功。
hook 可做的事
PreVerify 只能讓判定更嚴格,PostVerify 無法讓失敗的候選通過,Stop 只在不 escalate 時才能要求續行。
等待審查
等待審查記錄的是需要外部決定,並不會通知任何人,也不代表結果已獲核准。