Geodi, oficjalna pikselowa postać GEODE
Powrót do sali

GEODE

Autonomous Agent Harness

Od obserwacji do następnego działania.

Lokalny harness autonomicznego agenta, któremu można powierzyć badania, pracę na plikach i zadania zaplanowane.

2026.02.21 — present

Projektowanie, ocena, weryfikacja: autor · implementacja: Claude · przegląd: Codex

  • CLIOpublikowane · PyPI
  • Serwer MCPZaimplementowane

Scenariusze audytowe powstają w fazach o ustalonej kolejności.

Kolejność faz należy do hosta, a agenci w rolach w każdej fazie dzielą się pracą. Powstała pula seedów i wybrana rubryka stają się wejściem behawioralnego audytu Petri.

Mapa seedów · narysowana na podstawie ścieżek evals w przypiętym commicie 9e2c041
Generowanie scenariuszy audytowych GEODE i audyt PetriJak powstają i są audytowane scenariusze audytowe (seedy). Orkiestrator seed_generation zarządza kolejnością faz, a agenci w rolach tworzą szkice, przeglądają je i ulepszają; wynik jest eksportowany jako katalog survivors i pliki meta-review. Audyt Petri przyjmuje wybór seedów i przydziela trzy osobne role modeli: audytor odgrywa scenariusz seeda, celem jest całe rusztowanie GEODE, a sędzia ocenia transkrypt według wymiarów i zapisuje wynik w logu Inspect. Pomiar SIL odczytuje ten wynik, a zachowany pomiar staje się dowodem baseline dla następnej generacji.Model audytoraodgrywa scenariusz seedaModel bazowy celumodel opakowany przez GEODEModel sędziującyocenia cały transkryptLog Inspect .evalarchiwum · podsumowaniePomiar SIL · measure.pyodczytywany w rozdziale o przeszukiwaniu politykbaseline snapshotśrednie wymiarów · dowodyhandoff pointerlatest_pointer.json · priorsseed_generation/orchestrator.pykolejność faz · PipelineStatecheckpoint · resumeagents/ · szkicSupervisor · strategia przebieguliterature_review · domyślnie wyłączonyGenerator · seedy kandydująceagents/ · przeglądProximity · deduplikacjaCritic · przeglądPilot · opcjonalny · poza smokeRanker · Eloagents/ · ulepszanieEvolver · ulepszanieMeta-reviewer · kolejne priorsrun_dir/survivors/ · kopie .md kandydatówsurvivors.json · Elo · pilotmeta_review.json · state.jsonpetri/seedsdołączone seedy · *.mdpetri/runner.pygeode audit · /audit · narzędzieszacunek kosztu · domyślnie dry-runpetri/geode_target.pyGEODE jako cel · AgenticLooppetri/judge_dimsjudge_dimensions · YAMLpliki stanu poza przebiegiemevals/seed_generationtworzenie scenariuszyevals/petriprzebieg audytu1uruchamianie faz po kolei2dowody baseline3 poprzednie meta-review · latest_pointer.json · priors → agents/ · szkic34 seedy kandydujące · agents/ · szkic → agents/ · przegląd45survivors · Elo6 kolejna iteracja · od Critic · Meta-reviewer · kolejne priors → Critic · przegląd67 eksport survivors · agents/ · ulepszanie → run_dir/78wskaźnik latest1--seed-select2dołączone seedy3 role modeli · trzy miejsca · geode audit · /audit · narzędzie → Model audytora34dialog scenariusza seeda5 wywołania modelu · GEODE jako cel · AgenticLoop → Model bazowy celu56transkrypt7 judge_dimensions · judge_dimensions · YAML → Model sędziujący78wyniki wymiarów1wyniki wymiarów2 pomiar · Log Inspect .eval → Pomiar SIL · measure.py23aktualizacja baseline4dowody baseline

Tworzenie scenariuszy

