GEODE
Autonomous Agent Harness
Od opažanja do sljedeće radnje.
Lokalni okvir za autonomnog agenta kojemu se mogu prepustiti istraživanje, rad s datotekama i zakazani zadaci.
Prijedlog modela da stane postaje završetak samo kroz verifikaciju.
Kod zaustavljanja s isporučivim rezultatom model koji traži da stane i dalje prolazi verifikaciju završetka. Ishod je gotovo, nastavak unutar proračuna ili čekanje na recenziju; ograničenja izvođenja, otkazivanje i pogreške završavaju u zasebnom stanju zaustavljanja.
Verifikacija → završetak
Samo zaustavljanje s isporučivim rezultatom prolazi PreVerify → prosudba → PostVerify → Stop. Ni prijedlog modela da stane ni uputa hooka sami po sebi nisu završetak.
arun · potez modela
loop/agent_loop.pypodaci: prijedlog zaustavljanjaisporučivo zaustavljanje · natural i dr.loop/_guards.py · models.pyKad model odgovori tekstom bez poziva alata, potez postaje kandidat za prirodno zaustavljanje natural (forced_text u posljednjoj dopuštenoj rundi). Prijedlog modela da stane još nije završetak.
isporučivo zaustavljanje · natural i dr.
loop/_guards.py · models.pypodaci: kandidat za završetakfinalize_and_return_asyncloop/_lifecycle.pySamo natural, forced_text i actionable_partial isporučiva su zaustavljanja i samo ona idu dalje na javnu verifikaciju.
finalize_and_return_async
loop/_lifecycle.pypokretanje · odluka: PreVerifyPreVerify · STRENGTHENcore/hooks/public.pySa STRENGTHEN hook PreVerify može samo dodavati zahtjeve i kodove propusta. Presudu može učiniti strožom, ali nikad je ne može propustiti.
finalize_and_return_async
loop/_lifecycle.pypokretanje · odluka: verify_turn_asyncstrukturna provjera · empty_turncore/agent/verify.pyNajprije dolazi strukturna provjera (prazan potez, model_action_required); nepopravljiv strukturni neuspjeh preskače semantičku prosudbu. Stare postavke poput off ili rule_based svode se na llm_judge i ne mogu isključiti presudu.
semantička prosudba · LLM ili Jev
core/agent/verify.pypodaci: zahtjev za prosudbuModel sudacOdabrani sudac (zadano LLM judge, Jev Choice ako je odabran) poziva se jednom, bez alata, najviše 120 sekundi i nikad dulje od preostalog vremenskog proračuna. Kandidat koji bi mogao sadržavati osobna opažanja ne šalje se pomoćnom sucu.
semantička prosudba · LLM ili Jev
core/agent/verify.pypodaci: passed · rubric_missespolicy_action · čitanje presudeloop/_lifecycle.pyPresuda sadrži prolaz ili pad, kodove propusta, refleksiju za sljedeći pokušaj i podatak je li ponovni pokušaj koristan. Semantički prolaz nikad ne prekriva neuspjelu strukturnu provjeru.
policy_action · čitanje presude
loop/_lifecycle.pypokretanje · odluka: Odluka PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyHook PostVerify odlučuje ACCEPT, REVISE ili ESCALATE. ACCEPT za kandidata koji nije prošao verifikaciju postaje escalate. Bez odluke vrijedi zadana vrijednost izvršnog okruženja (pass → accept, retryable → revise, inače escalate).
policy_action · čitanje presude
loop/_lifecycle.pypokretanje · odluka: Stop · CONTINUEStop · CONTINUEcore/hooks/public.pySamo kad nema eskalacije, uputa CONTINUE iz hooka Stop može zatražiti nastavak s popravkom. Uputa hooka ulaz je za sljedeći pokušaj, a ne ovlast.
policy_action · čitanje presude
loop/_lifecycle.pypodaci: completed · spremljenokontrolna točka · stanje sesijememory · observabilityPri prolazu i accept nastavljeni se pokušaji spajaju, rezultat se sprema, a sesija se bilježi kao completed.
finalize_and_return_async
loop/_lifecycle.pypodaci: odgovorIPC · pozivatelj CLI-jaVraća konačni odgovor kad je završeno; prazan odgovor s EXTERNAL_VERIFICATION_REQUIRED kad se čeka recenzija; razlog zaustavljanja za zaustavljanje bez verifikacije.
Popravak unutar proračuna
Popravljiv neuspjeh nastavlja isti zahtjev. Zadani proračun su dva pokušaja; kad se iscrpi, kandidat čeka recenziju.
semantička prosudba · LLM ili Jev
core/agent/verify.pypodaci: passed · rubric_missespolicy_action · čitanje presudeloop/_lifecycle.pyPresuda sadrži prolaz ili pad, kodove propusta, refleksiju za sljedeći pokušaj i podatak je li ponovni pokušaj koristan. Semantički prolaz nikad ne prekriva neuspjelu strukturnu provjeru.
policy_action · čitanje presude
loop/_lifecycle.pypokretanje · odluka: Odluka PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyHook PostVerify odlučuje ACCEPT, REVISE ili ESCALATE. ACCEPT za kandidata koji nije prošao verifikaciju postaje escalate. Bez odluke vrijedi zadana vrijednost izvršnog okruženja (pass → accept, retryable → revise, inače escalate).
policy_action · čitanje presude
loop/_lifecycle.pypokretanje · odluka: Stop · CONTINUEStop · CONTINUEcore/hooks/public.pySamo kad nema eskalacije, uputa CONTINUE iz hooka Stop može zatražiti nastavak s popravkom. Uputa hooka ulaz je za sljedeći pokušaj, a ne ovlast.
proračun nastavaka · zadano 2
loop/_lifecycle.pypokretanje · odluka: popravak · pokušaj +1_arun_once · nastavak s popravkomloop/agent_loop.pyUz uputu za popravak, i samo dok je broj pokušaja manji od proračuna (zadano dva), isti se zahtjev nastavlja. Kad se proračun dosegne, stanje postaje escalate_budget_exhausted i čeka recenziju.
Čekanje na recenziju
Neupotrebljiva presuda, pokušaj da se neuspjeh pretvori u prolaz ili iscrpljen proračun zadržavaju kandidata i pauziraju sesiju.
verification_error · zatvara se pri neuspjehu
core/agent/verify.pyneuspjeh · bez presude: verification_errorpolicy_action · čitanje presudeloop/_lifecycle.pyNedostajući sudac, istek vremena ili nevaljan odgovor postaju verification_error: ni prolaz ni signal za popravak. Neupotrebljiva presuda nikad ne zamjenjuje uspjeh.
policy_action · čitanje presude
loop/_lifecycle.pypokretanje · odluka: Odluka PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyHook PostVerify odlučuje ACCEPT, REVISE ili ESCALATE. ACCEPT za kandidata koji nije prošao verifikaciju postaje escalate. Bez odluke vrijedi zadana vrijednost izvršnog okruženja (pass → accept, retryable → revise, inače escalate).
policy_action · čitanje presude
loop/_lifecycle.pypokretanje · odluka: ESCALATE · pendingVanjski recenzentKandidat se čuva kao pending_text i ne prikazuje u uobičajenim odgovorima, kontrolna točka se sprema, a sesija se pauzira. Nijedan vanjski recenzent ne kontaktira se automatski.
policy_action · čitanje presude
loop/_lifecycle.pyzapis · opažanje: presuda · retci dokazatimeline · retci odluka u ledgerumemory · observabilityTimeline dobiva retke odluka, dokaza i pending, a evidence ledger redak verification_policy. To su zapisi po načelu best-effort, a ne dokaz vanjskog učinka.
Zaustavljanja bez verifikacije
Zaustavljanja zbog otkazivanja, ograničenja i infrastrukture te izvođenja control workflowa spremaju se bez javne verifikacije.
arun · potez modela
loop/agent_loop.pypokretanje · odluka: zaštite · ograničenjazaustavljanje zbog neuspjeha · ograničenja · otkazivanjaloop/_guards.py · models.pyZaštite kao što su ograničenja rundi, vremena, troška i konteksta, otkazivanje i otkrivanje ponovljenih neuspjeha završavaju potez jednim članom zatvorenog skupa TerminationReason. Ograničenje isključeno u konfiguraciji ne provodi se uvijek.
zaustavljanje zbog neuspjeha · ograničenja · otkazivanja
loop/_guards.py · models.pyneuspjeh · bez presude: zaustavljanje zbog neuspjeha · otkazivanjafinalize_and_return_asyncloop/_lifecycle.pyZaustavljanja zbog otkazivanja, infrastrukture i ograničenja nemaju kandidata za verifikaciju pa se spremaju bez javne verifikacije.
control workflow · preskakanje javne verifikacije
ipc_server/poller.pypokretanje · odluka: preskakanje javne verifikacijefinalize_and_return_asyncloop/_lifecycle.pyKad IPC poziv zatraži preskakanje javne verifikacije ili je aktivan control workflow, javna je verifikacija isključena samo za to izvođenje, a nakon toga vraća se prethodna vrijednost.
finalize_and_return_async
loop/_lifecycle.pypodaci: samo spremanje · bez verifikacijekontrolna točka · stanje sesijememory · observabilityZaustavljanje bez verifikacije i dalje sprema svoj rezultat i kontrolnu točku te emitira događaje kraja sesije.
finalize_and_return_async
loop/_lifecycle.pypodaci: odgovorIPC · pozivatelj CLI-jaVraća konačni odgovor kad je završeno; prazan odgovor s EXTERNAL_VERIFICATION_REQUIRED kad se čeka recenzija; razlog zaustavljanja za zaustavljanje bez verifikacije.
Sve veze iste debljine. Odaberite tijek kako biste istaknuli samo njegov put s numeriranim koracima.
- Puna crta · smjer kojim teku zahtjevi, kandidati i rezultati
- Isprekidana crta · pokretanje, odluka, autorizacija, konfiguracija
- Duga crta-točka · zapisi i opažanje, odvojeno od presude
- Kratka crtica · neuspjeh ili neupotrebljiva presuda
- Debela crna crta · odabrani tijek; brojevi daju redoslijed
- Okvir · granica koda ili zapisa, putanja u zaglavlju
- Unutarnja pločica · komponenta unutar te granice
- Isprekidani okvir · izvan te granice
- petlja · finalizacija
- zaustavljanja · hookovi · presuda
- spremanje · zapisi
- IPC ulaz
Nacrtani su samo putovi poziva na fiksiranom commitu 9e2c041. Prolaz kod suca odvojen je od uspjeha vanjskog verifikatora benchmarka; završetak je ovdje odluka unutar izvršnog okruženja.
- Mehanizam prosudbe
- Zadan je LLM judge; Jev Choice prosuđuje samo kad je judgment_engine postavljen na jev. U oba slučaja neupotrebljiv sudac daje verification_error, nikad uspjeh.
- Što hookovi smiju
- PreVerify presudu može samo pooštriti, PostVerify ne može propustiti kandidata koji nije prošao, a Stop može zatražiti nastavak samo kad nema eskalacije.
- Čekanje na recenziju
- Čekanje na recenziju bilježi da je potrebna vanjska odluka. Nikoga ne obavještava niti znači da je rezultat odobren.