GEODE
Autonomous Agent Harness
Från observation till nästa handling.
En lokal harness för autonoma agenter som kan anförtros research, filarbete och schemalagda uppgifter.
Modellens förslag om att stoppa blir slutförande först genom verifiering.
Vid ett levererbart stopp går en modell som ber om att stoppa ändå igenom verifiering av slutförande. Utfallet är klart, fortsätt inom budget eller väntar på granskning; exekveringsgränser, avbrott och fel slutar i ett separat stoppat tillstånd.
Verifiera → slutför
Bara ett levererbart stopp går genom PreVerify → bedömning → PostVerify → Stop. Varken modellens stoppförslag eller en hook-instruktion är i sig ett slutförande.
arun · modelltur
loop/agent_loop.pydata: stoppförslaglevererbart stopp · natural m.fl.loop/_guards.py · models.pyNär modellen svarar med text utan ett verktygsanrop blir turen en natural-stoppkandidat (forced_text i den sista tillåtna rundan). En modells stoppförslag är ännu inget slutförande.
levererbart stopp · natural m.fl.
loop/_guards.py · models.pydata: slutförandekandidatfinalize_and_return_asyncloop/_lifecycle.pyBara natural, forced_text och actionable_partial är levererbara stopp, och bara de går vidare till offentlig verifiering.
finalize_and_return_async
loop/_lifecycle.pyköra · avgöra: PreVerifyPreVerify · STRENGTHENcore/hooks/public.pyMed STRENGTHEN kan PreVerify-hooken bara lägga till krav och bristkoder. Den kan göra domen strängare, aldrig godkänna.
finalize_and_return_async
loop/_lifecycle.pyköra · avgöra: verify_turn_asyncstrukturell kontroll · empty_turncore/agent/verify.pyEn strukturell kontroll kommer först (tom tur, model_action_required); ett strukturellt fel som inte går att reparera hoppar över den semantiska bedömningen. Gamla inställningar som off eller rule_based tolkas som llm_judge och kan inte stänga av domen.
semantisk bedömning · LLM eller Jev
core/agent/verify.pydata: bedömningsbegäranBedömarmodellDen valda bedömaren (LLM judge som standard, Jev Choice när den väljs) anropas en gång, utan verktyg, i högst 120 sekunder och aldrig utöver den återstående tidsbudgeten. En kandidat som kan innehålla personliga observationer skickas inte till en hjälpbedömare.
semantisk bedömning · LLM eller Jev
core/agent/verify.pydata: passed · rubric_missespolicy_action · tolkning av domenloop/_lifecycle.pyDomen innehåller godkänt eller underkänt, bristkoder, en reflektion för nästa försök och om ett nytt försök är meningsfullt. Ett semantiskt godkännande täcker aldrig över en underkänd strukturell kontroll.
policy_action · tolkning av domen
loop/_lifecycle.pyköra · avgöra: PostVerify-beslutPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyPostVerify-hooken avgör ACCEPT, REVISE eller ESCALATE. En ACCEPT av en kandidat som underkändes i verifieringen blir escalate. Utan beslut gäller runtimens standard (godkänt → accept, kan göras om → revise, annars escalate).
policy_action · tolkning av domen
loop/_lifecycle.pyköra · avgöra: Stop · CONTINUEStop · CONTINUEcore/hooks/public.pyBara när det inte eskaleras kan Stop-hookens CONTINUE-instruktion begära fortsatt reparation. En hook-instruktion är indata till nästa försök, inte en auktoritet.
policy_action · tolkning av domen
loop/_lifecycle.pydata: completed · sparadcheckpoint · sessionstillståndmemory · observabilityVid godkänt och accept slås de fortsatta försöken samman, resultatet sparas och sessionen registreras som completed.
finalize_and_return_async
loop/_lifecycle.pydata: svarIPC · CLI-anropareReturnerar det slutliga svaret vid completed; ett tomt svar med EXTERNAL_VERIFICATION_REQUIRED vid väntan på granskning; stopporsaken vid ett stopp utan verifiering.
Reparation inom budget
Ett fel som går att reparera fortsätter samma förfrågan. Standardbudgeten är två försök; när den är förbrukad väntar kandidaten på granskning.
semantisk bedömning · LLM eller Jev
core/agent/verify.pydata: passed · rubric_missespolicy_action · tolkning av domenloop/_lifecycle.pyDomen innehåller godkänt eller underkänt, bristkoder, en reflektion för nästa försök och om ett nytt försök är meningsfullt. Ett semantiskt godkännande täcker aldrig över en underkänd strukturell kontroll.
policy_action · tolkning av domen
loop/_lifecycle.pyköra · avgöra: PostVerify-beslutPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyPostVerify-hooken avgör ACCEPT, REVISE eller ESCALATE. En ACCEPT av en kandidat som underkändes i verifieringen blir escalate. Utan beslut gäller runtimens standard (godkänt → accept, kan göras om → revise, annars escalate).
policy_action · tolkning av domen
loop/_lifecycle.pyköra · avgöra: Stop · CONTINUEStop · CONTINUEcore/hooks/public.pyBara när det inte eskaleras kan Stop-hookens CONTINUE-instruktion begära fortsatt reparation. En hook-instruktion är indata till nästa försök, inte en auktoritet.
fortsättningsbudget · standard 2
loop/_lifecycle.pyköra · avgöra: reparation · försök +1_arun_once · fortsatt reparationloop/agent_loop.pyMed en reparationsinstruktion, och bara så länge försöksnumret är under budgeten (två som standard), fortsätter samma förfrågan. Vid budgeten blir det escalate_budget_exhausted och väntar på granskning.
Väntar på granskning
En oanvändbar dom, ett försök att göra ett fel till godkänt eller en förbrukad budget håller inne kandidaten och pausar sessionen.
verification_error · stänger vid fel
core/agent/verify.pyfel · ingen dom: verification_errorpolicy_action · tolkning av domenloop/_lifecycle.pyEn saknad bedömare, en timeout eller ett ogiltigt svar blir verification_error: varken godkänt eller en reparationssignal. En oanvändbar dom ersätter aldrig ett lyckat utfall.
policy_action · tolkning av domen
loop/_lifecycle.pyköra · avgöra: PostVerify-beslutPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyPostVerify-hooken avgör ACCEPT, REVISE eller ESCALATE. En ACCEPT av en kandidat som underkändes i verifieringen blir escalate. Utan beslut gäller runtimens standard (godkänt → accept, kan göras om → revise, annars escalate).
policy_action · tolkning av domen
loop/_lifecycle.pyköra · avgöra: ESCALATE · pendingExtern granskareKandidaten behålls som pending_text och hålls inne från vanliga svar, checkpointen sparas och sessionen pausas. Ingen extern granskare kontaktas automatiskt.
policy_action · tolkning av domen
loop/_lifecycle.pylogga · observera: dom · beläggsradertimeline · beslutsrader i ledgermemory · observabilityTidslinjen får besluts-, beläggs- och pending-rader, och evidence ledger en verification_policy-rad. Det är best-effort-loggar, inte bevis för en yttre effekt.
Stopp utan verifiering
Stopp vid avbrott, gränser och infrastruktur samt körningar i control workflow sparas utan offentlig verifiering.
arun · modelltur
loop/agent_loop.pyköra · avgöra: guards · gränserstopp vid fel · gräns · avbrottloop/_guards.py · models.pyGuards som gränser för rundor, tid, kostnad och kontext, avbrott och upptäckt av upprepade fel avslutar turen med ett element ur den slutna TerminationReason-mängden. En gräns som är avstängd i konfigurationen upprätthålls inte alltid.
stopp vid fel · gräns · avbrott
loop/_guards.py · models.pyfel · ingen dom: stopp vid fel · avbrottfinalize_and_return_asyncloop/_lifecycle.pyStopp vid avbrott, infrastruktur och gränser har ingen kandidat att verifiera och sparas därför utan offentlig verifiering.
control workflow · hoppa över offentlig verifiering
ipc_server/poller.pyköra · avgöra: hoppa över offentlig verifieringfinalize_and_return_asyncloop/_lifecycle.pyNär ett IPC-anrop begär att offentlig verifiering hoppas över eller ett control workflow är aktivt, är offentlig verifiering avstängd bara för den körningen och det tidigare värdet återställs efteråt.
finalize_and_return_async
loop/_lifecycle.pydata: endast spara · ingen verifieringcheckpoint · sessionstillståndmemory · observabilityEtt stopp utan verifiering sparar ändå sitt resultat och sin checkpoint och skickar händelserna för sessionsslut.
finalize_and_return_async
loop/_lifecycle.pydata: svarIPC · CLI-anropareReturnerar det slutliga svaret vid completed; ett tomt svar med EXTERNAL_VERIFICATION_REQUIRED vid väntan på granskning; stopporsaken vid ett stopp utan verifiering.
Alla kopplingar med samma tjocklek. Välj ett flöde för att bara markera dess väg, med numrerade steg.
- Heldragen · riktningen som förfrågningar, kandidater och resultat flödar i
- Streckad · köra, avgöra, auktorisera, konfigurera
- Lång streck-punkt · loggar och observation, skilda från domen
- Kort streck · ett fel eller en oanvändbar dom
- Kraftig svart linje · det valda flödet; siffrorna anger ordningen
- Ruta · en kod- eller logggräns, sökvägen i rubriken
- Inre chip · en komponent inom gränsen
- Streckad ruta · utanför gränsen
- loop · finalisering
- stopp · hooks · dom
- sparande · loggar
- IPC-ingång
Bara anropsvägar i fastlåst commit 9e2c041 är ritade. En bedömares godkännande är skilt från en extern benchmark-verifierares framgång; slutförande är här ett beslut inuti runtimen.
- Bedömningsmotor
- Standard är LLM judge; Jev Choice bedömer bara när judgment_engine är satt till jev. I båda fallen ger en oanvändbar bedömare verification_error, aldrig framgång.
- Vad hooks får göra
- PreVerify kan bara göra domen strängare, PostVerify kan inte godkänna en underkänd kandidat, och Stop kan bara begära fortsättning när det inte eskaleras.
- Väntar på granskning
- Väntar på granskning registrerar att ett externt beslut behövs. Det meddelar ingen och betyder inte att resultatet har godkänts.