Orkiestrator zarządza kolejnością faz, agenci w rolach tworzą i filtrują kandydatów, a wynik jest eksportowany przez kontrakt plikowy.

  1. kolejność faz · PipelineStateseed_generation/orchestrator.pyuruchomienie · rozstrzygnięcie: uruchamianie faz po koleiagents/ · szkic

    Orkiestrator zarządza kolejnością faz i scalaniem stanu; pracę wykonuje agent w roli danej fazy. W obrębie fazy praca może się rozgałęziać przez SubAgentManager, a subagenci nie działają rekurencyjnie (głębokość 1).

  2. średnie wymiarów · dowodybaseline snapshotdane: dowody baselineagents/ · szkic

    Generator, Critic i Evolver odczytują średnie, błędy standardowe i dowody wybranego baseline dla każdego wymiaru. Pierwsza generacja nie ma baseline i używa domyślnych promptów.

  3. latest_pointer.json · priorshandoff pointerdane: poprzednie meta-reviewagents/ · szkic

    Meta-review z poprzedniego przebiegu zostawia priors dla kolejnej generacji i słabo pokryte wymiary, które ta generacja bierze pod uwagę.

  4. agents/ · szkicdane: seedy kandydująceagents/ · przegląd

    Kandydaci z Generator przechodzą kolejno deduplikację Proximity, przegląd Critic, Pilot (opcjonalny; pomijany w przebiegach smoke) i ranking Elo w Ranker.

  5. agents/ · przegląddane: survivors · Eloagents/ · ulepszanie

    Evolver ulepsza najwyżej sklasyfikowanych kandydatów, a Meta-reviewer podsumowuje przebieg w priors dla kolejnej generacji.

  6. Meta-reviewer · kolejne priorsagents/ · ulepszanieuruchomienie · rozstrzygnięcie: kolejna iteracja · od CriticCritic · przeglądagents/ · przegląd

    Przy ustawionym max_iterations po Meta-reviewer ulepszeni kandydaci przechodzą ponownie przez Critic → Pilot → Ranker → Evolver → Meta-reviewer. Supervisor, Generator i Proximity nie są uruchamiane ponownie; domyślnie iteracji jest zero.

  7. agents/ · ulepszaniedane: eksport survivorsrun_dir/

    Treści ocalałych kandydatów są kopiowane jako pliki do survivors/, wyniki Elo i pilota trafiają do survivors.json, a meta-review i stan są zapisywane osobno.

  8. meta_review.json · state.jsonrun_dir/dane: wskaźnik latestlatest_pointer.json · priorshandoff pointer

    Jeden plik latest_pointer.json zapisuje, gdzie są seed_pool i meta_review tego przebiegu. Wiążące są wyniki poszczególnych przebiegów; wskaźnik to pomoc typu best-effort dla następnego przebiegu, a nieudany zapis jest tylko logowany. Nie każdy przebieg ma oba pola.

Przebieg audytu

Audytor odgrywa seed (instrukcję scenariusza), celem jest rusztowanie GEODE, a sędzia ocenia transkrypt. Trzy role to osobne miejsca dla modeli.

  1. survivors/ · kopie .md kandydatówrun_dir/dane: --seed-selectgeode audit · /audit · narzędziepetri/runner.py

    Audyt przyjmuje wybór seedów (katalog survivors, dołączone seedy, identyfikatory lub tagi) i przekazuje go do zadania inspect_petri/audit w Inspect. Generowanie seedów samo nie uruchamia audytu.

  2. dołączone seedy · *.mdpetri/seedsdane: dołączone seedygeode audit · /audit · narzędziepetri/runner.py

    Dołączone do repozytorium seedy można wybrać bez zmian.

  3. geode audit · /audit · narzędziepetri/runner.pyuruchomienie · rozstrzygnięcie: role modeli · trzy miejscaModel audytora

    Modele audytora, celu i sędziego ustawia się osobno. Domyślnie jest to przebieg na sucho; prawdziwe wywołania następują dopiero po potwierdzeniu szacunku kosztu. Gdy wszystkie trzy role mają tego samego dostawcę, dołączany jest znacznik stronniczości tego samego dostawcy.

  4. Model audytoradane: dialog scenariusza seedaGEODE jako cel · AgenticLooppetri/geode_target.py

    Seed to instrukcja scenariusza dla audytora. Audytor prowadzi rozmowę i może tworzyć narzędzia oraz wyniki narzędzi tylko przy włączonym target_tools.

  5. GEODE jako cel · AgenticLooppetri/geode_target.pydane: wywołania modeluModel bazowy celu

    Cała pętla AgenticLoop GEODE (narzędzia, hooki, pamięć) jest opakowana jako jedno API modelu, więc audytowanym celem jest rusztowanie GEODE, a nie sam model bazowy.

  6. GEODE jako cel · AgenticLooppetri/geode_target.pydane: transkryptModel sędziujący

    Sędzia czyta raz pełny transkrypt każdej próbki i ocenia go według wymiarów.

  7. judge_dimensions · YAMLpetri/judge_dimsuruchomienie · rozstrzygnięcie: judge_dimensionsModel sędziujący

    Wybrany plik YAML z wymiarami sędziego określa wymiary oceny. To audyt behawioralny, pomiar inny niż ukończenie zadania.

  8. Model sędziującydane: wyniki wymiarówLog Inspect .eval

    Log Inspect .eval i podsumowanie są archiwizowane. Nieudana archiwizacja jest odnotowywana i nie blokuje wyniku audytu.

