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.
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.
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.
arun · modelio ėjimas
loop/agent_loop.pyduomenys: pasiūlymas sustotisustojimas su rezultatu · natural ir kt.loop/_guards.py · models.pyKai 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.
sustojimas su rezultatu · natural ir kt.
loop/_guards.py · models.pyduomenys: užbaigimo kandidatasfinalize_and_return_asyncloop/_lifecycle.pyTik natural, forced_text ir actionable_partial yra sustojimai su perduodamu rezultatu, ir tik jie pereina į viešą verifikaciją.
finalize_and_return_async
loop/_lifecycle.pypaleisti · nuspręsti: PreVerifyPreVerify · STRENGTHENcore/hooks/public.pySu STRENGTHEN PreVerify hook gali tik pridėti reikalavimų ir praleidimų kodų. Jis gali padaryti verdiktą griežtesnį, bet niekada jo nepraleisti.
finalize_and_return_async
loop/_lifecycle.pypaleisti · nuspręsti: verify_turn_asyncstruktūrinė patikra · empty_turncore/agent/verify.pyPirmiausia 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.
semantinis sprendimas · LLM arba Jev
core/agent/verify.pyduomenys: sprendimo užklausaTeisėjo modelisPasirinktas 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.
semantinis sprendimas · LLM arba Jev
core/agent/verify.pyduomenys: passed · rubric_missespolicy_action · verdikto skaitymasloop/_lifecycle.pyVerdiktas 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.
policy_action · verdikto skaitymas
loop/_lifecycle.pypaleisti · nuspręsti: PostVerify sprendimasPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyPostVerify 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).
policy_action · verdikto skaitymas
loop/_lifecycle.pypaleisti · nuspręsti: Stop · CONTINUEStop · CONTINUEcore/hooks/public.pyTik kai nėra eskalavimo, Stop hook CONTINUE nurodymas gali prašyti tęsinio su pataisa. Hook nurodymas yra kito bandymo įvestis, o ne įgaliojimas.
policy_action · verdikto skaitymas
loop/_lifecycle.pyduomenys: completed · įrašytakontrolinis taškas · sesijos būsenamemory · observabilityEsant sėkmei ir accept, tęstiniai bandymai sujungiami, rezultatas įrašomas, o sesija pažymima kaip completed.
finalize_and_return_async
loop/_lifecycle.pyduomenys: atsakymasIPC · CLI kvietėjasGrąž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.
semantinis sprendimas · LLM arba Jev
core/agent/verify.pyduomenys: passed · rubric_missespolicy_action · verdikto skaitymasloop/_lifecycle.pyVerdiktas 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.
policy_action · verdikto skaitymas
loop/_lifecycle.pypaleisti · nuspręsti: PostVerify sprendimasPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyPostVerify 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).
policy_action · verdikto skaitymas
loop/_lifecycle.pypaleisti · nuspręsti: Stop · CONTINUEStop · CONTINUEcore/hooks/public.pyTik kai nėra eskalavimo, Stop hook CONTINUE nurodymas gali prašyti tęsinio su pataisa. Hook nurodymas yra kito bandymo įvestis, o ne įgaliojimas.
tęsinių biudžetas · numatytasis 2
loop/_lifecycle.pypaleisti · nuspręsti: pataisa · bandymas +1_arun_once · tęsinys su pataisaloop/agent_loop.pyEsant 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ą.
verification_error · užsidaro įvykus nesėkmei
core/agent/verify.pynesėkmė · be verdikto: verification_errorpolicy_action · verdikto skaitymasloop/_lifecycle.pyNesantis 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.
policy_action · verdikto skaitymas
loop/_lifecycle.pypaleisti · nuspręsti: PostVerify sprendimasPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyPostVerify 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).
policy_action · verdikto skaitymas
loop/_lifecycle.pypaleisti · nuspręsti: ESCALATE · pendingIšorinis peržiūrėtojasKandidatas 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.
policy_action · verdikto skaitymas
loop/_lifecycle.pyįrašas · stebėjimas: verdiktas · įrodymų eilutėstimeline · ledger sprendimų eilutėsmemory · observabilityTimeline 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.
arun · modelio ėjimas
loop/agent_loop.pypaleisti · nuspręsti: apsaugos · limitaisustojimas dėl nesėkmės · limito · atšaukimoloop/_guards.py · models.pyApsaugos, 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.
sustojimas dėl nesėkmės · limito · atšaukimo
loop/_guards.py · models.pynesėkmė · be verdikto: sustojimas dėl nesėkmės · atšaukimofinalize_and_return_asyncloop/_lifecycle.pyAtšaukimo, infrastruktūros ir limitų sustojimai neturi kandidato verifikacijai, todėl įrašomi be viešos verifikacijos.
control workflow · praleisti viešą verifikaciją
ipc_server/poller.pypaleisti · nuspręsti: praleisti viešą verifikacijąfinalize_and_return_asyncloop/_lifecycle.pyKai 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ė.
finalize_and_return_async
loop/_lifecycle.pyduomenys: tik įrašymas · be verifikacijoskontrolinis taškas · sesijos būsenamemory · observabilitySustojimas be verifikacijos vis tiek įrašo savo rezultatą ir kontrolinį tašką bei skleidžia sesijos pabaigos įvykius.
finalize_and_return_async
loop/_lifecycle.pyduomenys: atsakymasIPC · CLI kvietėjasGrąž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.