GEODE
Autonomous Agent Harness
Van observatie naar de volgende actie.
Een lokale harness voor autonome agents, waaraan onderzoek, bestandswerk en geplande taken kunnen worden overgedragen.
Het stopvoorstel van het model wordt pas door verificatie een voltooiing.
Bij een opleverbare stop doorloopt een model dat wil stoppen toch voltooiingsverificatie. De uitkomst is klaar, doorgaan binnen budget of wachten op review; uitvoeringslimieten, annulering en fouten eindigen in een aparte gestopte toestand.
Verificatie → voltooiing
Alleen een opleverbare stop doorloopt PreVerify → oordeel → PostVerify → Stop. Noch het stopvoorstel van het model, noch een hookinstructie is op zichzelf een voltooiing.
arun · modelbeurt
loop/agent_loop.pygegevens: stopvoorstelopleverbare stop · natural enz.loop/_guards.py · models.pyWanneer het model in tekst antwoordt zonder toolaanroep, wordt de beurt een natural-stopkandidaat (forced_text in de laatste toegestane ronde). Het stopvoorstel van een model is nog geen voltooiing.
opleverbare stop · natural enz.
loop/_guards.py · models.pygegevens: voltooiingskandidaatfinalize_and_return_asyncloop/_lifecycle.pyAlleen natural, forced_text en actionable_partial zijn opleverbare stops, en alleen die gaan door naar publieke verificatie.
finalize_and_return_async
loop/_lifecycle.pyuitvoeren · beslissen: PreVerifyPreVerify · STRENGTHENcore/hooks/public.pyMet STRENGTHEN kan de PreVerify-hook alleen eisen en miss-codes toevoegen. Hij kan het oordeel strenger maken, maar het nooit laten slagen.
finalize_and_return_async
loop/_lifecycle.pyuitvoeren · beslissen: verify_turn_asyncstructurele controle · empty_turncore/agent/verify.pyEerst komt een structurele controle (lege beurt, model_action_required); bij een onherstelbare structurele mislukking wordt het semantische oordeel overgeslagen. Oude instellingen zoals off of rule_based worden omgezet naar llm_judge en kunnen het oordeel niet uitschakelen.
semantisch oordeel · LLM of Jev
core/agent/verify.pygegevens: oordeelsverzoekBeoordelingsmodelDe gekozen beoordelaar (standaard LLM judge, Jev Choice indien gekozen) wordt één keer aangeroepen, zonder tools, voor hooguit 120 seconden en nooit voorbij het resterende tijdbudget. Een kandidaat die persoonlijke observaties kan bevatten, wordt niet naar een hulpbeoordelaar gestuurd.
semantisch oordeel · LLM of Jev
core/agent/verify.pygegevens: passed · rubric_missespolicy_action · het oordeel lezenloop/_lifecycle.pyHet oordeel bevat geslaagd of niet geslaagd, miss-codes, een reflection voor de volgende poging en of een nieuwe poging zinvol is. Een semantisch geslaagd oordeel dekt nooit een mislukte structurele controle af.
policy_action · het oordeel lezen
loop/_lifecycle.pyuitvoeren · beslissen: PostVerify-beslissingPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyDe PostVerify-hook beslist ACCEPT, REVISE of ESCALATE. Een ACCEPT van een kandidaat die niet door de verificatie kwam, wordt escalate. Zonder beslissing geldt de runtimestandaard (geslaagd → accept, herhaalbaar → revise, anders escalate).
policy_action · het oordeel lezen
loop/_lifecycle.pyuitvoeren · beslissen: Stop · CONTINUEStop · CONTINUEcore/hooks/public.pyAlleen als er niet wordt geëscaleerd, kan de CONTINUE-instructie van de Stop-hook om een voortzetting voor herstel vragen. Een hookinstructie is invoer voor de volgende poging, geen bevoegdheid.
policy_action · het oordeel lezen
loop/_lifecycle.pygegevens: completed · opgeslagencheckpoint · sessietoestandmemory · observabilityBij geslaagd en accept worden voortgezette pogingen samengevoegd, wordt het resultaat opgeslagen en wordt de sessie als completed vastgelegd.
finalize_and_return_async
loop/_lifecycle.pygegevens: antwoordIPC · CLI-aanroeperGeeft bij voltooiing het definitieve antwoord terug, bij wachten op review een leeg antwoord met EXTERNAL_VERIFICATION_REQUIRED en bij een stop zonder verificatie de stopreden.
Herstel binnen budget
Een herstelbare mislukking zet hetzelfde verzoek voort. Het standaardbudget is twee pogingen; is dat op, dan wacht de kandidaat op review.
semantisch oordeel · LLM of Jev
core/agent/verify.pygegevens: passed · rubric_missespolicy_action · het oordeel lezenloop/_lifecycle.pyHet oordeel bevat geslaagd of niet geslaagd, miss-codes, een reflection voor de volgende poging en of een nieuwe poging zinvol is. Een semantisch geslaagd oordeel dekt nooit een mislukte structurele controle af.
policy_action · het oordeel lezen
loop/_lifecycle.pyuitvoeren · beslissen: PostVerify-beslissingPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyDe PostVerify-hook beslist ACCEPT, REVISE of ESCALATE. Een ACCEPT van een kandidaat die niet door de verificatie kwam, wordt escalate. Zonder beslissing geldt de runtimestandaard (geslaagd → accept, herhaalbaar → revise, anders escalate).
policy_action · het oordeel lezen
loop/_lifecycle.pyuitvoeren · beslissen: Stop · CONTINUEStop · CONTINUEcore/hooks/public.pyAlleen als er niet wordt geëscaleerd, kan de CONTINUE-instructie van de Stop-hook om een voortzetting voor herstel vragen. Een hookinstructie is invoer voor de volgende poging, geen bevoegdheid.
continuation-budget · standaard 2
loop/_lifecycle.pyuitvoeren · beslissen: herstel · poging +1_arun_once · voortzetting voor herstelloop/agent_loop.pyAlleen met een herstelinstructie en zolang het pogingsnummer onder het budget ligt (standaard twee), gaat hetzelfde verzoek verder. Bij het budget wordt het escalate_budget_exhausted en wacht het op review.
Wachten op review
Een onbruikbaar oordeel, een poging om een mislukking in een geslaagde uitkomst om te zetten of een uitgeput budget houdt de kandidaat achter en pauzeert de sessie.
verification_error · faalt gesloten
core/agent/verify.pymislukking · geen oordeel: verification_errorpolicy_action · het oordeel lezenloop/_lifecycle.pyEen ontbrekende beoordelaar, een time-out of een ongeldig antwoord wordt verification_error: geen geslaagd oordeel en geen herstelsignaal. Een onbruikbaar oordeel vervangt nooit succes.
policy_action · het oordeel lezen
loop/_lifecycle.pyuitvoeren · beslissen: PostVerify-beslissingPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyDe PostVerify-hook beslist ACCEPT, REVISE of ESCALATE. Een ACCEPT van een kandidaat die niet door de verificatie kwam, wordt escalate. Zonder beslissing geldt de runtimestandaard (geslaagd → accept, herhaalbaar → revise, anders escalate).
policy_action · het oordeel lezen
loop/_lifecycle.pyuitvoeren · beslissen: ESCALATE · pendingExterne reviewerDe kandidaat blijft bewaard als pending_text en wordt achtergehouden in gewone antwoorden, het checkpoint wordt opgeslagen en de sessie gepauzeerd. Er wordt niet automatisch contact opgenomen met een externe reviewer.
policy_action · het oordeel lezen
loop/_lifecycle.pyvastleggen · observeren: oordeel · bewijsrijentimeline · ledger-beslissingsrijenmemory · observabilityDe timeline krijgt beslissings-, bewijs- en pending-rijen, de evidence ledger een verification_policy-rij. Dit zijn best-effort vastleggingen, geen bewijs van een extern effect.
Stops zonder verificatie
Stops door annulering, limiet en infrastructuur en runs van control workflows worden zonder publieke verificatie opgeslagen.
arun · modelbeurt
loop/agent_loop.pyuitvoeren · beslissen: guards · limietenstop door mislukking · limiet · annuleringloop/_guards.py · models.pyGuards zoals limieten voor rondes, tijd, kosten en context, annulering en detectie van herhaalde mislukkingen beëindigen de beurt met één element uit de gesloten verzameling TerminationReason. Een limiet die in de configuratie is uitgeschakeld, wordt niet altijd afgedwongen.
stop door mislukking · limiet · annulering
loop/_guards.py · models.pymislukking · geen oordeel: stop door mislukking · annuleringfinalize_and_return_asyncloop/_lifecycle.pyStops door annulering, infrastructuur en limieten hebben geen kandidaat om te verifiëren en worden dus zonder publieke verificatie opgeslagen.
control workflow · publieke verificatie overslaan
ipc_server/poller.pyuitvoeren · beslissen: publieke verificatie overslaanfinalize_and_return_asyncloop/_lifecycle.pyWanneer een IPC-aanroep vraagt om publieke verificatie over te slaan of een control workflow actief is, staat publieke verificatie alleen voor die run uit en wordt daarna de vorige waarde hersteld.
finalize_and_return_async
loop/_lifecycle.pygegevens: alleen opslaan · geen verificatiecheckpoint · sessietoestandmemory · observabilityOok een stop zonder verificatie slaat zijn resultaat en checkpoint op en geeft de events voor het sessie-einde uit.
finalize_and_return_async
loop/_lifecycle.pygegevens: antwoordIPC · CLI-aanroeperGeeft bij voltooiing het definitieve antwoord terug, bij wachten op review een leeg antwoord met EXTERNAL_VERIFICATION_REQUIRED en bij een stop zonder verificatie de stopreden.
Alle verbindingen even zwaar. Kies een stroom om alleen het pad daarvan te markeren, met genummerde stappen.
- Doorgetrokken · de richting waarin verzoeken, kandidaten en resultaten stromen
- Gestreept · uitvoeren, beslissen, autoriseren, configureren
- Lange streep-punt · vastleggingen en observatie, los van het oordeel
- Kort gestreept · een mislukking of een onbruikbaar oordeel
- Dikke zwarte lijn · de gekozen stroom; nummers geven de volgorde
- Vak · een code- of vastleggingsgrens, met het pad in de kop
- Binnenchip · een component in die grens
- Gestreept vak · buiten die grens
- lus · finalization
- stops · hooks · oordeel
- opslaan · vastleggingen
- IPC-ingang
Alleen aanroeppaden in vastgezette commit 9e2c041 zijn getekend. Een geslaagd oordeel van het beoordelingsmodel staat los van het succes van een externe benchmark-verifier; voltooiing is hier een beslissing binnen de runtime.
- Oordeelsengine
- Standaard is de LLM judge; Jev Choice oordeelt alleen als judgment_engine op jev staat. Hoe dan ook levert een onbruikbare beoordelaar verification_error op, nooit succes.
- Wat hooks mogen
- PreVerify kan het oordeel alleen strenger maken, PostVerify kan een mislukte kandidaat niet laten slagen, en Stop kan alleen om een voortzetting vragen als er niet wordt geëscaleerd.
- Wachten op review
- Wachten op review legt vast dat een beslissing van buitenaf nodig is. Het stuurt niemand een melding en betekent niet dat het resultaat is goedgekeurd.