Geodi, oficialus GEODE pikselinis personažas
Atgal į salę

GEODE

Autonomous Agent Harness

Nuo stebėjimo iki kito veiksmo.

Vietinis autonominio agento karkasas, kuriam galima patikėti tyrimus, darbą su failais ir suplanuotas užduotis.

2026.02.21 — present

Projektavimas, sprendimai, verifikacija: Author · įgyvendinimas: Claude · peržiūra: Codex

  • CLIPaskelbta · PyPI
  • MCP serverisĮgyvendinta

Modelio pasiūlymas sustoti tampa užbaigimu tik per verifikaciją.

Sustojant su perduodamu rezultatu, modelis, prašantis sustoti, vis tiek pereina užbaigimo verifikaciją. Rezultatas – baigta, tęsinys neviršijant biudžeto arba laukiama peržiūros; vykdymo limitai, atšaukimas ir klaidos baigiasi atskira sustabdymo būsena.

Užbaigimo žemėlapis · nubraižyta pagal kodo kelius užfiksuotame komite 9e2c041
GEODE užbaigimo žemėlapisKaip modelio pasiūlymas sustoti tampa užbaigimu. Tik sustojimai su perduodamu rezultatu (natural, forced_text, actionable_partial) pereina PreVerify hook, struktūrinę patikrą ir pasirinktą teisėją (pagal numatymą LLM judge, Jev, jei pasirinktas) bei PostVerify ir Stop hook. Sėkmė įrašoma kaip completed; pataisoma nesėkmė tęsia tą pačią užklausą neviršydama numatytojo dviejų bandymų biudžeto. Netinkamas verdiktas, bandymas nesėkmę paversti sėkme ar išnaudotas biudžetas sulaiko kandidatą ir pristabdo sesiją. Atšaukimo, limitų ir infrastruktūros sustojimai bei control workflow paleidimai įrašomi be verifikacijos.IPC · CLI kvietėjasatsakymas · sesijos būsenaIšorinis peržiūrėtojaspending · nesusisiekiamaTeisėjo modelisLLM judge · Jev Choiceipc_server/poller.pycontrol workflow · praleisti viešą verifikacijąloop/agent_loop.pyarun · modelio ėjimas_arun_once · tęsinys su pataisaloop/_guards.py · models.pysustojimas su rezultatu · natural ir kt.sustojimas dėl nesėkmės · limito · atšaukimoloop/_lifecycle.pyfinalize_and_return_asyncpolicy_action · verdikto skaitymastęsinių biudžetas · numatytasis 2core/hooks/public.pyPreVerify · STRENGTHENPostVerify · ACCEPT · REVISE · ESCALATEStop · CONTINUEmemory · observabilitykontrolinis taškas · sesijos būsenatimeline · ledger sprendimų eilutėscore/agent/verify.pystruktūrinė patikra · empty_turnsemantinis sprendimas · LLM arba Jevverification_error · užsidaro įvykus nesėkmeiGEODE vykdymo aplinkos procesasvieno AgenticLoop ėjimo pabaigaciklas · sustojimo kandidataifinalizavimas · verdiktas1 pasiūlymas sustoti · arun · modelio ėjimas → sustojimas su rezultatu · natural ir kt.12užbaigimo kandidatas3 PreVerify · finalize_and_return_async → PreVerify · STRENGTHEN34verify_turn_async5sprendimo užklausa6passed · rubric_misses7 PostVerify sprendimas · policy_action · verdikto skaitymas → PostVerify · ACCEPT · REVISE · ESCALATE78Stop · CONTINUE9completed · įrašyta10atsakymas1passed · rubric_misses2 PostVerify sprendimas · policy_action · verdikto skaitymas → PostVerify · ACCEPT · REVISE · ESCALATE23Stop · CONTINUE4pataisa · bandymas +11verification_error2 PostVerify sprendimas · policy_action · verdikto skaitymas → PostVerify · ACCEPT · REVISE · ESCALATE23ESCALATE · pending4verdiktas · įrodymų eilutės1 apsaugos · limitai · arun · modelio ėjimas → sustojimas dėl nesėkmės · limito · atšaukimo12sustojimas dėl nesėkmės · atšaukimo3praleisti viešą verifikaciją4tik įrašymas · be verifikacijos5atsakymas

