GEODE
Autonomous Agent Harness
От наблюдението до следващото действие.
Локална рамка за автономни агенти, на която могат да се възлагат проучвания, работа с файлове и планирани задачи.
Предложението на модела да спре става завършване само чрез проверка.
При спиране с резултат за предаване моделът, който иска да спре, пак минава през проверка на завършването. Изходът е: завършено, продължаване в рамките на бюджета или изчакване на преглед; ограниченията на изпълнението, отмяната и грешките завършват в отделно състояние на спиране.
Проверка → завършване
Само спиране с резултат за предаване минава през PreVerify → преценка → PostVerify → Stop. Нито предложението на модела да спре, нито инструкция на hook сами по себе си са завършване.
arun · ход на модела
loop/agent_loop.pyданни: предложение за спиранеспиране с резултат · natural и др.loop/_guards.py · models.pyКогато моделът отговори с текст без извикване на инструмент, ходът става кандидат за спиране natural (forced_text в последния позволен рунд). Предложението на модела да спре още не е завършване.
спиране с резултат · natural и др.
loop/_guards.py · models.pyданни: кандидат за завършванеfinalize_and_return_asyncloop/_lifecycle.pyСамо natural, forced_text и actionable_partial са спирания с резултат за предаване и само те продължават към публичната проверка.
finalize_and_return_async
loop/_lifecycle.pyизпълнение · решение: PreVerifyPreVerify · STRENGTHENcore/hooks/public.pyСъс STRENGTHEN hook PreVerify може само да добавя изисквания и кодове за липси. Може да направи вердикта по-строг, но никога не може да го направи успешен.
finalize_and_return_async
loop/_lifecycle.pyизпълнение · решение: verify_turn_asyncструктурна проверка · empty_turncore/agent/verify.pyПърво идва структурна проверка (празен ход, model_action_required); непоправима структурна грешка пропуска семантичната преценка. Стари настройки като off или rule_based се свеждат до llm_judge и не могат да изключат вердикта.
семантична преценка · LLM или Jev
core/agent/verify.pyданни: заявка за преценкаМодел съдияИзбраният съдия (по подразбиране LLM съдия, Jev Choice, ако е избран) се извиква веднъж, без инструменти, за най-много 120 секунди и никога извън оставащия бюджет от време. Кандидат, който може да съдържа лични наблюдения, не се изпраща на спомагателен съдия.
семантична преценка · LLM или Jev
core/agent/verify.pyданни: passed · rubric_missespolicy_action · тълкуване на вердиктаloop/_lifecycle.pyВердиктът съдържа успех или неуспех, кодове за липси, рефлексия за следващия опит и дали повторен опит има смисъл. Семантичният успех никога не покрива неуспешна структурна проверка.
policy_action · тълкуване на вердикта
loop/_lifecycle.pyизпълнение · решение: Решение на PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyHook PostVerify решава между ACCEPT, REVISE и ESCALATE. ACCEPT на кандидат, който не е преминал проверката, става escalate. Без решение се прилага стойността по подразбиране на средата за изпълнение (успех → accept, може да се повтори → revise, иначе escalate).
policy_action · тълкуване на вердикта
loop/_lifecycle.pyизпълнение · решение: Stop · CONTINUEStop · CONTINUEcore/hooks/public.pyСамо когато няма ескалация, инструкцията CONTINUE на hook Stop може да поиска продължаване с поправка. Инструкцията на hook е вход за следващия опит, а не права.
policy_action · тълкуване на вердикта
loop/_lifecycle.pyданни: completed · записаноконтролна точка · състояние на сесиятаmemory · observabilityПри успех и accept продължените опити се обединяват, резултатът се записва, а сесията се отбелязва като completed.
finalize_and_return_async
loop/_lifecycle.pyданни: отговорIPC · извикващ CLIВръща крайния отговор при завършване; празен отговор с EXTERNAL_VERIFICATION_REQUIRED при изчакване на преглед; причината за спиране при спиране без проверка.
Поправка в рамките на бюджета
Поправима грешка продължава същата заявка. Бюджетът по подразбиране е два опита; когато се изчерпи, кандидатът чака преглед.
семантична преценка · LLM или Jev
core/agent/verify.pyданни: passed · rubric_missespolicy_action · тълкуване на вердиктаloop/_lifecycle.pyВердиктът съдържа успех или неуспех, кодове за липси, рефлексия за следващия опит и дали повторен опит има смисъл. Семантичният успех никога не покрива неуспешна структурна проверка.
policy_action · тълкуване на вердикта
loop/_lifecycle.pyизпълнение · решение: Решение на PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyHook PostVerify решава между ACCEPT, REVISE и ESCALATE. ACCEPT на кандидат, който не е преминал проверката, става escalate. Без решение се прилага стойността по подразбиране на средата за изпълнение (успех → accept, може да се повтори → revise, иначе escalate).
policy_action · тълкуване на вердикта
loop/_lifecycle.pyизпълнение · решение: Stop · CONTINUEStop · CONTINUEcore/hooks/public.pyСамо когато няма ескалация, инструкцията CONTINUE на hook Stop може да поиска продължаване с поправка. Инструкцията на hook е вход за следващия опит, а не права.
бюджет за продължаване · по подразбиране 2
loop/_lifecycle.pyизпълнение · решение: поправка · опит +1_arun_once · продължаване с поправкаloop/agent_loop.pyПри инструкция за поправка и само докато номерът на опита е под бюджета (по подразбиране два), същата заявка продължава. При достигане на бюджета става escalate_budget_exhausted и чака преглед.
Изчакване на преглед
Неизползваем вердикт, опит грешка да се превърне в успех или изчерпан бюджет задържат кандидата и поставят сесията на пауза.
verification_error · затваря при грешка
core/agent/verify.pyгрешка · без вердикт: verification_errorpolicy_action · тълкуване на вердиктаloop/_lifecycle.pyЛипсващ съдия, изтекъл срок или невалиден отговор става verification_error: нито успех, нито сигнал за поправка. Неизползваем вердикт никога не замества успеха.
policy_action · тълкуване на вердикта
loop/_lifecycle.pyизпълнение · решение: Решение на PostVerifyPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyHook PostVerify решава между ACCEPT, REVISE и ESCALATE. ACCEPT на кандидат, който не е преминал проверката, става escalate. Без решение се прилага стойността по подразбиране на средата за изпълнение (успех → accept, може да се повтори → revise, иначе escalate).
policy_action · тълкуване на вердикта
loop/_lifecycle.pyизпълнение · решение: ESCALATE · pendingВъншен рецензентКандидатът се пази като pending_text и се задържа от обичайните отговори, контролната точка се записва, а сесията се поставя на пауза. Никой външен рецензент не се уведомява автоматично.
policy_action · тълкуване на вердикта
loop/_lifecycle.pyзапис · наблюдение: вердикт · редове с доказателствахронология · редове с решения в регистъраmemory · observabilityХронологията получава редове с решение, доказателства и чакащи редове, а регистърът на доказателствата – ред verification_policy. Това са записи без гаранция, а не доказателство за външен ефект.
Спирания без проверка
Спиранията поради отмяна, ограничение и инфраструктура, както и изпълненията на control workflow, се записват без публична проверка.
arun · ход на модела
loop/agent_loop.pyизпълнение · решение: защити · ограниченияспиране при грешка · ограничение · отмянаloop/_guards.py · models.pyЗащити като ограниченията за рундове, време, разходи и контекст, отмяната и откриването на повтарящи се грешки прекратяват хода с един елемент от затвореното множество TerminationReason. Ограничение, изключено в конфигурацията, не винаги се прилага.
спиране при грешка · ограничение · отмяна
loop/_guards.py · models.pyгрешка · без вердикт: спиране при грешка · отмянаfinalize_and_return_asyncloop/_lifecycle.pyСпиранията поради отмяна, инфраструктура и ограничение нямат кандидат за проверка, затова се записват без публична проверка.
control workflow · без публична проверка
ipc_server/poller.pyизпълнение · решение: без публична проверкаfinalize_and_return_asyncloop/_lifecycle.pyКогато IPC извикване поиска пропускане на публичната проверка или е активен control workflow, публичната проверка е изключена само за това изпълнение, а след него предишната стойност се възстановява.
finalize_and_return_async
loop/_lifecycle.pyданни: само запис · без проверкаконтролна точка · състояние на сесиятаmemory · observabilityСпирането без проверка също записва резултата и контролната си точка и излъчва събитията за край на сесията.
finalize_and_return_async
loop/_lifecycle.pyданни: отговорIPC · извикващ CLIВръща крайния отговор при завършване; празен отговор с EXTERNAL_VERIFICATION_REQUIRED при изчакване на преглед; причината за спиране при спиране без проверка.
Всички връзки с еднаква дебелина. Изберете поток, за да се откроят само неговият път и номерираните стъпки.
- Плътна · посоката, в която текат заявките, кандидатите и резултатите
- Прекъсната · изпълнение, решение, разрешаване, конфигуриране
- Дълга щрих-пунктирна · записи и наблюдение, отделно от вердикта
- Къса прекъсната · грешка или неизползваем вердикт
- Дебела черна линия · избраният поток; числата показват реда
- Кутия · граница на код или записи, с пътя в заглавието
- Вътрешен етикет · компонент в тази граница
- Прекъсната кутия · извън тази граница
- цикъл · финализиране
- спирания · hooks · вердикт
- запис · записи
- IPC вход
Начертани са само пътищата на извикване при фиксирания къмит 9e2c041. Успехът според съдията е отделен от успеха според външен бенчмарк верификатор; завършването тук е решение вътре в средата за изпълнение.
- Машина за преценка
- По подразбиране съди LLM съдията; Jev Choice съди само когато judgment_engine е зададен на jev. И в двата случая неизползваем съдия дава verification_error, никога успех.
- Какво могат hooks
- PreVerify може само да направи вердикта по-строг, PostVerify не може да пропусне неуспешен кандидат, а Stop може да поиска продължаване само когато няма ескалация.
- Изчакване на преглед
- Изчакването на преглед записва, че е нужно външно решение. То не уведомява никого и не означава, че резултатът е одобрен.