GEODE
Autonomous Agent Harness
От наблюдението до следващото действие.
Локална рамка за автономни агенти, на която могат да се възлагат проучвания, работа с файлове и планирани задачи.
GEODE runtime vocabulary
- reasoning
- action
- observation
- plan
- memory
- tools
- hook
- reflexion
- rollouts
- data curation
- data governance
- evaluation
- scaffold search
- promotion
Reasoning: SYSTEM PROMPT · CONVERSATION · RUNTIME HINTS · MODEL · ADAPTER CALL · NEXT ACTION · TOOL SCHEMA · TEXT-ONLY TURN · CURRENT STEP · PROJECT MEMORY · RUNTIME RULES · EFFORT · thinking_budget · reasoning_effort · adaptive_thinking · effort_values · default_effort · binds_thinking · none · minimal · low · medium · high · xhigh · max · MODEL ROUTEAction: ACT · TOOL_USE · TOOLCALLPROCESSOR · DISPATCH · RESEARCH · BASH · COMPUTER USE · FILE · GIT · PROCESS · EFFECT RECEIPT · TOOLEXECUTORObservation: NEXT ACTION · RESEARCH · OBSERVE · TOOL_RESULT · RESULT · ERROR · CODE · DOCUMENT · SOURCE · EVIDENCE · EXCERPTPlan: CURRENT STEP · OBJECTIVE · PLANSTEP · EXPECTED OUTCOME · REMAINING STEPS · COMPLETED · ABANDONED · REVISION · UPDATE_PLAN · /PLAN · REPLAN · VERIFY FAILED · LOW CONFIDENCEMemory: SYSTEM PROMPT · CONVERSATION · PROJECT MEMORY · RUNTIME RULES · TOOL_RESULT · CONVERSATIONCONTEXT · MESSAGES · CONTEXT WINDOW · COMPACTION · CHECKPOINT · SESSION · RECOVERY · SQLITE · STATE.JSON · PreCompact · PostCompact · SessionStart · SessionEndTools: TOOL SCHEMA · TOOL_USE · TOOLCALLPROCESSOR · DISPATCH · BASH · COMPUTER USE · EFFECT RECEIPT · TOOL_RESULT · BOUNDTOOLPLAN · GENERATION · HASH · TOOLEXECUTOR · SCOPE · POLICY · HOOK · APPROVAL · HITL · PreToolUse · PostToolUse · MCP CLIENT · PermissionRequestHook: DISPATCH · HOOK · PreToolUse · PostToolUse · UserPromptSubmit · PermissionRequest · PreCompact · PostCompact · SessionStart · SessionEnd · SubagentStart · SubagentStop · PreVerify · tool_request · tool_execution · llm_request · llm_execution · REQUEST TRANSFORM · next_call · WRAPPER · REGISTRY · PostVerify · StopReflexion: NEXT ACTION · EVIDENCE · REPLAN · VERIFY FAILED · LOW CONFIDENCE · HOOK · PreVerify · HYPOTHESES · CONFIDENCE · NEXT_ACTION_HINT · RECORD_REFLECTION · CONTRADICTION · REPAIR · VERIFY · PostVerify · Stop · COMPLETION · CONTINUE · TIME · TOKEN BUDGET · CANCELLATIONRollouts: SESSION · ROLLOUT · EXAMPLE · SEED · REPETITION · ATTEMPT · TRAJECTORY · REWARD · OUTCOME · TRACE · RUN IDData Curation: TASK SYNTHESIS · SEED GENERATION · PROXIMITY · RANKING · META-REVIEW · ELO TOURNAMENT · PILOT · DEDUPLICATION · SURVIVOR SELECTION · FROZEN POOLData Governance: PROVENANCE · LINEAGE · SCHEMA VERSION · SOURCE DIGEST · PRIVACY REVIEW · ALLOWLIST · IMMUTABLE RELEASE · SPLIT ISOLATION · SEALED HOLDOUTEvaluation: TRAJECTORY · OUTCOME · TRACE · EVALUATION HARNESS · TASK · RUBRIC · GRADER · VERIFIER · VALIDITY · FITNESS · REPLICATION · TASK COVERAGEScaffold Search: RECOVERY · FITNESS · CANDIDATE · HYPOTHESIS · MUTATION POLICY · BASELINE · FROZEN EVALUATOR · POLICY INJECTION · SEARCH SPACE · PROMOTION GATEPromotion: SEALED HOLDOUT · PROMOTION GATE · CRUCIBLE · PAIRED TRIALS · BOOTSTRAP BOUND · FROZEN CONTRACT · TASK-PACK HASH · TRAIN · SEALED TEST · SAFETY VETO · KEEP · REJECT · INVALID
Recorded evaluation · MCPMark PostgreSQL · 2026-07-04
Преди да промени каквото и да е, откри какво вече съществува.
Задачата: сигурност на ниво ред за социална услуга с пет таблици.
- ПроучванеПрочете петте таблици, четирите вече съществуващи помощни функции, изключения RLS и на петте и политиките, привилегиите и ролите.
- ДействиеЕдна транзакция: 20 политики и включен RLS, с повторно използване на 3 съществуващи помощни функции и добавяне на 3 нови.
- Проверка18 успешни, 0 неуспешни. И 13-те отговора от инструменти в 9 хода се върнаха без грешка.
Изход на верификатора, 18 реда (дословно)
- RLS enabled on users
- RLS enabled on channels
- RLS enabled on channel_moderators
- RLS enabled on posts
- RLS enabled on comments
- Users can update their own profile
- Users blocked from updating other users' profiles
- Channel owners can update their channels
- Non-owners blocked from updating channels
- Post authors can update their posts
- Channel moderators can update posts in their channels
- Unauthorized users blocked from updating posts
- Comment authors can update their comments
- Post authors can moderate comments on their posts
- Channel owners can add moderators
- Non-owners blocked from adding moderators
- Content visibility varies correctly based on user context
- Anonymous users can see 3 public user profiles (correct)
Минало изпълнение в конфигурирана sandbox среда за оценяване, а не работеща база данни или реален инцидент със сигурността. Броят редове преди политиките липсва в записа, затова не е показан. Публичен запис на изпълнението (meta.json, къмит 23e3428)
Прегледът на резултат и поправянето му (вдъхновено от Reflexion, в рамките на същата задача) е възможност на сегашната среда за изпълнение на GEODE. В този запис няма такава поправка: всеки отговор от инструмент се върна без грешка. Документация на средата за изпълнение (hook-system.md)
Моделът избира следващото действие; хостът пази границата на изпълнението.
Средата за изпълнение от влизането на заявка в сесия, през извикването на модела и проверките на правата за всяко предложено извикване на инструмент, до изпълнението, резултатите и записите. Изберете поток, за да се откроят само неговият път и номерираните стъпки.
Моделът избира следващото действие; средата за изпълнение проверява правата за инструментите и решава кога работата е завършена.
Външните експерименти Scaffold Search / SIL започнаха на 15 май 2026 г.
Пакетът geode-agent се инсталира от PyPI или от публичното хранилище и се стартира от собствения терминал. Достъпен е и като MCP сървър.
Заявка → извикване на модела
Заявка от терминала пристига през IPC, съставя се сесия и цикълът извиква модела със системния промпт, разговора и схемите на инструментите.
Потребител в терминалапоток от данни: prompt · cli.sockCLIPoller · IPC сокет
core/serverТънкият CLI изпраща заявката към IPC сокета на демона serve (~/.geode/cli.sock). REPL изпълнява същото съставяне на сесия в рамките на процеса.
CLIPoller · IPC сокет
core/serverправа · съставяне: create_session(IPC)SharedServices.create_sessionsupervised/services.pyВсяка връзка съставя сесия. Режимът задава нивото на HITL, бюджета от време и забранените инструменти и проектира BoundToolPlan върху избрания доставчик.
CLIPoller · IPC сокет
core/serverправа · съставяне: лента за всяка заявкаLaneQueue · session · globalsupervised/services.pyПреди изпълнението на заявка се заемат и лентата на сесията, и глобалната лента, което ограничава едновременните изпълнения.
SharedServices.create_session
supervised/services.pyправа · съставяне: ToolExecutor · AgenticLoopAgenticLoop · шест фазиcore/agent/loopИзгражда изпълнителя и цикъла като една двойка, която споделя hooks, MCP, умения и заключвания на ресурси.
LaneQueue · session · global
supervised/services.pyпоток от данни: arun(prompt)AgenticLoop · шест фазиcore/agent/loopИзпълнява един потребителски ход в шест фази: подготовка на входа, подготовка на извикването, извикване на доставчика, обработка на инструментите, наблюдение и уплътняване, прекратяване.
системен промпт · декларирани източници
core/agent/loopпоток от данни: системен промптadapter.acomplete · класове грешкиcore/llm/adaptersИзгражда се на всеки ход от декларирани източници, например избрани раздели и правила от GEODE.md. Петстепенната фасада на ContextAssembler се използва само при изрично извикване; тя не е входът на цикъла по подразбиране.
съобщения · ConversationContext
core/agent/loopпоток от данни: съобщенияadapter.acomplete · класове грешкиcore/llm/adaptersРазговорът и предишните резултати от инструменти се предават отделно от системния промпт.
BoundToolPlan · неизменим
core/tools/plan.pyправа · съставяне: схеми на инструментитеadapter.acomplete · класове грешкиcore/llm/adaptersМоделът вижда само инструментите от BoundToolPlan, обвързан с тази стъпка. Това е неизменима моментна снимка с поколение и хеш на съдържанието.
AgenticLoop · шест фази
core/agent/loopпоток от данни: StepSnapshot · заявкаadapter.acomplete · класове грешкиcore/llm/adaptersStepSnapshot фиксира модела, инструментите и идентификаторите за корелация на това извикване. LLM мидълуерът не може да подмени обвързан адаптер.
adapter.acomplete · класове грешки
core/llm/adaptersпоток от данни: HTTPSДоставчици на LLMИзвикването се прави от адаптер за всеки доставчик. Грешките се класифицират и се повтарят само в зададен лимит или прекратяват хода с причина за прекратяване.
adapter.acomplete · класове грешки
core/llm/adaptersпоток от данни: отговор · tool_useAgenticLoop · шест фазиcore/agent/loopСамо текст води към прекратяване; tool_use води към обработка на инструменти.
Права за инструментите → ефект → резултат
Предложение tool_use се изпълнява едва след като премине всички проверки; отказите, резултатите и грешките се връщат от изпълнителя и стават следващият вход на модела.
AgenticLoop · шест фази
core/agent/loopпоток от данни: чакаща партида · запис на рундаSQLite messages · state.jsonmemory/session_checkpoint.pyВ сесия с конфигурирани контролни точки (контролна точка и session id) предложената партида се записва преди изпълнението на който и да е инструмент и не се изпълнява, ако не може да бъде записана. Завършената партида се записва отново. Извикващите без контролна точка нямат тази гаранция.
AgenticLoop · шест фази
core/agent/loopпоток от данни: блокове tool_useToolCallProcessortool_executor/processor.pyПредложението на модела не е разрешение. Всяко извикване получава ToolContext, който носи идентичността на модела и адаптера на цикъла.
ToolCallProcessor
tool_executor/processor.pyпоток от данни: aexecuteобхват · политика · схемаtool_executor/executor.pyПроверява последователно обхвата на сесията, пренаписванията от мидълуера за заявки, политиката и схемата. Пренаписване, което понижава нивото на безопасност или класа на личните данни, се отказва.
BoundToolPlan · неизменим
core/tools/plan.pyправа · съставяне: разрешено · ниво на безопасностобхват · политика · схемаtool_executor/executor.pyИзпълнимите обработчици и нивата на безопасност идват от BoundToolPlan, проектиран за сесията.
PreToolUse · PostToolUse
tool_executor/executor.pyправа · съставяне: PreToolUse · PostToolUseHookRegistry · решенияcore/hooksПубличните hooks решават за блокиране, пренаписване на аргументи или искане на разрешение, а след пренаписване проверките за обхват, политика и схема се изпълняват отново. След изпълнението hook може да добави контекст или да задържи резултата.
одобрение · HITL
tool_executor/executor.pyправа · съставяне: искане за одобрениеПотребител в терминалаВ IPC сесия искането за одобрение се препраща към тънкия CLI. Режимите без човек прилагат по подразбиране политиката за отказ; единственото изключение е computer use в DAEMON, когато операторът го разреши отделно (иначе е блокиран).
tool_executor/executor.pyотказ преди изпълнение: отказано преди изпълнениеToolCallProcessor
tool_executor/processor.pyОтказ за обхват, политика или схема, блокиране от PreToolUse или отказано одобрение се връщат като резултат с грешка без диспечиране. В този случай не е започнал никакъв ефект от това извикване.
effect receipt
tool_executor/executor.pyпоток от данни: приемане на ефекта · потвърждаванеEffectReceiptStorememory/effect_receipts.pyЕфекти като промени във файлове, изходящи съобщения или административни действия се приемат, преди да бъдат изпълнени. Несигурен изход не се изпълнява отново; изисква се съгласуване.
заключване на ресурси · диспечиране
tool_executor/executor.pyпоток от данни: извикване на обработчикобработчици на инструменти · bash · computercore/toolsДиспечира към обвързания обработчик, след като заключи неговите ключове на ресурси. Извикване, прекъснато при изтичане на срока, може все още да работи навън.
заключване на ресурси · диспечиране
tool_executor/executor.pyпоток от данни: MCP извикванеMCPServerManagercore/mcp/manager.pyИзвикват се само MCP инструменти с декларирана политика за ресурсите.
MCPServerManager
core/mcp/manager.pyпоток от данни: tools/callMCP сървъриКаталогът на сървърите идва от глобалните настройки и от настройките на проекта, преминали проверката за доверие; тази проверка се отнася само за записите на проекта. MCP мениджърът прилага своята политика за разширения и ресурси.
обработчици на инструменти · bash · computer
core/toolsпоток от данни: промени във файлове · git · процесиФайлове · git · процесиИзпълнените промени остават като външно състояние. Контролната точка възстановява само разговора и не ги отменя.
tool_executor/executor.pyпоток от данни: резултат · грешка след диспечиранеToolCallProcessor
tool_executor/processor.pyСлед диспечирането нормалните резултати и грешките (включително изтекли срокове и несигурни изходи) се връщат през PostToolUse. Грешка или изтекъл срок не означава, че външната работа е спряла или е отменена.
ToolCallProcessor
tool_executor/processor.pyпоток от данни: tool_resultсъобщения · ConversationContextcore/agent/loopРезултатите, отказите и грешките еднакво се сериализират като tool_result и стават съобщения в следващия вход на модела.
ToolCallProcessor
tool_executor/processor.pyзапис · наблюдение: извикване · наблюдение на резултатаSessionTimeline · append-onlyobservability/session_timeline.pyЗаписва извикването и резултата му (ok или грешка) в хронологията, включително извикванията, отказани преди изпълнение. Записът е наблюдение; той не доказва, че външен ефект е започнал или е успял.
Записи · възстановяване · завършване
Контролната точка, хронологията и редовете с доказателства се записват отделно. Няма обща транзакция, а контролната точка възстановява само разговора.
AgenticLoop · шест фази
core/agent/loopпоток от данни: чакаща партида · запис на рундаSQLite messages · state.jsonmemory/session_checkpoint.pyВ сесия с конфигурирани контролни точки (контролна точка и session id) предложената партида се записва преди изпълнението на който и да е инструмент и не се изпълнява, ако не може да бъде записана. Завършената партида се записва отново. Извикващите без контролна точка нямат тази гаранция.
SQLite messages · state.json
memory/session_checkpoint.pyпоток от данни: възстановяване при продължаванеAgenticLoop · шест фазиcore/agent/loopЕдин път за възстановяване връща съобщенията, когнитивното състояние и броячите на защитите. Локалният за процеса TaskGraph не се възстановява.
AgenticLoop · шест фази
core/agent/loopзапис · наблюдение: запис на ходаSessionTimeline · append-onlyobservability/session_timeline.pyИстория на изпълнението само с добавяне, която никога не се възпроизвежда като състояние.
AgenticLoop · шест фази
core/agent/loopправа · съставяне: проверка на завършванетоverify_turn_asynccore/agent/verify.pyПредложението на модела да спре става завършване само чрез Verify.
verify_turn_async
core/agent/verify.pyправа · съставяне: PostVerify · StopHookRegistry · решенияcore/hooksРешенията на публичните hooks определят дали да се продължи с поправка, а поправките стават само в зададен бюджет (по подразбиране два).
AgenticLoop · шест фази
core/agent/loopзапис · наблюдение: редове с доказателства · без гаранцияEvidenceLedger · JSONLagent/evidence_ledger.pyДиагностични редове със заличени данни. Хешовете служат за корелация; редът не доказва, че ефект е настъпил, и не се записва в една транзакция с хронологията или контролната точка.
AgenticLoop · шест фази
core/agent/loopзапис · наблюдение: когнитивни · събития от жизнения цикълHookSystem · наблюдениеcore/hooksНаблюдаващите hooks получават и записват събития; те не решават изпълнението.
Други входни пътища
Месинджърите влизат като DAEMON сесии на демона serve; run_agent на външен MCP хост влиза в отделно изграден headless еднократен цикъл.
Канал в месинджърпоток от данни: съобщение от каналpoller-и за месинджъри
core/serverPoller-ите на демона serve обработват само съобщения от обвързани канали.
poller-и за месинджъри
core/serverправа · съставяне: create_session(DAEMON)SharedServices.create_sessionsupervised/services.pyРежим без човек за одобрение: прилагат се политиката за отказ по подразбиране и бюджет от време. Само computer use може да бъде разрешен отделно от оператор; без това остава блокиран.
poller-и за месинджъри
core/serverпоток от данни: arun(message)AgenticLoop · шест фазиcore/agent/loopЕдна нишка пази един фиксиран session id и продължава една верига от контролни точки.
Външен MCP хостпоток от данни: run_agent(prompt)run_agent · еднократно
core/mcp_server.pyВъншен MCP хост извиква GEODE като инструмент.
run_agent · еднократно
core/mcp_server.pyпоток от данни: headless еднократен цикълAgenticLoop · шест фазиcore/agent/loopОтделно изграден headless изпълнител и цикъл, които заобикалят SharedServices. Списъкът за отказ по подразбиране се прилага без промяна, затова инструменти като run_bash, delegate_task и computer се премахват; изключението за computer use в DAEMON тук не съществува.
Всички връзки с еднаква дебелина. Изберете поток, за да се откроят само неговият път и номерираните стъпки.
- Плътна · посоката, в която текат заявките, съобщенията и резултатите от инструментите
- Прекъсната · съставяне на сесията, права или вердикт; не е път на данните
- Дълга щрих-пунктирна · записи и наблюдение; никога не се възпроизвеждат като състояние
- Къса прекъсната · отказ преди изпълнение, без ефект
- Дебела черна линия · избраният поток; числата показват реда
- Кутия · граница, която притежава код, с пътя до изходния код в заглавието
- Вътрешен етикет · компонент в тази граница
- Прекъсната кутия · извън процеса на средата за изпълнение
- Оранжев контур · където решава модел
- Цикъл на изпълнение
- Права · вердикти
- Хранилища за записи
- Вход · връзка · изпълнение
Начертани са само връзките, чиито извиквания са потвърдени. Петстепенната фасада на ContextAssembler, TaskGraph и изследователските експерименти като Jev, SIL и Crucible не са по този път на изпълнение. Асинхронната отмяна не спира вече започнала синхронна работа и не отменя настъпили ефекти.
Поддържани модели · по доставчици
Изборите в каталога на кода и доставените стойности по подразбиране, а не списък, в който всеки модел е преминал реално API извикване. Конфигурираните резервни вериги са празни по подразбиране, а точните идентификатори никога не се обновяват автоматично до по-нови версии.
Anthropic
API
- ОсновенClaude Opus 5.5
claude-opus-5-5По подразбиране - ВториченClaude Sonnet 5
claude-sonnet-5По подразбиране - ИкономиченClaude Haiku 4.5
claude-haiku-4-5-20251001По подразбиране
Покажи всички 12 идентификатора от каталога
API
claude-fable-5-1claude-opus-5-5по подразбиранеclaude-opus-5claude-sonnet-5по подразбиранеclaude-haiku-4-5-20251001по подразбиранеclaude-fable-5claude-opus-4-8claude-opus-4-7claude-opus-4-6claude-opus-4-5claude-sonnet-4-6claude-sonnet-4-5-20250929
Кодът отхвърля пътя през OAuth с абонамент.
- ОсновенClaude Opus 5.5
OpenAI
API · абонамент за Codex
- По подразбиране за API и CodexGPT-6 Sol
gpt-6-solПо подразбиране
Покажи всички 11 идентификатора от каталога
API · абонамент за Codex
gpt-6-astragpt-6-solпо подразбиранеgpt-6-lunagpt-5.6-solgpt-5.6-terragpt-5.6-luna
Само API
gpt-5.5gpt-5.3-codexgpt-5.4gpt-5.4-minigpt-5.4-nano
Два пътя за достъп до един доставчик; каталогът определя кои пътища позволява всеки модел.
- По подразбиране за API и CodexGPT-6 Sol
Z.ai / GLM
PAYG
- По подразбиранеGLM-5.3
glm-5.3По подразбиране
Покажи всички 9 идентификатора от каталога
PAYG
glm-5.3по подразбиранеglm-5.3-flashglm-5.3-flashxglm-5.2glm-5.1glm-5glm-4.7glm-4.7-flashxglm-4.7-flash
Кодът не допуска пътя GLM Coding Plan.
- По подразбиранеGLM-5.3
OpenRouter
Услуга за маршрутизиране
- ИзбирачFree (smoke)
openrouter/openrouter/freeРутер - ИзбирачAuto (variable)
openrouter/openrouter/autoРутер
Избори на рутера, а не един фиксиран модел. Изрично конфигурирани идентификатори също могат да се запазят.
- ИзбирачFree (smoke)
TypeSafe / Jev
Само за решения · отделно от генерирането на текст
- Директно
jev-1.13.0Само за решения - Чрез OpenRouter
typesafe/jev-1.13Само за решения
Незадължителен адаптер, който само прави преценки; не е основен модел за генериране на текст. Машината за преценка по подразбиране е llm, а Jev трябва да бъде избран. Собствените конфигурации на изследването на Jev следват записите в изгледа Jev.
- Директно
ИзточникGEODE main 373d420Публичен къмит 7 октомври 2026 г. · проверено 8 октомври 2026 г.
Експерименти
Модели и пътища, както са записани тогава, а не текущите стойности по подразбиране или пълен списък за съвместимост.
Бенчмарк доклад за GEODE
July 31, 2026
- GEODEGPT-5.6 Sol
gpt-5.6-solАбонамент за OpenAI · high
- GEODEGPT-5.6 Sol
Terminal-Bench 2.1 · сдвоена спецификация с Harbor 0.22.0
August 27, 2026
- GEODE · native CodexGPT-5.6 Sol
gpt-5.6-solабонамент · max
Замразена спецификация; не всеки планиран опит е станал валиден резултат.
- GEODE · native CodexGPT-5.6 Sol
Архивирано изпълнение на SIL run-2606-broken-tool-use
- Целево скелеGPT-5.5
gpt-5.5openai-codex - Одитор · съдияClaude Opus 4.8
claude-opus-4-8PAYG
Запис на отделни роли, а не две взаимозаменяеми стойности по подразбиране.
- Целево скелеGPT-5.5