Verifikacija → užbaigimas

Tik sustojimas su perduodamu rezultatu pereina PreVerify → sprendimas → PostVerify → Stop. Nei modelio pasiūlymas sustoti, nei hook nurodymas savaime nėra užbaigimas.

  1. arun · modelio ėjimasloop/agent_loop.pyduomenys: pasiūlymas sustotisustojimas su rezultatu · natural ir kt.loop/_guards.py · models.py

    Kai modelis atsako tekstu be įrankio iškvietimo, ėjimas tampa natūralaus sustojimo natural kandidatu (paskutiniame leidžiamame raunde – forced_text). Modelio pasiūlymas sustoti dar nėra užbaigimas.

  2. sustojimas su rezultatu · natural ir kt.loop/_guards.py · models.pyduomenys: užbaigimo kandidatasfinalize_and_return_asyncloop/_lifecycle.py

    Tik natural, forced_text ir actionable_partial yra sustojimai su perduodamu rezultatu, ir tik jie pereina į viešą verifikaciją.

  3. finalize_and_return_asyncloop/_lifecycle.pypaleisti · nuspręsti: PreVerifyPreVerify · STRENGTHENcore/hooks/public.py

    Su STRENGTHEN PreVerify hook gali tik pridėti reikalavimų ir praleidimų kodų. Jis gali padaryti verdiktą griežtesnį, bet niekada jo nepraleisti.

  4. finalize_and_return_asyncloop/_lifecycle.pypaleisti · nuspręsti: verify_turn_asyncstruktūrinė patikra · empty_turncore/agent/verify.py

    Pirmiausia atliekama struktūrinė patikra (tuščias ėjimas, model_action_required); nepataisoma struktūrinė nesėkmė praleidžia semantinį sprendimą. Seni nustatymai, tokie kaip off ar rule_based, verčiami į llm_judge ir negali išjungti verdikto.

  5. semantinis sprendimas · LLM arba Jevcore/agent/verify.pyduomenys: sprendimo užklausaTeisėjo modelis

    Pasirinktas teisėjas (pagal numatymą LLM judge, Jev Choice, jei pasirinktas) kviečiamas vieną kartą, be įrankių, ne ilgiau kaip 120 sekundžių ir niekada ilgiau nei likęs laiko biudžetas. Kandidatas, kuriame gali būti asmeninių stebėjimų, pagalbiniam teisėjui nesiunčiamas.

  6. semantinis sprendimas · LLM arba Jevcore/agent/verify.pyduomenys: passed · rubric_missespolicy_action · verdikto skaitymasloop/_lifecycle.py

    Verdiktas nurodo sėkmę ar nesėkmę, praleidimų kodus, refleksiją kitam bandymui ir ar pakartotinis bandymas naudingas. Semantinė sėkmė niekada nepadengia nepavykusios struktūrinės patikros.

  7. policy_action · verdikto skaitymasloop/_lifecycle.pypaleisti · nuspręsti: PostVerify sprendimasPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.py

    PostVerify hook nusprendžia ACCEPT, REVISE arba ESCALATE. ACCEPT kandidatui, nepraėjusiam verifikacijos, tampa escalate. Nesant sprendimo, taikoma vykdymo aplinkos numatytoji reikšmė (pass → accept, retryable → revise, kitaip escalate).

  8. policy_action · verdikto skaitymasloop/_lifecycle.pypaleisti · nuspręsti: Stop · CONTINUEStop · CONTINUEcore/hooks/public.py

    Tik kai nėra eskalavimo, Stop hook CONTINUE nurodymas gali prašyti tęsinio su pataisa. Hook nurodymas yra kito bandymo įvestis, o ne įgaliojimas.

  9. policy_action · verdikto skaitymasloop/_lifecycle.pyduomenys: completed · įrašytakontrolinis taškas · sesijos būsenamemory · observability

    Esant sėkmei ir accept, tęstiniai bandymai sujungiami, rezultatas įrašomas, o sesija pažymima kaip completed.

  10. finalize_and_return_asyncloop/_lifecycle.pyduomenys: atsakymasIPC · CLI kvietėjas

    Grąžina galutinį atsakymą, kai baigta; tuščią atsakymą su EXTERNAL_VERIFICATION_REQUIRED, kai laukiama peržiūros; sustojimo priežastį – sustojus be verifikacijos.

