Geodi, oficiální pixelová postava GEODE
Zpět do sálu

GEODE

Autonomous Agent Harness

Od pozorování k další akci.

Lokální harness autonomního agenta, kterému lze svěřit výzkum, práci se soubory a plánované úlohy.

2026.02.21 — present

Návrh, posouzení, ověření: autor · implementace: Claude · revize: Codex

  • CLIZveřejněno · PyPI
  • Server MCPImplementováno

Návrh modelu skončit se stane dokončením jen po ověření.

U zakončení s předatelným výstupem prochází žádost modelu o zastavení přesto ověřením dokončení. Výsledkem je hotovo, pokračování v rámci rozpočtu, nebo čekání na revizi; limity provádění, zrušení a chyby končí v samostatném stavu zastavení.

Mapa dokončení · nakresleno podle cest kódu v připnutém commitu 9e2c041
Mapa dokončení GEODEJak se návrh modelu skončit stane dokončením. Jen zakončení s předatelným výstupem (natural, forced_text, actionable_partial) procházejí hookem PreVerify, strukturální kontrolou a zvoleným soudcem (výchozí LLM judge, Jev při zvolení) a hooky PostVerify a Stop. Úspěch se uloží jako completed; opravitelné selhání pokračuje ve stejném požadavku v rámci výchozího rozpočtu dvou pokusů. Nepoužitelné rozhodnutí, pokus změnit selhání v úspěch nebo vyčerpaný rozpočet kandidáta zadrží a relaci pozastaví. Zakončení zrušením, limitem a infrastrukturou a běhy control workflow se ukládají bez ověření.Volající IPC · CLIodpověď · stav relaceExterní revizorpending · bez kontaktuModel soudceLLM judge · Jev Choiceipc_server/poller.pycontrol workflow · přeskočení veřejného ověřeníloop/agent_loop.pyarun · tah modelu_arun_once · pokračování opravouloop/_guards.py · models.pyzakončení s výstupem · natural atd.zakončení selháním · limitem · zrušenímloop/_lifecycle.pyfinalize_and_return_asyncpolicy_action · čtení rozhodnutírozpočet pokračování · výchozí 2core/hooks/public.pyPreVerify · STRENGTHENPostVerify · ACCEPT · REVISE · ESCALATEStop · CONTINUEmemory · observabilitycheckpoint · stav relacetimeline · řádky rozhodnutí v ledgerucore/agent/verify.pystrukturální kontrola · empty_turnsémantické posouzení · LLM nebo Jevverification_error · při selhání zavíráProces běhového prostředí GEODEkonec jednoho tahu AgenticLoopsmyčka · kandidáti na zakončenífinalizace · rozhodnutí1 návrh zakončení · arun · tah modelu → zakončení s výstupem · natural atd.12kandidát na dokončení3 PreVerify · finalize_and_return_async → PreVerify · STRENGTHEN34verify_turn_async5žádost o posouzení6passed · rubric_misses7 Rozhodnutí PostVerify · policy_action · čtení rozhodnutí → PostVerify · ACCEPT · REVISE · ESCALATE78Stop · CONTINUE9completed · uloženo10odpověď1passed · rubric_misses2 Rozhodnutí PostVerify · policy_action · čtení rozhodnutí → PostVerify · ACCEPT · REVISE · ESCALATE23Stop · CONTINUE4oprava · pokus +11verification_error2 Rozhodnutí PostVerify · policy_action · čtení rozhodnutí → PostVerify · ACCEPT · REVISE · ESCALATE23ESCALATE · pending4rozhodnutí · řádky dokladů1 strážci · limity · arun · tah modelu → zakončení selháním · limitem · zrušením12zakončení selháním · zrušením3přeskočení veřejného ověření4jen uložení · bez ověření5odpověď

Ověření → dokončení

