GEODEの公式ピクセルキャラクター、Geodi
展示室へ戻る

GEODE

Autonomous Agent Harness

観測から、次の行動へ。

調査、ファイル作業、予約タスクを任せられる、ローカルの自律エージェント・ハーネスです。

2026.02.21 — present

設計・判断・検証: Author · 実装: Claude · レビュー: Codex

  • CLI一般公開 · PyPI
  • MCPサーバー実装済み

順序の決まったフェーズを経てつくられる監査シナリオ。

フェーズの順序はホストが管理し、各フェーズの役割エージェントが作業を分担します。結果として得られたシードプールと選んだルーブリックが、Petriの行動監査の入力になります。

シード生成構成図 · 固定コミット9e2c041のevalsパスから作図
GEODEの監査シナリオ生成とPetri監査監査シナリオ(シード)を作成し、監査する経路です。seed_generationオーケストレーターがフェーズの順序を管理し、役割エージェントが草案・レビュー・改善を担います。結果はsurvivorsディレクトリとmeta-reviewファイルとして書き出されます。Petri監査はシードの選択を受け取り、3つのモデルの役割を別々に割り当てます。auditorはシードのシナリオを演じ、targetはGEODEスキャフォールド全体、judgeは会話記録を次元ごとに採点してInspectログに残します。SILの測定がその結果を読み、保持された測定は次の生成のベースラインの根拠になります。auditorモデルシードのシナリオを演じるtargetのベースモデルGEODEがラップするモデルjudgeモデル会話記録全体を採点Inspectの.evalログアーカイブ · 要約SILの測定 · measure.py「ポリシー探索」章が読むbaseline snapshot次元平均 · 根拠handoff pointerlatest_pointer.json · priorsseed_generation/orchestrator.pyフェーズの順序 · PipelineStatecheckpoint · resumeagents/ · 草案Supervisor · 実行戦略literature_review · 既定でオフGenerator · 候補シードagents/ · レビューProximity · 重複除去Critic · レビューPilot · 任意 · smokeでは省略Ranker · Eloagents/ · 改善Evolver · 改善Meta-reviewer · 次のpriorsrun_dir/survivors/ · 候補の.mdコピーsurvivors.json · Elo · pilotmeta_review.json · state.jsonpetri/seeds同梱シード · *.mdpetri/runner.pygeode audit · /audit · ツールコスト見積もり · 既定はdry-runpetri/geode_target.pytargetとしてのGEODE · AgenticLooppetri/judge_dimsjudge_dimensions · YAML実行外の状態ファイルevals/seed_generationシナリオ作成evals/petri監査の実行1フェーズを順に実行2ベースラインの根拠3 前回のmeta-review · latest_pointer.json · priors → agents/ · 草案34 候補シード · agents/ · 草案 → agents/ · レビュー45survivors · Elo6 次の反復 · Criticから · Meta-reviewer · 次のpriors → Critic · レビュー67 survivorsの書き出し · agents/ · 改善 → run_dir/78latestポインター1--seed-select2同梱シード3 モデルの役割 · 3つの席 · geode audit · /audit · ツール → auditorモデル34シードのシナリオ対話5 モデル呼び出し · targetとしてのGEODE · AgenticLoop → targetのベースモデル56会話記録7 judge_dimensions · judge_dimensions · YAML → judgeモデル78次元スコア1次元スコア2 測定 · Inspectの.evalログ → SILの測定 · measure.py23ベースラインの更新4ベースラインの根拠

シナリオ作成

オーケストレーターがフェーズの順序を管理し、役割エージェントが候補を作って絞り込み、結果をファイル契約で書き出します。

  1. フェーズの順序 · PipelineStateseed_generation/orchestrator.py実行 · 判定: フェーズを順に実行agents/ · 草案

    オーケストレーターがフェーズの順序と状態のマージを管理し、各フェーズの役割エージェントが作業を行います。フェーズ内ではSubAgentManagerで作業を分散でき、サブエージェントはそれ以上再帰しません(depth 1)。

  2. 次元平均 · 根拠baseline snapshotデータ: ベースラインの根拠agents/ · 草案

    Generator、Critic、Evolverは、選択したベースラインの次元ごとの平均・標準誤差・根拠を読みます。最初の生成にはベースラインがなく、既定のプロンプトを使います。

  3. latest_pointer.json · priorshandoff pointerデータ: 前回のmeta-reviewagents/ · 草案

    前回の実行のmeta-reviewが残した次世代のpriorsと、扱いが不十分な次元を、今回の生成が参照します。

  4. agents/ · 草案データ: 候補シードagents/ · レビュー

    Generatorの候補は、Proximityの重複除去、Criticのレビュー、Pilot(任意、smoke実行では省略)、RankerのElo順位付けを順に通ります。

  5. agents/ · レビューデータ: survivors · Eloagents/ · 改善

    Evolverが上位の候補を改善し、Meta-reviewerが今回の実行をまとめて次世代のpriorsを作ります。

  6. Meta-reviewer · 次のpriorsagents/ · 改善実行 · 判定: 次の反復 · CriticからCritic · レビューagents/ · レビュー

    max_iterationsを設定すると、Meta-reviewerの後、改善された候補が再びCritic → Pilot → Ranker → Evolver → Meta-reviewerを通ります。Supervisor、Generator、Proximityは再実行されず、既定の反復回数は0回です。

  7. agents/ · 改善データ: survivorsの書き出しrun_dir/

    生き残った候補の本文はsurvivors/にファイルとしてコピーされ、Eloとpilotのスコアはsurvivors.jsonに、meta-reviewと状態は別に書き込まれます。

  8. meta_review.json · state.jsonrun_dir/データ: latestポインターlatest_pointer.json · priorshandoff pointer

    1つのlatest_pointer.jsonに、今回の実行のseed_poolとmeta_reviewの場所を記録します。実行ごとの出力が正本で、ポインターは次の実行を助けるベストエフォートの参照のため、書き込みに失敗してもログに残すだけです。すべての実行に両方のフィールドがあるわけではありません。

