Geodi, službeni pikselni lik GEODE-a
Natrag u dvoranu

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.

2026.02.21 — present

Dizajn, prosudba, verifikacija: Author · implementacija: Claude · recenzija: Codex

  • CLIObjavljeno · PyPI
  • MCP poslužiteljImplementirano

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.

Karta završetka · nacrtano prema putovima koda na fiksiranom commitu 9e2c041
Karta završetka GEODEKako prijedlog modela da stane postaje završetak. Samo zaustavljanja s isporučivim rezultatom (natural, forced_text, actionable_partial) prolaze hook PreVerify, strukturnu provjeru i odabranog suca (zadano LLM judge, Jev ako je odabran) te hookove PostVerify i Stop. Prolaz se sprema kao completed; popravljiv neuspjeh nastavlja isti zahtjev unutar zadanog proračuna od dva pokušaja. Neupotrebljiva presuda, pokušaj da se neuspjeh pretvori u prolaz ili iscrpljen proračun zadržavaju kandidata i pauziraju sesiju. Zaustavljanja zbog otkazivanja, ograničenja i infrastrukture te izvođenja control workflowa spremaju se bez verifikacije.IPC · pozivatelj CLI-jaodgovor · stanje sesijeVanjski recenzentpending · bez kontaktaModel sudacLLM judge · Jev Choiceipc_server/poller.pycontrol workflow · preskakanje javne verifikacijeloop/agent_loop.pyarun · potez modela_arun_once · nastavak s popravkomloop/_guards.py · models.pyisporučivo zaustavljanje · natural i dr.zaustavljanje zbog neuspjeha · ograničenja · otkazivanjaloop/_lifecycle.pyfinalize_and_return_asyncpolicy_action · čitanje presudeproračun nastavaka · zadano 2core/hooks/public.pyPreVerify · STRENGTHENPostVerify · ACCEPT · REVISE · ESCALATEStop · CONTINUEmemory · observabilitykontrolna točka · stanje sesijetimeline · retci odluka u ledgerucore/agent/verify.pystrukturna provjera · empty_turnsemantička prosudba · LLM ili Jevverification_error · zatvara se pri neuspjehuProces izvršnog okruženja GEODEkraj jednog poteza AgenticLoopapetlja · kandidati za zaustavljanjefinalizacija · presuda1 prijedlog zaustavljanja · arun · potez modela → isporučivo zaustavljanje · natural i dr.12kandidat za završetak3 PreVerify · finalize_and_return_async → PreVerify · STRENGTHEN34verify_turn_async5zahtjev za prosudbu6passed · rubric_misses7 Odluka PostVerify · policy_action · čitanje presude → PostVerify · ACCEPT · REVISE · ESCALATE78Stop · CONTINUE9completed · spremljeno10odgovor1passed · rubric_misses2 Odluka PostVerify · policy_action · čitanje presude → PostVerify · ACCEPT · REVISE · ESCALATE23Stop · CONTINUE4popravak · pokušaj +11verification_error2 Odluka PostVerify · policy_action · čitanje presude → PostVerify · ACCEPT · REVISE · ESCALATE23ESCALATE · pending4presuda · retci dokaza1 zaštite · ograničenja · arun · potez modela → zaustavljanje zbog neuspjeha · ograničenja · otkazivanja12zaustavljanje zbog neuspjeha · otkazivanja3preskakanje javne verifikacije4samo spremanje · bez verifikacije5odgovor

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.

  1. arun · potez modelaloop/agent_loop.pypodaci: prijedlog zaustavljanjaisporučivo zaustavljanje · natural i dr.loop/_guards.py · models.py

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

  2. isporučivo zaustavljanje · natural i dr.loop/_guards.py · models.pypodaci: kandidat za završetakfinalize_and_return_asyncloop/_lifecycle.py

    Samo natural, forced_text i actionable_partial isporučiva su zaustavljanja i samo ona idu dalje na javnu verifikaciju.

  3. finalize_and_return_asyncloop/_lifecycle.pypokretanje · odluka: PreVerifyPreVerify · STRENGTHENcore/hooks/public.py

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

  4. finalize_and_return_asyncloop/_lifecycle.pypokretanje · odluka: verify_turn_asyncstrukturna provjera · empty_turncore/agent/verify.py

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

  5. semantička prosudba · LLM ili Jevcore/agent/verify.pypodaci: zahtjev za prosudbuModel sudac

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

  6. semantička prosudba · LLM ili Jevcore/agent/verify.pypodaci: passed · rubric_missespolicy_action · čitanje presudeloop/_lifecycle.py

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

  7. policy_action · čitanje presudeloop/_lifecycle.pypokretanje · odluka: Odluka PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.py

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

  8. policy_action · čitanje presudeloop/_lifecycle.pypokretanje · odluka: Stop · CONTINUEStop · CONTINUEcore/hooks/public.py

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

  9. policy_action · čitanje presudeloop/_lifecycle.pypodaci: completed · spremljenokontrolna točka · stanje sesijememory · observability

    Pri prolazu i accept nastavljeni se pokušaji spajaju, rezultat se sprema, a sesija se bilježi kao completed.

  10. finalize_and_return_asyncloop/_lifecycle.pypodaci: odgovorIPC · pozivatelj CLI-ja

    Vrać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.

  1. semantička prosudba · LLM ili Jevcore/agent/verify.pypodaci: passed · rubric_missespolicy_action · čitanje presudeloop/_lifecycle.py

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

  2. policy_action · čitanje presudeloop/_lifecycle.pypokretanje · odluka: Odluka PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.py

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

  3. policy_action · čitanje presudeloop/_lifecycle.pypokretanje · odluka: Stop · CONTINUEStop · CONTINUEcore/hooks/public.py

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

  4. proračun nastavaka · zadano 2loop/_lifecycle.pypokretanje · odluka: popravak · pokušaj +1_arun_once · nastavak s popravkomloop/agent_loop.py

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

  1. verification_error · zatvara se pri neuspjehucore/agent/verify.pyneuspjeh · bez presude: verification_errorpolicy_action · čitanje presudeloop/_lifecycle.py

    Nedostajući sudac, istek vremena ili nevaljan odgovor postaju verification_error: ni prolaz ni signal za popravak. Neupotrebljiva presuda nikad ne zamjenjuje uspjeh.

  2. policy_action · čitanje presudeloop/_lifecycle.pypokretanje · odluka: Odluka PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.py

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

  3. policy_action · čitanje presudeloop/_lifecycle.pypokretanje · odluka: ESCALATE · pendingVanjski recenzent

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

  4. policy_action · čitanje presudeloop/_lifecycle.pyzapis · opažanje: presuda · retci dokazatimeline · retci odluka u ledgerumemory · observability

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

  1. arun · potez modelaloop/agent_loop.pypokretanje · odluka: zaštite · ograničenjazaustavljanje zbog neuspjeha · ograničenja · otkazivanjaloop/_guards.py · models.py

    Zaš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.

  2. zaustavljanje zbog neuspjeha · ograničenja · otkazivanjaloop/_guards.py · models.pyneuspjeh · bez presude: zaustavljanje zbog neuspjeha · otkazivanjafinalize_and_return_asyncloop/_lifecycle.py

    Zaustavljanja zbog otkazivanja, infrastrukture i ograničenja nemaju kandidata za verifikaciju pa se spremaju bez javne verifikacije.

  3. control workflow · preskakanje javne verifikacijeipc_server/poller.pypokretanje · odluka: preskakanje javne verifikacijefinalize_and_return_asyncloop/_lifecycle.py

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

  4. finalize_and_return_asyncloop/_lifecycle.pypodaci: samo spremanje · bez verifikacijekontrolna točka · stanje sesijememory · observability

    Zaustavljanje bez verifikacije i dalje sprema svoj rezultat i kontrolnu točku te emitira događaje kraja sesije.

  5. finalize_and_return_asyncloop/_lifecycle.pypodaci: odgovorIPC · pozivatelj CLI-ja

    Vrać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.