Jen zakončení s předatelným výstupem prochází PreVerify → posouzení → PostVerify → Stop. Ani návrh modelu skončit, ani pokyn hooku samy o sobě nejsou dokončením.

  1. arun · tah modeluloop/agent_loop.pyúdaje: návrh zakončenízakončení s výstupem · natural atd.loop/_guards.py · models.py

    Když model odpoví textem bez volání nástroje, tah se stane kandidátem na zakončení natural (forced_text v posledním povoleném kole). Návrh modelu skončit ještě není dokončení.

  2. zakončení s výstupem · natural atd.loop/_guards.py · models.pyúdaje: kandidát na dokončenífinalize_and_return_asyncloop/_lifecycle.py

    Jen natural, forced_text a actionable_partial jsou zakončení s předatelným výstupem a jen ta pokračují k veřejnému ověření.

  3. finalize_and_return_asyncloop/_lifecycle.pyspuštění · rozhodnutí: PreVerifyPreVerify · STRENGTHENcore/hooks/public.py

    Se STRENGTHEN může hook PreVerify jen přidávat požadavky a kódy chybějících položek. Rozhodnutí může zpřísnit, nikdy ho nepropustit.

  4. finalize_and_return_asyncloop/_lifecycle.pyspuštění · rozhodnutí: verify_turn_asyncstrukturální kontrola · empty_turncore/agent/verify.py

    Nejprve proběhne strukturální kontrola (prázdný tah, model_action_required); neopravitelné strukturální selhání přeskočí sémantické posouzení. Stará nastavení jako off nebo rule_based se převedou na llm_judge a rozhodnutí vypnout nemohou.

  5. sémantické posouzení · LLM nebo Jevcore/agent/verify.pyúdaje: žádost o posouzeníModel soudce

    Zvolený soudce (výchozí LLM judge, Jev Choice při zvolení) se volá jednou, bez nástrojů, nejvýše 120 sekund a nikdy přes zbývající časový rozpočet. Kandidát, který může nést osobní pozorování, se pomocnému soudci neposílá.

  6. sémantické posouzení · LLM nebo Jevcore/agent/verify.pyúdaje: passed · rubric_missespolicy_action · čtení rozhodnutíloop/_lifecycle.py

    Rozhodnutí nese úspěch nebo neúspěch, kódy chybějících položek, reflexi pro další pokus a informaci, zda má opakování smysl. Sémantický úspěch nikdy nepřekryje neúspěšnou strukturální kontrolu.

  7. policy_action · čtení rozhodnutíloop/_lifecycle.pyspuštění · rozhodnutí: Rozhodnutí PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.py

    Hook PostVerify rozhoduje mezi ACCEPT, REVISE a ESCALATE. ACCEPT kandidáta, který neprošel ověřením, se změní na escalate. Bez rozhodnutí platí výchozí chování běhového prostředí (úspěch → accept, opakovatelné → revise, jinak escalate).

  8. policy_action · čtení rozhodnutíloop/_lifecycle.pyspuštění · rozhodnutí: Stop · CONTINUEStop · CONTINUEcore/hooks/public.py

    Jen když nedochází k eskalaci, může pokyn CONTINUE hooku Stop požádat o pokračování opravou. Pokyn hooku je vstupem dalšího pokusu, nikoli oprávněním.

  9. policy_action · čtení rozhodnutíloop/_lifecycle.pyúdaje: completed · uloženocheckpoint · stav relacememory · observability

    Při úspěchu a accept se navazující pokusy sloučí, výsledek se uloží a relace se zaznamená jako completed.

  10. finalize_and_return_asyncloop/_lifecycle.pyúdaje: odpověďVolající IPC · CLI

    Vrací konečnou odpověď při dokončení; prázdnou odpověď s EXTERNAL_VERIFICATION_REQUIRED při čekání na revizi; důvod zastavení u zakončení bez ověření.

Oprava v rámci rozpočtu

Opravitelné selhání pokračuje ve stejném požadavku. Výchozí rozpočet jsou dva pokusy; po jeho vyčerpání kandidát čeká na revizi.

  1. sémantické posouzení · LLM nebo Jevcore/agent/verify.pyúdaje: passed · rubric_missespolicy_action · čtení rozhodnutíloop/_lifecycle.py

    Rozhodnutí nese úspěch nebo neúspěch, kódy chybějících položek, reflexi pro další pokus a informaci, zda má opakování smysl. Sémantický úspěch nikdy nepřekryje neúspěšnou strukturální kontrolu.

  2. policy_action · čtení rozhodnutíloop/_lifecycle.pyspuštění · rozhodnutí: Rozhodnutí PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.py

    Hook PostVerify rozhoduje mezi ACCEPT, REVISE a ESCALATE. ACCEPT kandidáta, který neprošel ověřením, se změní na escalate. Bez rozhodnutí platí výchozí chování běhového prostředí (úspěch → accept, opakovatelné → revise, jinak escalate).

  3. policy_action · čtení rozhodnutíloop/_lifecycle.pyspuštění · rozhodnutí: Stop · CONTINUEStop · CONTINUEcore/hooks/public.py

    Jen když nedochází k eskalaci, může pokyn CONTINUE hooku Stop požádat o pokračování opravou. Pokyn hooku je vstupem dalšího pokusu, nikoli oprávněním.

  4. rozpočet pokračování · výchozí 2loop/_lifecycle.pyspuštění · rozhodnutí: oprava · pokus +1_arun_once · pokračování opravouloop/agent_loop.py

    S pokynem k opravě, a jen dokud je číslo pokusu nižší než rozpočet (výchozí dva), pokračuje stejný požadavek. Při dosažení rozpočtu se stane escalate_budget_exhausted a čeká na revizi.

Čekání na revizi