監査の実行

auditorがシード(シナリオ指示)を演じ、targetはGEODEスキャフォールド、judgeが会話記録を採点します。3つの役割は別々のモデルの席です。

  1. survivors/ · 候補の.mdコピーrun_dir/データ: --seed-selectgeode audit · /audit · ツールpetri/runner.py

    監査はシードの選択(survivorsディレクトリ、同梱シード、IDまたはタグ)を受け取り、Inspectのinspect_petri/auditタスクに渡します。シード生成が監査を自ら開始することはありません。

  2. 同梱シード · *.mdpetri/seedsデータ: 同梱シードgeode audit · /audit · ツールpetri/runner.py

    リポジトリに同梱されたシードを、そのまま選択することもできます。

  3. geode audit · /audit · ツールpetri/runner.py実行 · 判定: モデルの役割 · 3つの席auditorモデル

    auditor、target、judgeのモデルを別々に設定します。既定はdry-runで、コストの見積もりを確認した後にだけ実際に呼び出します。3つの役割が同じプロバイダーの場合は、同一プロバイダーによるバイアスの標識を付けます。

  4. auditorモデルデータ: シードのシナリオ対話targetとしてのGEODE · AgenticLooppetri/geode_target.py

    シードはauditorへのシナリオ指示です。auditorが会話を主導し、target_toolsを有効にした場合に限り、ツールとツール結果を作り出せます。

  5. targetとしてのGEODE · AgenticLooppetri/geode_target.pyデータ: モデル呼び出しtargetのベースモデル

    GEODEのAgenticLoop全体(ツール、フック、メモリ)を1つのモデルAPIとしてラップするため、監査対象はベースモデル単体ではなくGEODEスキャフォールドです。

  6. targetとしてのGEODE · AgenticLooppetri/geode_target.pyデータ: 会話記録judgeモデル

    judgeはサンプルごとに会話記録全体を一度読み、次元ごとに採点します。

  7. judge_dimensions · YAMLpetri/judge_dims実行 · 判定: judge_dimensionsjudgeモデル

    採点の次元は、選択したjudge次元のYAMLが決めます。これは行動監査であり、タスク完了とは異なる測定です。

  8. judgeモデルデータ: 次元スコアInspectの.evalログ

    Inspectの.evalログと要約をアーカイブします。アーカイブに失敗しても記録に残すだけで、監査結果は妨げません。

測定 → 次の生成

SILは監査スコアを判定に使い、保持された測定は次のシード生成のベースラインの根拠になります。この連携がすべてのキャンペーンで自動的に動いたという意味ではありません。

  1. judgeモデルデータ: 次元スコアInspectの.evalログ

    Inspectの.evalログと要約をアーカイブします。アーカイブに失敗しても記録に残すだけで、監査結果は妨げません。

  2. Inspectの.evalログ記録 · 観測: 測定SILの測定 · measure.py

    SILのmeasure.pyが監査のサブプロセスを実行し、その結果からfitnessを計算します。

  3. SILの測定 · measure.pyデータ: ベースラインの更新次元平均 · 根拠baseline snapshot

    SILのledgerが、保持された測定をベースラインとして書き込みます。シード生成は、ベースラインが選択されると(自動または明示的に)その根拠を読みます。

  4. 次元平均 · 根拠baseline snapshotデータ: ベースラインの根拠agents/ · 草案

    Generator、Critic、Evolverは、選択したベースラインの次元ごとの平均・標準誤差・根拠を読みます。最初の生成にはベースラインがなく、既定のプロンプトを使います。

すべての接続を同じ太さで表示します。フローを選ぶと、その経路だけを番号付きで強調します。

  • 実線 · リクエスト・候補・結果が流れる方向
  • 破線 · 実行・判定・認可・設定
  • 長い一点鎖線 · 記録と観測、判定とは別
  • 太い黒線 · 選んだフロー。番号は順序
  • ボックス · コードまたは記録の境界、見出しにパス
  • 内側のチップ · その境界内の構成要素
  • 破線ボックス · その境界の外
  • オーケストレーター · 監査の入口
  • 監査対象 · 採点次元
  • 出力 · 状態ファイル
  • 役割エージェント · 同梱シード

初回の順序と反復の順序はオーケストレーターが固定します。設定、登録された役割、再開地点によって一部のフェーズが省かれることがあり、すべてのキャンペーンがすべてのフェーズを実行したわけではありません。状態ファイルの場所は環境によって異なるため、パスは示していません。

3つの役割
シードは人が書いた、または生成されたシナリオ指示で、auditorはそれを演じるモデル、targetは監査対象のGEODEスキャフォールド、judgeは会話記録を採点するモデルです。スコアとログはjudgeの出力です。
測定するもの
Petri監査は行動の次元を採点します。タスク完了率でも、製品品質の保証でもありません。