Geodi, het officiële pixelpersonage van GEODE
Terug naar de zaal

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.

2026.02.21 — present

Ontwerp, oordeel, verificatie: Author · implementatie: Claude · review: Codex

  • CLIGepubliceerd · PyPI
  • MCP-serverGeïmplementeerd

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.

Voltooiingskaart · getekend naar de codepaden in vastgezette commit 9e2c041
GEODE-voltooiingskaartHoe het stopvoorstel van een model een voltooiing wordt. Alleen opleverbare stops (natural, forced_text, actionable_partial) gaan door de PreVerify-hook, een structurele controle en de gekozen beoordelaar (standaard LLM judge, Jev indien gekozen), en de hooks PostVerify en Stop. Een geslaagde uitkomst wordt opgeslagen als completed; een herstelbare mislukking zet hetzelfde verzoek voort binnen een standaardbudget van twee pogingen. 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. Stops door annulering, limiet en infrastructuur en runs van control workflows worden zonder verificatie opgeslagen.IPC · CLI-aanroeperantwoord · sessietoestandExterne reviewerpending · niet gecontacteerdBeoordelingsmodelLLM judge · Jev Choiceipc_server/poller.pycontrol workflow · publieke verificatie overslaanloop/agent_loop.pyarun · modelbeurt_arun_once · voortzetting voor herstelloop/_guards.py · models.pyopleverbare stop · natural enz.stop door mislukking · limiet · annuleringloop/_lifecycle.pyfinalize_and_return_asyncpolicy_action · het oordeel lezencontinuation-budget · standaard 2core/hooks/public.pyPreVerify · STRENGTHENPostVerify · ACCEPT · REVISE · ESCALATEStop · CONTINUEmemory · observabilitycheckpoint · sessietoestandtimeline · ledger-beslissingsrijencore/agent/verify.pystructurele controle · empty_turnsemantisch oordeel · LLM of Jevverification_error · faalt geslotenGEODE-runtimeproceseinde van één AgenticLoop-beurtlus · stopkandidatenfinalization · oordeel1 stopvoorstel · arun · modelbeurt → opleverbare stop · natural enz.12voltooiingskandidaat3 PreVerify · finalize_and_return_async → PreVerify · STRENGTHEN34verify_turn_async5oordeelsverzoek6passed · rubric_misses7 PostVerify-beslissing · policy_action · het oordeel lezen → PostVerify · ACCEPT · REVISE · ESCALATE78Stop · CONTINUE9completed · opgeslagen10antwoord1passed · rubric_misses2 PostVerify-beslissing · policy_action · het oordeel lezen → PostVerify · ACCEPT · REVISE · ESCALATE23Stop · CONTINUE4herstel · poging +11verification_error2 PostVerify-beslissing · policy_action · het oordeel lezen → PostVerify · ACCEPT · REVISE · ESCALATE23ESCALATE · pending4oordeel · bewijsrijen1 guards · limieten · arun · modelbeurt → stop door mislukking · limiet · annulering12stop door mislukking · annulering3publieke verificatie overslaan4alleen opslaan · geen verificatie5antwoord

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.

  1. arun · modelbeurtloop/agent_loop.pygegevens: stopvoorstelopleverbare stop · natural enz.loop/_guards.py · models.py

    Wanneer 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.

  2. opleverbare stop · natural enz.loop/_guards.py · models.pygegevens: voltooiingskandidaatfinalize_and_return_asyncloop/_lifecycle.py

    Alleen natural, forced_text en actionable_partial zijn opleverbare stops, en alleen die gaan door naar publieke verificatie.

  3. finalize_and_return_asyncloop/_lifecycle.pyuitvoeren · beslissen: PreVerifyPreVerify · STRENGTHENcore/hooks/public.py

    Met STRENGTHEN kan de PreVerify-hook alleen eisen en miss-codes toevoegen. Hij kan het oordeel strenger maken, maar het nooit laten slagen.

  4. finalize_and_return_asyncloop/_lifecycle.pyuitvoeren · beslissen: verify_turn_asyncstructurele controle · empty_turncore/agent/verify.py

    Eerst 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.

  5. semantisch oordeel · LLM of Jevcore/agent/verify.pygegevens: oordeelsverzoekBeoordelingsmodel

    De 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.

  6. semantisch oordeel · LLM of Jevcore/agent/verify.pygegevens: passed · rubric_missespolicy_action · het oordeel lezenloop/_lifecycle.py

    Het 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.

  7. policy_action · het oordeel lezenloop/_lifecycle.pyuitvoeren · beslissen: PostVerify-beslissingPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.py

    De 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).

  8. policy_action · het oordeel lezenloop/_lifecycle.pyuitvoeren · beslissen: Stop · CONTINUEStop · CONTINUEcore/hooks/public.py

    Alleen 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.

  9. policy_action · het oordeel lezenloop/_lifecycle.pygegevens: completed · opgeslagencheckpoint · sessietoestandmemory · observability

    Bij geslaagd en accept worden voortgezette pogingen samengevoegd, wordt het resultaat opgeslagen en wordt de sessie als completed vastgelegd.

  10. finalize_and_return_asyncloop/_lifecycle.pygegevens: antwoordIPC · CLI-aanroeper

    Geeft 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.

  1. semantisch oordeel · LLM of Jevcore/agent/verify.pygegevens: passed · rubric_missespolicy_action · het oordeel lezenloop/_lifecycle.py

    Het 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.

  2. policy_action · het oordeel lezenloop/_lifecycle.pyuitvoeren · beslissen: PostVerify-beslissingPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.py

    De 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).

  3. policy_action · het oordeel lezenloop/_lifecycle.pyuitvoeren · beslissen: Stop · CONTINUEStop · CONTINUEcore/hooks/public.py

    Alleen 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.

  4. continuation-budget · standaard 2loop/_lifecycle.pyuitvoeren · beslissen: herstel · poging +1_arun_once · voortzetting voor herstelloop/agent_loop.py

    Alleen 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.

  1. verification_error · faalt geslotencore/agent/verify.pymislukking · geen oordeel: verification_errorpolicy_action · het oordeel lezenloop/_lifecycle.py

    Een ontbrekende beoordelaar, een time-out of een ongeldig antwoord wordt verification_error: geen geslaagd oordeel en geen herstelsignaal. Een onbruikbaar oordeel vervangt nooit succes.

  2. policy_action · het oordeel lezenloop/_lifecycle.pyuitvoeren · beslissen: PostVerify-beslissingPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.py

    De 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).

  3. policy_action · het oordeel lezenloop/_lifecycle.pyuitvoeren · beslissen: ESCALATE · pendingExterne reviewer

    De 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.

  4. policy_action · het oordeel lezenloop/_lifecycle.pyvastleggen · observeren: oordeel · bewijsrijentimeline · ledger-beslissingsrijenmemory · observability

    De 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.

  1. arun · modelbeurtloop/agent_loop.pyuitvoeren · beslissen: guards · limietenstop door mislukking · limiet · annuleringloop/_guards.py · models.py

    Guards 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.

  2. stop door mislukking · limiet · annuleringloop/_guards.py · models.pymislukking · geen oordeel: stop door mislukking · annuleringfinalize_and_return_asyncloop/_lifecycle.py

    Stops door annulering, infrastructuur en limieten hebben geen kandidaat om te verifiëren en worden dus zonder publieke verificatie opgeslagen.

  3. control workflow · publieke verificatie overslaanipc_server/poller.pyuitvoeren · beslissen: publieke verificatie overslaanfinalize_and_return_asyncloop/_lifecycle.py

    Wanneer 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.

  4. finalize_and_return_asyncloop/_lifecycle.pygegevens: alleen opslaan · geen verificatiecheckpoint · sessietoestandmemory · observability

    Ook een stop zonder verificatie slaat zijn resultaat en checkpoint op en geeft de events voor het sessie-einde uit.

  5. finalize_and_return_asyncloop/_lifecycle.pygegevens: antwoordIPC · CLI-aanroeper

    Geeft 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.