Nepoužitelné rozhodnutí, pokus změnit selhání v úspěch nebo vyčerpaný rozpočet kandidáta zadrží a relaci pozastaví.

  1. verification_error · při selhání zavírácore/agent/verify.pyselhání · bez rozhodnutí: verification_errorpolicy_action · čtení rozhodnutíloop/_lifecycle.py

    Chybějící soudce, vypršení času nebo neplatná odpověď se stanou verification_error: ani úspěch, ani signál k opravě. Nepoužitelné rozhodnutí nikdy nezastupuje úspěch.

  2. policy_action · čtení rozhodnutíloop/_lifecycle.pyspuštění · rozhodnutí: Rozhodnutí PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.py

    Hook PostVerify rozhoduje mezi ACCEPT, REVISE a ESCALATE. ACCEPT kandidáta, který neprošel ověřením, se změní na escalate. Bez rozhodnutí platí výchozí chování běhového prostředí (úspěch → accept, opakovatelné → revise, jinak escalate).

  3. policy_action · čtení rozhodnutíloop/_lifecycle.pyspuštění · rozhodnutí: ESCALATE · pendingExterní revizor

    Kandidát se ponechá jako pending_text a v běžných odpovědích se zadrží, checkpoint se uloží a relace se pozastaví. Žádný externí revizor není kontaktován automaticky.

  4. policy_action · čtení rozhodnutíloop/_lifecycle.pyzáznam · pozorování: rozhodnutí · řádky dokladůtimeline · řádky rozhodnutí v ledgerumemory · observability

    Timeline dostane řádky rozhodnutí, dokladů a pending a evidence ledger řádek verification_policy. Jsou to záznamy typu best-effort, nikoli důkaz vnějšího efektu.

Zakončení bez ověření

Zakončení zrušením, limitem a infrastrukturou a běhy control workflow se ukládají bez veřejného ověření.

  1. arun · tah modeluloop/agent_loop.pyspuštění · rozhodnutí: strážci · limityzakončení selháním · limitem · zrušenímloop/_guards.py · models.py

    Strážci jako limity kol, času, nákladů a kontextu, zrušení a detekce opakovaných selhání ukončí tah jedním prvkem uzavřené množiny TerminationReason. Limit vypnutý v konfiguraci se ne vždy vynucuje.

  2. zakončení selháním · limitem · zrušenímloop/_guards.py · models.pyselhání · bez rozhodnutí: zakončení selháním · zrušenímfinalize_and_return_asyncloop/_lifecycle.py

    Zakončení zrušením, infrastrukturou a limitem nemají kandidáta k ověření, proto se ukládají bez veřejného ověření.

  3. control workflow · přeskočení veřejného ověřeníipc_server/poller.pyspuštění · rozhodnutí: přeskočení veřejného ověřenífinalize_and_return_asyncloop/_lifecycle.py

    Když volání IPC požádá o přeskočení veřejného ověření nebo je aktivní control workflow, veřejné ověření je vypnuté jen pro daný běh a poté se obnoví předchozí hodnota.

  4. finalize_and_return_asyncloop/_lifecycle.pyúdaje: jen uložení · bez ověřenícheckpoint · stav relacememory · observability

    Zakončení bez ověření přesto uloží svůj výsledek a checkpoint a vyšle události konce relace.

  5. finalize_and_return_asyncloop/_lifecycle.pyúdaje: odpověďVolající IPC · CLI

    Vrací konečnou odpověď při dokončení; prázdnou odpověď s EXTERNAL_VERIFICATION_REQUIRED při čekání na revizi; důvod zastavení u zakončení bez ověření.

Každé spojení se stejnou váhou. Výběr toku zvýrazní jen jeho cestu s očíslovanými kroky.

  • Plná čára · směr toku požadavků, kandidátů a výsledků
  • Přerušovaná čára · spuštění, rozhodnutí, autorizace, konfigurace
  • Dlouhá čerchovaná · záznamy a pozorování, oddělené od rozhodnutí
  • Krátká čárka · selhání nebo nepoužitelné rozhodnutí
  • Silná černá čára · zvolený tok; čísla udávají pořadí
  • Rámeček · hranice kódu nebo záznamu, cesta v záhlaví
  • Vnitřní štítek · komponenta v této hranici
  • Přerušovaný rámeček · mimo tuto hranici
  • smyčka · finalizace
  • zakončení · hooky · rozhodnutí
  • ukládání · záznamy
  • vstup IPC

Nakresleny jsou jen cesty volání z připnutého commitu 9e2c041. Úspěch u soudce je něco jiného než úspěch u externího verifikátoru benchmarku; dokončení je zde rozhodnutím uvnitř běhového prostředí.

Engine soudce
Výchozí je LLM judge; Jev Choice posuzuje jen tehdy, když je judgment_engine nastaven na jev. V obou případech nepoužitelný soudce dává verification_error, nikdy úspěch.
Co smějí hooky
PreVerify může rozhodnutí jen zpřísnit, PostVerify nemůže propustit kandidáta, který neuspěl, a Stop může požádat o pokračování jen tehdy, když nedochází k eskalaci.
Čekání na revizi
Čekání na revizi zaznamenává, že je potřeba rozhodnutí zvenčí. Nikoho neupozorňuje a neznamená, že byl výsledek schválen.