GEODE
Autonomous Agent Harness
Van observatie naar de volgende actie.
Een lokale harness voor autonome agents, waaraan onderzoek, bestandswerk en geplande taken kunnen worden overgedragen.
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
Voordat het iets veranderde, vond het wat er al was.
De taak: beveiliging op rijniveau voor een sociaal netwerk met vijf tabellen.
- OnderzoekGelezen: de vijf tabellen, vier al aanwezige hulpfuncties, RLS uit op alle vijf, en de policy’s, privileges en rollen.
- UitvoeringEén transactie: 20 policy’s en RLS aan, met hergebruik van 3 bestaande hulpfuncties en 3 nieuwe functies.
- Verificatie18 geslaagd, 0 mislukt. Alle 13 toolantwoorden in 9 beurten kwamen zonder fout terug.
Uitvoer van de verifier, 18 regels (letterlijk)
- 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)
Een eerdere run in een geconfigureerde evaluatiesandbox, geen live database en geen echt beveiligingsincident. Aantallen rijen vóór de policy’s staan niet in het log en worden dus niet getoond. Openbaar runlog (meta.json, commit 23e3428)
Een resultaat nalopen en herstellen (geïnspireerd op Reflexion, binnen dezelfde taak) is een vermogen van de huidige GEODE-runtime. In dit log komt zo’n herstel niet voor: elk toolantwoord kwam zonder fout terug. Runtimedocumentatie (hook-system.md)
Het model kiest de volgende actie; de host bewaakt de uitvoeringsgrens.
De runtime van een verzoek dat een sessie binnenkomt, via de modelaanroep en de bevoegdheidscontroles op elke voorgestelde toolaanroep, tot uitvoering, resultaten en vastleggingen. Bij het kiezen van een stroom wordt alleen het pad daarvan gemarkeerd, met genummerde stappen.
Het model kiest de volgende actie; de runtime controleert toolrechten en bepaalt wanneer het werk voltooid is.
Externe experimenten Scaffold Search / SIL begonnen op May 15, 2026
Het pakket geode-agent wordt geïnstalleerd via PyPI of de openbare repository en in de eigen terminal uitgevoerd. Het is ook bereikbaar als MCP-server.
Verzoek → modelaanroep
Een terminalverzoek komt binnen via IPC, een sessie wordt samengesteld en de lus roept het model aan met de systeemprompt, het gesprek en de toolschema’s.
Terminalgebruikerdatastroom: prompt · cli.sockCLIPoller · IPC-socket
core/serverDe thin CLI stuurt het verzoek naar de IPC-socket van de serve-daemon (~/.geode/cli.sock). De REPL voert dezelfde sessiesamenstelling binnen het proces uit.
CLIPoller · IPC-socket
core/serverbevoegdheid · samenstelling: create_session(IPC)SharedServices.create_sessionsupervised/services.pyElke verbinding stelt een sessie samen. De modus bepaalt het HITL-niveau, het tijdbudget en de geweigerde tools, en projecteert het BoundToolPlan op de gekozen provider.
CLIPoller · IPC-socket
core/serverbevoegdheid · samenstelling: lane per verzoekLaneQueue · session · globalsupervised/services.pyVoordat een verzoek wordt uitgevoerd, worden de sessielane en de globale lane allebei vastgehouden, wat gelijktijdige runs beperkt.
SharedServices.create_session
supervised/services.pybevoegdheid · samenstelling: ToolExecutor · AgenticLoopAgenticLoop · zes fasencore/agent/loopBouwt de uitvoerder en de lus als één paar dat de hooks, MCP, skills en resourcelocks deelt.
LaneQueue · session · global
supervised/services.pydatastroom: arun(prompt)AgenticLoop · zes fasencore/agent/loopVoert één gebruikersbeurt uit in zes fasen: invoer voorbereiden, de aanroep voorbereiden, de provider aanroepen, tools verwerken, observeren en comprimeren, beëindigen.
systeemprompt · gedeclareerde bronnen
core/agent/loopdatastroom: systeempromptadapter.acomplete · foutklassencore/llm/adaptersWordt elke beurt opgebouwd uit gedeclareerde bronnen, zoals geselecteerde secties en regels uit GEODE.md. De vijflaagse facade van ContextAssembler wordt alleen bij een expliciete aanroep gebruikt; ze is niet de invoer van de standaardlus.
berichten · ConversationContext
core/agent/loopdatastroom: berichtenadapter.acomplete · foutklassencore/llm/adaptersHet gesprek en eerdere toolresultaten worden los van de systeemprompt meegestuurd.
BoundToolPlan · onveranderlijk
core/tools/plan.pybevoegdheid · samenstelling: toolschema’sadapter.acomplete · foutklassencore/llm/adaptersAlleen de tools van het BoundToolPlan dat aan deze stap is gekoppeld, zijn zichtbaar voor het model. Het is een onveranderlijke snapshot met een generatie en een contenthash.
AgenticLoop · zes fasen
core/agent/loopdatastroom: StepSnapshot · verzoekadapter.acomplete · foutklassencore/llm/adaptersDe StepSnapshot legt het model, de tools en de correlatie-ID’s van deze aanroep vast. LLM-middleware kan een gekoppelde adapter niet verwisselen.
adapter.acomplete · foutklassen
core/llm/adaptersdatastroom: HTTPSLLM-providersEen adapter per provider doet de aanroep. Fouten worden geclassificeerd en alleen binnen een vaste limiet opnieuw geprobeerd, of beëindigen de beurt met een beëindigingsreden.
adapter.acomplete · foutklassen
core/llm/adaptersdatastroom: antwoord · tool_useAgenticLoop · zes fasencore/agent/loopAlleen tekst gaat naar beëindiging; tool_use gaat naar toolverwerking.
Toolbevoegdheid → effect → resultaat
Een tool_use-voorstel draait pas als elke controle is doorstaan; weigeringen, resultaten en fouten komen allemaal terug van de uitvoerder en worden de volgende modelinvoer.
AgenticLoop · zes fasen
core/agent/loopdatastroom: openstaande batch · rondeopslagSQLite messages · state.jsonmemory/session_checkpoint.pyIn een sessie met geconfigureerde checkpointing (een checkpoint en een session id) wordt de voorgestelde batch opgeslagen voordat er een tool draait, en draait de batch niet als hij niet kan worden opgeslagen. De voltooide batch wordt opnieuw opgeslagen. Aanroepers zonder checkpoint krijgen deze garantie niet.
AgenticLoop · zes fasen
core/agent/loopdatastroom: tool_use-blokkenToolCallProcessortool_executor/processor.pyEen voorstel van het model geeft geen recht. Elke aanroep krijgt een ToolContext met de model- en adapteridentiteit van de lus.
ToolCallProcessor
tool_executor/processor.pydatastroom: aexecutereikwijdte · policy · schematool_executor/executor.pyControleert achtereenvolgens de sessiereikwijdte, herschrijvingen door request-middleware, policy en schema. Een herschrijving die het veiligheidsniveau of de klasse persoonsgegevens verlaagt, wordt geweigerd.
BoundToolPlan · onveranderlijk
core/tools/plan.pybevoegdheid · samenstelling: toegestaan · veiligheidsniveaureikwijdte · policy · schematool_executor/executor.pyUitvoerbare handlers en veiligheidsniveaus komen uit het BoundToolPlan dat voor de sessie is geprojecteerd.
PreToolUse · PostToolUse
tool_executor/executor.pybevoegdheid · samenstelling: PreToolUse · PostToolUseHookRegistry · beslissingencore/hooksPublieke hooks beslissen over blokkade, herschrijving van argumenten of een verzoek om rechten, en na een herschrijving volgen opnieuw controles op reikwijdte, policy en schema. Na de uitvoering kan een hook context toevoegen of het resultaat achterhouden.
goedkeuring · HITL
tool_executor/executor.pybevoegdheid · samenstelling: goedkeuringsverzoekTerminalgebruikerIn een IPC-sessie wordt het goedkeuringsverzoek doorgestuurd naar de thin CLI. Modi zonder mens passen standaard de weigerpolicy toe; de enige uitzondering is computer use in DAEMON, wanneer een operator dat apart inschakelt (anders geblokkeerd).
tool_executor/executor.pyweigering vóór uitvoering: geweigerd vóór uitvoeringToolCallProcessor
tool_executor/processor.pyEen afwijzing op reikwijdte, policy of schema, een PreToolUse-blokkade of een geweigerde goedkeuring komt zonder dispatch terug als foutresultaat. In dat geval is geen effect van deze aanroep begonnen.
effect receipt
tool_executor/executor.pydatastroom: effect toelaten · vastleggenEffectReceiptStorememory/effect_receipts.pyEffecten zoals bestandswijzigingen, uitgaande berichten of beheeracties worden toegelaten voordat ze draaien. Een onzekere uitkomst wordt niet opnieuw uitgevoerd; die vraagt om afstemming.
resourcelock · dispatch
tool_executor/executor.pydatastroom: handleraanroeptoolhandlers · bash · computercore/toolsStuurt door naar de gekoppelde handler na het vergrendelen van diens resourcesleutels. Een aanroep die bij de deadline is afgebroken, kan buiten nog doorlopen.
resourcelock · dispatch
tool_executor/executor.pydatastroom: MCP-aanroepMCPServerManagercore/mcp/manager.pyAlleen MCP-tools met een gedeclareerde resourcepolicy worden aangeroepen.
MCPServerManager
core/mcp/manager.pydatastroom: tools/callMCP-serversDe servercatalogus komt uit globale instellingen en uit projectinstellingen die de vertrouwenscontrole hebben doorstaan; die controle geldt alleen voor projectvermeldingen. De MCP-manager past zijn extensie- en resourcepolicy toe.
toolhandlers · bash · computer
core/toolsdatastroom: wijzigingen in bestanden · git · processenBestanden · git · processenUitgevoerde wijzigingen blijven bestaan als externe toestand. Het checkpoint herstelt alleen het gesprek en draait ze niet terug.
tool_executor/executor.pydatastroom: resultaat · fout na dispatchToolCallProcessor
tool_executor/processor.pyNa de dispatch komen normale resultaten en fouten (inclusief time-outs en onzekere uitkomsten) terug via PostToolUse. Een fout of time-out betekent niet dat het externe werk is gestopt of teruggedraaid.
ToolCallProcessor
tool_executor/processor.pydatastroom: tool_resultberichten · ConversationContextcore/agent/loopResultaten, weigeringen en fouten worden allemaal geserialiseerd als tool_result en worden berichten in de volgende modelinvoer.
ToolCallProcessor
tool_executor/processor.pyvastlegging · observatie: aanroep · resultaatobservatieSessionTimeline · append-onlyobservability/session_timeline.pySchrijft de aanroep en het resultaat (ok of fout) naar de timeline, ook aanroepen die vóór uitvoering zijn geweigerd. De vastlegging is observatie; ze bewijst niet dat een extern effect begon of slaagde.
Vastleggingen · herstel · voltooiing
Het checkpoint, de timeline en de bewijsrijen worden apart geschreven. Er is geen gedeelde transactie, en het checkpoint herstelt alleen het gesprek.
AgenticLoop · zes fasen
core/agent/loopdatastroom: openstaande batch · rondeopslagSQLite messages · state.jsonmemory/session_checkpoint.pyIn een sessie met geconfigureerde checkpointing (een checkpoint en een session id) wordt de voorgestelde batch opgeslagen voordat er een tool draait, en draait de batch niet als hij niet kan worden opgeslagen. De voltooide batch wordt opnieuw opgeslagen. Aanroepers zonder checkpoint krijgen deze garantie niet.
SQLite messages · state.json
memory/session_checkpoint.pydatastroom: herstel bij hervattingAgenticLoop · zes fasencore/agent/loopEén herstelpad brengt berichten, cognitieve toestand en guard-tellers terug. De proceslokale TaskGraph wordt niet hersteld.
AgenticLoop · zes fasen
core/agent/loopvastlegging · observatie: beurtlogSessionTimeline · append-onlyobservability/session_timeline.pyEen append-only uitvoeringsgeschiedenis, nooit als toestand opnieuw afgespeeld.
AgenticLoop · zes fasen
core/agent/loopbevoegdheid · samenstelling: voltooiingscontroleverify_turn_asynccore/agent/verify.pyHet voorstel van het model om te stoppen wordt pas via Verify een voltooiing.
verify_turn_async
core/agent/verify.pybevoegdheid · samenstelling: PostVerify · StopHookRegistry · beslissingencore/hooksPublieke hookbeslissingen bepalen of er met een herstel wordt doorgegaan, en herstel gebeurt alleen binnen een vast budget (standaard twee).
AgenticLoop · zes fasen
core/agent/loopvastlegging · observatie: bewijsrijen · best-effortEvidenceLedger · JSONLagent/evidence_ledger.pyGeredigeerde diagnostische rijen. Hashes dienen voor correlatie; een rij bewijst niet dat een effect plaatsvond, en wordt niet in één transactie met de timeline of het checkpoint geschreven.
AgenticLoop · zes fasen
core/agent/loopvastlegging · observatie: cognitieve · levenscycluseventsHookSystem · observatiecore/hooksObservatiehooks ontvangen en registreren events; ze beslissen niet over uitvoering.
Andere ingangen
Messengers komen binnen als DAEMON-sessies van de serve-daemon; de run_agent van een externe MCP-host komt in een apart gebouwde headless eenmalige lus.
Messengerkanaaldatastroom: kanaalberichtmessenger-pollers
core/serverDe pollers van de serve-daemon verwerken alleen berichten uit gekoppelde kanalen.
messenger-pollers
core/serverbevoegdheid · samenstelling: create_session(DAEMON)SharedServices.create_sessionsupervised/services.pyEen modus zonder mens om goed te keuren: de standaard weigerpolicy en een tijdbudget gelden. Alleen computer use kan door een operator apart worden ingeschakeld; anders blijft het geblokkeerd.
messenger-pollers
core/serverdatastroom: arun(message)AgenticLoop · zes fasencore/agent/loopEen thread houdt één vaste session id en zet één checkpointketen voort.
Externe MCP-hostdatastroom: run_agent(prompt)run_agent · eenmalige run
core/mcp_server.pyEen externe MCP-host roept GEODE aan als tool.
run_agent · eenmalige run
core/mcp_server.pydatastroom: headless eenmalige lusAgenticLoop · zes fasencore/agent/loopEen apart gebouwde headless uitvoerder en lus die SharedServices omzeilen. De standaard denylist geldt ongewijzigd, dus tools zoals run_bash, delegate_task en computer vallen weg; de computer use-uitzondering van DAEMON bestaat hier niet.
Alle verbindingen even zwaar. Kies een stroom om alleen het pad daarvan te markeren, met genummerde stappen.
- Doorgetrokken · de richting waarin verzoeken, berichten en toolresultaten stromen
- Gestreept · sessiesamenstelling, bevoegdheid of oordeel; geen datapad
- Lange streep-punt · vastleggingen en observatie; nooit als toestand opnieuw afgespeeld
- Kort gestreept · weigering vóór uitvoering, geen effect
- Dikke zwarte lijn · de gekozen stroom; nummers geven de volgorde
- Vak · een grens die code bezit, met het bronpad in de kop
- Binnenchip · een component binnen die grens
- Gestreept vak · buiten het runtimeproces
- Oranje omlijning · waar een model beslist
- Uitvoeringslus
- Bevoegdheid · oordelen
- Opslag van vastleggingen
- Ingang · verbinding · uitvoering
Alleen verbindingen waarvan de aanroepen zijn bevestigd, zijn getekend. De vijflaagse facade van ContextAssembler, de TaskGraph en onderzoeksexperimenten zoals Jev, SIL en Crucible liggen niet op dit runtimepad. Asynchrone annulering stopt geen synchroon werk dat al is begonnen en draait opgetreden effecten niet terug.
Ondersteunde modellen · per provider
De keuzes in de catalogus en de meegeleverde standaardwaarden van de code, geen lijst waarin elk model een live API-aanroep heeft doorstaan. Geconfigureerde fallbackketens zijn standaard leeg, en exacte ID’s worden nooit automatisch naar nieuwere versies bijgewerkt.
Anthropic
API
- PrimairClaude Opus 5.5
claude-opus-5-5Standaard - SecundairClaude Sonnet 5
claude-sonnet-5Standaard - VoordeligClaude Haiku 4.5
claude-haiku-4-5-20251001Standaard
Alle 12 catalogus-ID’s tonen
API
claude-fable-5-1claude-opus-5-5standaardclaude-opus-5claude-sonnet-5standaardclaude-haiku-4-5-20251001standaardclaude-fable-5claude-opus-4-8claude-opus-4-7claude-opus-4-6claude-opus-4-5claude-sonnet-4-6claude-sonnet-4-5-20250929
De code weigert de OAuth-route via het abonnement.
- PrimairClaude Opus 5.5
OpenAI
API · Codex-abonnement
- Standaard voor API en CodexGPT-6 Sol
gpt-6-solStandaard
Alle 11 catalogus-ID’s tonen
API · Codex-abonnement
gpt-6-astragpt-6-solstandaardgpt-6-lunagpt-5.6-solgpt-5.6-terragpt-5.6-luna
Alleen API
gpt-5.5gpt-5.3-codexgpt-5.4gpt-5.4-minigpt-5.4-nano
Twee toegangsroutes naar één provider; de catalogus bepaalt welke routes elk model toestaat.
- Standaard voor API en CodexGPT-6 Sol
Z.ai / GLM
PAYG
- StandaardGLM-5.3
glm-5.3Standaard
Alle 9 catalogus-ID’s tonen
PAYG
glm-5.3standaardglm-5.3-flashglm-5.3-flashxglm-5.2glm-5.1glm-5glm-4.7glm-4.7-flashxglm-4.7-flash
De code laat de route via GLM Coding Plan niet toe.
- StandaardGLM-5.3
OpenRouter
Routeringsdienst
- KiezerFree (smoke)
openrouter/openrouter/freeRouter - KiezerAuto (variable)
openrouter/openrouter/autoRouter
Selecties door de router, niet één vast model. Expliciet geconfigureerde ID’s kunnen ook behouden blijven.
- KiezerFree (smoke)
TypeSafe / Jev
Alleen beslissingen · los van tekstgeneratie
- Rechtstreeks
jev-1.13.0Alleen beslissing - Via OpenRouter
typesafe/jev-1.13Alleen beslissing
Een optionele adapter die alleen oordelen velt; het is geen root-model voor tekstgeneratie. De standaard oordeelsengine is llm, en Jev moet worden gekozen. De configuraties van de Jev-studie zelf volgen de vastleggingen in de Jev-weergave.
- Rechtstreeks
BronGEODE main 373d420Openbare commit: October 7, 2026 · gecontroleerd: October 8, 2026
Experimenten
Modellen en routes zoals destijds vastgelegd, geen actuele standaardwaarden of volledige compatibiliteitslijst.
GEODE-benchmarkrapport
July 31, 2026
- GEODEGPT-5.6 Sol
gpt-5.6-solOpenAI-abonnement · high
- GEODEGPT-5.6 Sol
Terminal-Bench 2.1 · gepaarde specificatie voor Harbor 0.22.0
August 27, 2026
- GEODE · native CodexGPT-5.6 Sol
gpt-5.6-solabonnement · max
Een bevroren specificatie; niet elke geplande poging werd een geldig resultaat.
- GEODE · native CodexGPT-5.6 Sol
Gearchiveerde SIL-run run-2606-broken-tool-use
- DoelscaffoldGPT-5.5
gpt-5.5openai-codex - Auditor · beoordelaarClaude Opus 4.8
claude-opus-4-8PAYG
Een vastlegging van gescheiden rollen, geen twee uitwisselbare standaardwaarden.
- DoelscaffoldGPT-5.5