Pataisa neviršijant biudžeto

Pataisoma nesėkmė tęsia tą pačią užklausą. Numatytasis biudžetas – du bandymai; jį išnaudojus, kandidatas laukia peržiūros.

  1. semantinis sprendimas · LLM arba Jevcore/agent/verify.pyduomenys: passed · rubric_missespolicy_action · verdikto skaitymasloop/_lifecycle.py

    Verdiktas nurodo sėkmę ar nesėkmę, praleidimų kodus, refleksiją kitam bandymui ir ar pakartotinis bandymas naudingas. Semantinė sėkmė niekada nepadengia nepavykusios struktūrinės patikros.

  2. policy_action · verdikto skaitymasloop/_lifecycle.pypaleisti · nuspręsti: PostVerify sprendimasPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.py

    PostVerify hook nusprendžia ACCEPT, REVISE arba ESCALATE. ACCEPT kandidatui, nepraėjusiam verifikacijos, tampa escalate. Nesant sprendimo, taikoma vykdymo aplinkos numatytoji reikšmė (pass → accept, retryable → revise, kitaip escalate).

  3. policy_action · verdikto skaitymasloop/_lifecycle.pypaleisti · nuspręsti: Stop · CONTINUEStop · CONTINUEcore/hooks/public.py

    Tik kai nėra eskalavimo, Stop hook CONTINUE nurodymas gali prašyti tęsinio su pataisa. Hook nurodymas yra kito bandymo įvestis, o ne įgaliojimas.

  4. tęsinių biudžetas · numatytasis 2loop/_lifecycle.pypaleisti · nuspręsti: pataisa · bandymas +1_arun_once · tęsinys su pataisaloop/agent_loop.py

    Esant pataisos nurodymui ir tik kol bandymo numeris mažesnis už biudžetą (numatytasis – du), ta pati užklausa tęsiama. Pasiekus biudžetą, būsena tampa escalate_budget_exhausted ir laukiama peržiūros.

Laukiama peržiūros

Netinkamas verdiktas, bandymas nesėkmę paversti sėkme ar išnaudotas biudžetas sulaiko kandidatą ir pristabdo sesiją.

  1. verification_error · užsidaro įvykus nesėkmeicore/agent/verify.pynesėkmė · be verdikto: verification_errorpolicy_action · verdikto skaitymasloop/_lifecycle.py

    Nesantis teisėjas, laiko viršijimas ar netinkamas atsakymas tampa verification_error: nei sėkme, nei pataisos signalu. Netinkamas verdiktas niekada nepakeičia sėkmės.

  2. policy_action · verdikto skaitymasloop/_lifecycle.pypaleisti · nuspręsti: PostVerify sprendimasPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.py

    PostVerify hook nusprendžia ACCEPT, REVISE arba ESCALATE. ACCEPT kandidatui, nepraėjusiam verifikacijos, tampa escalate. Nesant sprendimo, taikoma vykdymo aplinkos numatytoji reikšmė (pass → accept, retryable → revise, kitaip escalate).

  3. policy_action · verdikto skaitymasloop/_lifecycle.pypaleisti · nuspręsti: ESCALATE · pendingIšorinis peržiūrėtojas

    Kandidatas išsaugomas kaip pending_text ir nerodomas įprastuose atsakymuose, kontrolinis taškas įrašomas, o sesija pristabdoma. Su išoriniu peržiūrėtoju automatiškai nesusisiekiama.

  4. policy_action · verdikto skaitymasloop/_lifecycle.pyįrašas · stebėjimas: verdiktas · įrodymų eilutėstimeline · ledger sprendimų eilutėsmemory · observability

    Timeline gauna sprendimų, įrodymų ir pending eilutes, o evidence ledger – verification_policy eilutę. Tai best-effort įrašai, o ne išorinio poveikio įrodymas.