Pomiar → kolejna generacja

SIL używa wyników audytu do swojego werdyktu, a zachowany pomiar staje się dowodem baseline dla kolejnego generowania seedów. Nie oznacza to, że to połączenie działało automatycznie w każdej kampanii.

  1. Model sędziującydane: wyniki wymiarówLog Inspect .eval

    Log Inspect .eval i podsumowanie są archiwizowane. Nieudana archiwizacja jest odnotowywana i nie blokuje wyniku audytu.

  2. Log Inspect .evalzapis · obserwacja: pomiarPomiar SIL · measure.py

    measure.py w SIL uruchamia podproces audytu i z jego wyniku oblicza fitness.

  3. Pomiar SIL · measure.pydane: aktualizacja baselineśrednie wymiarów · dowodybaseline snapshot

    Ledger SIL zapisuje zachowany pomiar jako baseline. Generowanie seedów odczytuje te dowody, gdy baseline zostanie wybrany (automatycznie lub jawnie).

  4. średnie wymiarów · dowodybaseline snapshotdane: dowody baselineagents/ · szkic

    Generator, Critic i Evolver odczytują średnie, błędy standardowe i dowody wybranego baseline dla każdego wymiaru. Pierwsza generacja nie ma baseline i używa domyślnych promptów.

Każde połączenie z tą samą wagą. Wybór przepływu wyróżnia tylko jego ścieżkę z ponumerowanymi krokami.

  • Linia ciągła · kierunek przepływu żądań, kandydatów i wyników
  • Linia przerywana · uruchamianie, rozstrzyganie, autoryzacja, konfiguracja
  • Długa kreska z kropką · zapisy i obserwacja, oddzielnie od werdyktu
  • Gruba czarna linia · wybrany przepływ; liczby podają kolejność
  • Ramka · granica kodu lub zapisu, ścieżka w nagłówku
  • Wewnętrzny element · komponent w tej granicy
  • Przerywana ramka · poza tą granicą
  • orkiestrator · wejście audytu
  • cel audytu · wymiary oceny
  • wyniki · pliki stanu
  • agenci w rolach · dołączone seedy

Orkiestrator ustala kolejność pierwszego przejścia i kolejność powtórzeń. Konfiguracja, zarejestrowane role i punkt wznowienia mogą pominąć niektóre fazy, a nie każda kampania przeszła wszystkie fazy. Położenie plików stanu zależy od środowiska, dlatego ścieżek nie pokazano.

Trzy role
Seed to instrukcja scenariusza, napisana przez człowieka lub wygenerowana; audytor to model, który ją odgrywa, cel to audytowane rusztowanie GEODE, a sędzia to model, który ocenia transkrypt. Wyniki i logi są wytworem sędziego.
Co jest mierzone
Audyt Petri ocenia wymiary behawioralne. Nie jest wskaźnikiem ukończenia zadań ani gwarancją jakości produktu.