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.
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í.
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.
arun · tah modelu
loop/agent_loop.pyúdaje: návrh zakončenízakončení s výstupem · natural atd.loop/_guards.py · models.pyKdyž 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í.
zakončení s výstupem · natural atd.
loop/_guards.py · models.pyúdaje: kandidát na dokončenífinalize_and_return_asyncloop/_lifecycle.pyJen 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í.
finalize_and_return_async
loop/_lifecycle.pyspuštění · rozhodnutí: PreVerifyPreVerify · STRENGTHENcore/hooks/public.pySe 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.
finalize_and_return_async
loop/_lifecycle.pyspuštění · rozhodnutí: verify_turn_asyncstrukturální kontrola · empty_turncore/agent/verify.pyNejprve 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.
sémantické posouzení · LLM nebo Jev
core/agent/verify.pyúdaje: žádost o posouzeníModel soudceZvolený 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á.
sémantické posouzení · LLM nebo Jev
core/agent/verify.pyúdaje: passed · rubric_missespolicy_action · čtení rozhodnutíloop/_lifecycle.pyRozhodnutí 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.
policy_action · čtení rozhodnutí
loop/_lifecycle.pyspuštění · rozhodnutí: Rozhodnutí PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyHook 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).
policy_action · čtení rozhodnutí
loop/_lifecycle.pyspuštění · rozhodnutí: Stop · CONTINUEStop · CONTINUEcore/hooks/public.pyJen 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.
policy_action · čtení rozhodnutí
loop/_lifecycle.pyúdaje: completed · uloženocheckpoint · stav relacememory · observabilityPři úspěchu a accept se navazující pokusy sloučí, výsledek se uloží a relace se zaznamená jako completed.
finalize_and_return_async
loop/_lifecycle.pyúdaje: odpověďVolající IPC · CLIVrací 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.
sémantické posouzení · LLM nebo Jev
core/agent/verify.pyúdaje: passed · rubric_missespolicy_action · čtení rozhodnutíloop/_lifecycle.pyRozhodnutí 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.
policy_action · čtení rozhodnutí
loop/_lifecycle.pyspuštění · rozhodnutí: Rozhodnutí PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyHook 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).
policy_action · čtení rozhodnutí
loop/_lifecycle.pyspuštění · rozhodnutí: Stop · CONTINUEStop · CONTINUEcore/hooks/public.pyJen 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.
rozpočet pokračování · výchozí 2
loop/_lifecycle.pyspuštění · rozhodnutí: oprava · pokus +1_arun_once · pokračování opravouloop/agent_loop.pyS 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í.
verification_error · při selhání zavírá
core/agent/verify.pyselhání · bez rozhodnutí: verification_errorpolicy_action · čtení rozhodnutíloop/_lifecycle.pyChybě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.
policy_action · čtení rozhodnutí
loop/_lifecycle.pyspuštění · rozhodnutí: Rozhodnutí PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyHook 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).
policy_action · čtení rozhodnutí
loop/_lifecycle.pyspuštění · rozhodnutí: ESCALATE · pendingExterní revizorKandidá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.
policy_action · čtení rozhodnutí
loop/_lifecycle.pyzáznam · pozorování: rozhodnutí · řádky dokladůtimeline · řádky rozhodnutí v ledgerumemory · observabilityTimeline 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í.
arun · tah modelu
loop/agent_loop.pyspuštění · rozhodnutí: strážci · limityzakončení selháním · limitem · zrušenímloop/_guards.py · models.pyStráž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.
zakončení selháním · limitem · zrušením
loop/_guards.py · models.pyselhání · bez rozhodnutí: zakončení selháním · zrušenímfinalize_and_return_asyncloop/_lifecycle.pyZakončení zrušením, infrastrukturou a limitem nemají kandidáta k ověření, proto se ukládají bez veřejného ověření.
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.pyKdyž 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.
finalize_and_return_async
loop/_lifecycle.pyúdaje: jen uložení · bez ověřenícheckpoint · stav relacememory · observabilityZakončení bez ověření přesto uloží svůj výsledek a checkpoint a vyšle události konce relace.
finalize_and_return_async
loop/_lifecycle.pyúdaje: odpověďVolající IPC · CLIVrací 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.