Sustojimai be verifikacijos

Atšaukimo, limitų ir infrastruktūros sustojimai bei control workflow paleidimai įrašomi be viešos verifikacijos.

  1. arun · modelio ėjimasloop/agent_loop.pypaleisti · nuspręsti: apsaugos · limitaisustojimas dėl nesėkmės · limito · atšaukimoloop/_guards.py · models.py

    Apsaugos, tokios kaip raundų, laiko, kainos ir konteksto limitai, atšaukimas ir pasikartojančių nesėkmių aptikimas, baigia ėjimą vienu uždarojo TerminationReason rinkinio nariu. Konfigūracijoje išjungtas limitas ne visada užtikrinamas.

  2. sustojimas dėl nesėkmės · limito · atšaukimoloop/_guards.py · models.pynesėkmė · be verdikto: sustojimas dėl nesėkmės · atšaukimofinalize_and_return_asyncloop/_lifecycle.py

    Atšaukimo, infrastruktūros ir limitų sustojimai neturi kandidato verifikacijai, todėl įrašomi be viešos verifikacijos.

  3. control workflow · praleisti viešą verifikacijąipc_server/poller.pypaleisti · nuspręsti: praleisti viešą verifikacijąfinalize_and_return_asyncloop/_lifecycle.py

    Kai IPC iškvietimas prašo praleisti viešą verifikaciją arba aktyvus control workflow, vieša verifikacija išjungiama tik tam paleidimui, o paskui atkuriama ankstesnė reikšmė.

  4. finalize_and_return_asyncloop/_lifecycle.pyduomenys: tik įrašymas · be verifikacijoskontrolinis taškas · sesijos būsenamemory · observability

    Sustojimas be verifikacijos vis tiek įrašo savo rezultatą ir kontrolinį tašką bei skleidžia sesijos pabaigos įvykius.

  5. finalize_and_return_asyncloop/_lifecycle.pyduomenys: atsakymasIPC · CLI kvietėjas

    Grąžina galutinį atsakymą, kai baigta; tuščią atsakymą su EXTERNAL_VERIFICATION_REQUIRED, kai laukiama peržiūros; sustojimo priežastį – sustojus be verifikacijos.

Visi ryšiai vienodo storio. Pasirinkite srautą, kad būtų paryškintas tik jo kelias su sunumeruotais žingsniais.

  • Ištisinė · kryptis, kuria keliauja užklausos, kandidatai ir rezultatai
  • Brūkšninė · paleisti, nuspręsti, įgalioti, konfigūruoti
  • Ilga brūkšninė-taškinė · įrašai ir stebėjimas, atskirai nuo verdikto
  • Trumpa brūkšninė · nesėkmė ar netinkamas verdiktas
  • Stora juoda linija · pasirinktas srautas; skaičiai rodo tvarką
  • Rėmelis · kodo ar įrašų riba, kelias antraštėje
  • Vidinė plokštelė · komponentas toje riboje
  • Brūkšninis rėmelis · už tos ribos
  • ciklas · finalizavimas
  • sustojimai · hook · verdiktas
  • įrašymas · įrašai
  • IPC įėjimas

Nubraižyti tik iškvietimų keliai užfiksuotame komite 9e2c041. Teisėjo sėkmė yra atskira nuo išorinio lyginamojo testo tikrintuvo sėkmės; užbaigimas čia yra sprendimas vykdymo aplinkos viduje.

Sprendimų variklis
Pagal numatymą tai LLM judge; Jev Choice sprendžia tik tada, kai judgment_engine nustatytas į jev. Bet kuriuo atveju netinkamas teisėjas duoda verification_error, niekada ne sėkmę.
Ką gali hook
PreVerify gali tik sugriežtinti verdiktą, PostVerify negali praleisti nepavykusio kandidato, o Stop gali prašyti tęsinio tik tada, kai nėra eskalavimo.
Laukiama peržiūros
Laukimas peržiūros užfiksuoja, kad reikia išorinio sprendimo. Jis nieko neperspėja ir nereiškia, kad rezultatas patvirtintas.