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.
Jedna zmiana polityki naraz; pomiar pozostaje stały.
Osobna pętla działająca poza harnessem. Od baseline wprowadza jedną typowaną zmianę polityki, a ten sam audyt Petri i ta sama bramka rozstrzygają między KEEP a przywróceniem.
Jedna zmiana → audyt
Przy ustalonym kontrakcie przebiegu zmienia się jedna dozwolona polityka, a GEODE jest audytowany tym samym aparatem. To nie działający produkt przepisujący sam siebie.
Zatwierdzenie operatorauruchomienie · rozstrzygnięcie: zatwierdzeniekontrakt przebiegu · modele · budżet
program.mdPrzebieg startuje dopiero po zatwierdzeniu wywołań na żywo i stałego budżetu. Bez zatwierdzenia kontrakt jest tylko przygotowywany i sprawdzany offline.
kontrakt przebiegu · modele · budżet
program.mduruchomienie · rozstrzygnięcie: kontrakt przebiegupętla o stałym budżecietrain.pyWersje seedów i rubryki, modele ról i źródła poświadczeń, ustawienia pomiaru, budżety iteracji, czasu i kosztu, polityka promocji i warunki zatrzymania są ustalane przed przebiegiem.
pętla o stałym budżecie
train.pyuruchomienie · rozstrzygnięcie: prośba o jednego kandydatamutator · jeden kandydatloop/mutateJedna poparta dowodami hipoteza zmienia jedną dozwoloną powierzchnię polityki.
7 powierzchni · bez hiperparametrów
loop/mutatedane: zmiana polityki · ID mutacjipolityka zapisana w plikustate/policiesZmieniać można tylko siedem powierzchni: prompt opakowujący, politykę narzędzi, wskazówki dekompozycji, refleksję, metadane katalogu umiejętności, kontrakt agenta (role, system_prompt, tools) oraz opisy i podpowiedzi narzędzi. Zmiany hiperparametrów są odrzucane zarówno przy parsowaniu, jak i przy stosowaniu. Zastosowanie polityki, ponowny pomiar i opcjonalny commit to osobne kroki, więc samo zastosowanie nie jest audytem.
pula seedów · rubryka ustalona
prepare.pyuruchomienie · rozstrzygnięcie: seedy · rubryka ustalonepodproces audytu · stały timeoutmeasure.pyprepare.py jest stałym punktem odniesienia dla puli seedów i rubryki; kandydaci go nie zmieniają. Zmiana modułu pomiarowego zmienia pomiar, a nie testowany system.
polityka zapisana w pliku
state/policiesdane: wybrana politykaOVERRIDE na politykę · STRICTmeasure.pymeasure.py odczytuje aktualnie wybrany plik polityki i przekazuje go do środowiska audytu.
OVERRIDE na politykę · STRICT
measure.pyuruchomienie · rozstrzygnięcie: ścieżki override dla każdej politykicore · loadery politykmeasure.py przekazuje do podprocesu audytu wrapper oraz ścieżki override i strict dla każdej polityki, a odpowiedni loader polityki w środowisku wykonawczym odczytuje każdą z nich. Wrapper (GEODE_WRAPPER_OVERRIDE → system_prompt) to jedna gałąź; dodatkowe klucze środowiska nie poszerzają siedmiu zmiennych powierzchni. Sam edytowany plik nie dowodzi, że kandydat dotarł do celu; potwierdza to diagnostyka w dowodach audytu.
podproces audytu · stały timeout
measure.pyuruchomienie · rozstrzygnięcie: audit subprocessAudyt PetriAudyt działa ze stałym timeoutem i budżetem, nigdy niezmienianymi w trakcie porównania. Brak wyjścia to luka diagnostyczna, a nie wynik zero.
Audyt Petridane: dialog audytucore · loadery polityk
Audytor rozmawia z GEODE przez scenariusz seeda, a sędzia ocenia transkrypt.
Werdykt → zachowanie · przywrócenie
W porównaniu z baseline o tym samym kontrakcie o KEEP decydują regresje krytyczne i reguła promocji; odrzucona zmiana wraca do zapisanej poprzedniej wartości.
Audyt Petridane: wyniki wymiarówregresja krytyczna · kary
fitness.pyWyniki są przekazywane razem z brakującymi wymiarami i liczebnością próbek. Niezmierzony wymiar nie jest odczytywany jako obserwacja.
baseline · provenance
ledger.pydane: baseline · provenanceregresja krytyczna · karyfitness.pyPorównanie używa tylko baseline z tym samym zapisanym kontraktem i epoką. Nowa gałąź Git nie izoluje stanu baseline.
regresja krytyczna · kary
fitness.pydane: fitness · przyczyny regresji_should_promote · KEEPgate.pyNajpierw sprawdzane są regresje wymiarów krytycznych i kary pomocnicze, potem test marginesu lub wymiaru docelowego. Sam dodatni skalar nigdy nie daje promocji.
_should_promote · KEEP
gate.pydane: KEEP · kolejny baselinebaseline · provenanceledger.pyZachowany kandydat staje się kolejnym baseline. Kandydat zachowany lokalnie to nie scalenie w repozytorium ani wydanie.
_reject_and_revert
gate.pyuruchomienie · rozstrzygnięcie: REJECT · przywrócenie poprzedniej wartościpolityka zapisana w plikustate/policiesDla kandydata utworzonego przez runner przywracana jest sekcja polityki zapisana pod jego ID mutacji, a nieudane przywrócenie zostaje oznaczone. Zmiany ręczne nie są przywracane automatycznie, a niepewne przywrócenie wstrzymuje kolejnego kandydata.
_should_promote · KEEP
gate.pyzapis · obserwacja: wynik · wiersz werdyktuwyniki · wiersze mutacjiledger.pyPomiar, werdykt i pochodzenie są zapisywane raz jako wiersze wyników; historycznych wierszy nigdy się nie nadpisuje.
Kontrole · powtórny pomiar
Przebieg z June 2026: ramię never bez zmian i baseline K=5 osobno zmierzyły szum audytu, a KEEP z pojedynczego audytu sprawdzono ponownie w powtórzeniach.
run-2606-broken-tool-useuruchomienie · rozstrzygnięcie: trzy ramionapętla o stałym budżecie
train.pyPrzebieg z June 3–4, 2026 oddzielił dryf od efektu mutacji za pomocą trzech ramion: never (bez zmian), random (losowa akceptacja) i gate (akceptacja według werdyktu). Celem był GPT-5.5; audytorem i sędzią był Claude Opus 4.8.
baseline gen-0 · średnia z 5 audytów
run-2606-broken-tool-usedane: baseline ze średniej K=5baseline · provenanceledger.pyBaseline gen-0 był średnią z pięciu audytów (Petri broken_tool_use, im niżej, tym lepiej, średnia 2.667).
ramię never · kontrola bez zmian
run-2606-broken-tool-useuruchomienie · rozstrzygnięcie: pomiar bez zmianypodproces audytu · stały timeoutmeasure.pyRamię never zdryfowało do średniej 3.38 bez żadnej zmiany polityki (10 audytów, im niżej, tym lepiej): bezpośredni dowód, że szum audytu przewyższał efekt mutacji.
--replicate K · ponowny pomiar
train.pyuruchomienie · rozstrzygnięcie: --replicate Kpodproces audytu · stały timeoutmeasure.pyTen sam kandydat jest mierzony jeszcze K razy w tych samych warunkach, aby odfiltrować szczęśliwy pojedynczy audyt.
replicate · ponowny pomiar pojedynczego KEEP
run-2606-broken-tool-useuruchomienie · rozstrzygnięcie: ponowny pomiar → cofnięcie_reject_and_revertgate.pyKandydat zachowany na podstawie pojedynczego audytu gate (1.6) uzyskał w powtórzeniach 3.0–3.8, gorzej niż baseline, więc przywrócono championa 2.667. Wniosek z przebiegu: brak wyraźnej poprawy.
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ą
- pętla · przebieg pomiarowy
- kontrakt · werdykt
- polityka · zapisy
- zmiana · audytowany cel · zapis przebiegu
Sterownik SIL w GEODE nazywa się autoresearch; jego układ prepare/train/program i stały budżet są wzorowane na autoresearch Karpathy’ego. Wagi modelu się nie zmieniają, a aparat i budżet pozostają stałe w trakcie porównania.
- Co może się zmienić
- Siedem powierzchni: prompt opakowujący, polityka narzędzi, wskazówki dekompozycji, refleksja, metadane katalogu umiejętności, kontrakt agenta oraz opisy i podpowiedzi narzędzi. Ewaluator, budżet, seedy i rubryka pozostają stałe w trakcie porównania.
- Zakres zapisu przebiegu
- Wartości run-2606 to średnie Petri broken_tool_use z tego przebiegu (im niżej, tym lepiej). Nie są dowodem skumulowanej poprawy SIL ani uogólnienia.