GEODE
Autonomous Agent Harness
Från observation till nästa handling.
En lokal harness för autonoma agenter som kan anförtros research, filarbete och schemalagda uppgifter.
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
Innan den ändrade något hittade den det som redan fanns.
Uppgiften: säkerhet på radnivå för en social medietjänst med fem tabeller.
- UndersökningLäste de fem tabellerna, fyra hjälpfunktioner som redan fanns, RLS avslaget på alla fem samt policyer, privilegier och roller.
- HandlingEn transaktion: 20 policyer och RLS påslaget, med 3 befintliga hjälpfunktioner återanvända och 3 funktioner tillagda.
- Verifiering18 godkända, 0 underkända. Alla 13 verktygssvar under 9 turer kom tillbaka utan fel.
Utdata från verifieraren, 18 rader (ordagrant)
- 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)
En tidigare körning i en konfigurerad utvärderingssandlåda, inte en livedatabas eller en verklig säkerhetsincident. Antalet rader före policyerna finns inte i loggen, så inga visas. Offentlig körlogg (meta.json, commit 23e3428)
Att granska ett resultat och reparera det (inspirerat av Reflexion, inom samma uppgift) är en funktion i den nuvarande GEODE-runtimen. Ingen sådan reparation förekommer i denna logg: alla verktygssvar kom tillbaka utan fel. Runtime-dokumentation (hook-system.md)
Modellen väljer nästa handling; värden håller exekveringsgränsen.
Runtimen från att en förfrågan kommer in i en session, via modellanropet och behörighetskontrollerna av varje föreslaget verktygsanrop, till exekvering, resultat och loggar. När ett flöde väljs markeras bara dess väg, med numrerade steg.
Modellen väljer nästa handling; runtimen kontrollerar verktygsbehörigheter och avgör när arbetet är slutfört.
Externa experiment med Scaffold Search / SIL inleddes 15 maj 2026
Paketet geode-agent installeras från PyPI eller det offentliga repositoryt och körs från den egna terminalen. Det kan också nås som MCP-server.
Förfrågan → modellanrop
En terminalförfrågan kommer in via IPC, en session sätts samman och loopen anropar modellen med systemprompt, konversation och verktygsscheman.
Terminalanvändaredataflöde: prompt · cli.sockCLIPoller · IPC-socket
core/serverDen tunna CLI:n skickar förfrågan till serve-daemonens IPC-socket (~/.geode/cli.sock). REPL:en kör samma sessionssammansättning inom processen.
CLIPoller · IPC-socket
core/serverbehörighet · sammansättning: create_session(IPC)SharedServices.create_sessionsupervised/services.pyVarje anslutning sätter samman en session. Läget anger HITL-nivå, tidsbudget och nekade verktyg och projicerar BoundToolPlan på den valda leverantören.
CLIPoller · IPC-socket
core/serverbehörighet · sammansättning: lane per förfråganLaneQueue · session · globalsupervised/services.pyInnan en förfrågan körs hålls både sessionens lane och den globala lanen, vilket begränsar samtidiga körningar.
SharedServices.create_session
supervised/services.pybehörighet · sammansättning: ToolExecutor · AgenticLoopAgenticLoop · sex fasercore/agent/loopBygger executorn och loopen som ett par som delar hooks, MCP, skills och resurslås.
LaneQueue · session · global
supervised/services.pydataflöde: arun(prompt)AgenticLoop · sex fasercore/agent/loopKör en användartur i sex faser: förberedelse av indata, förberedelse av anrop, anrop till leverantören, verktygsbearbetning, observation och komprimering, avslut.
systemprompt · deklarerade källor
core/agent/loopdataflöde: systempromptadapter.acomplete · felklassercore/llm/adaptersByggs varje tur från deklarerade källor som utvalda avsnitt och regler i GEODE.md. ContextAssemblers fasad i fem nivåer används bara när den anropas explicit; den är inte standardloopens indata.
meddelanden · ConversationContext
core/agent/loopdataflöde: meddelandenadapter.acomplete · felklassercore/llm/adaptersKonversationen och tidigare verktygsresultat skickas separat från systemprompten.
BoundToolPlan · oföränderlig
core/tools/plan.pybehörighet · sammansättning: verktygsschemanadapter.acomplete · felklassercore/llm/adaptersBara verktygen i den BoundToolPlan som är bunden till detta steg är synliga för modellen. Den är en oföränderlig ögonblicksbild med en generation och en innehållshash.
AgenticLoop · sex faser
core/agent/loopdataflöde: StepSnapshot · förfråganadapter.acomplete · felklassercore/llm/adaptersStepSnapshot låser detta anrops modell, verktyg och korrelations-id:n. LLM-middleware kan inte byta ut en bunden adapter.
adapter.acomplete · felklasser
core/llm/adaptersdataflöde: HTTPSLLM-leverantörerEn adapter per leverantör gör anropet. Fel klassificeras och görs om bara inom en fastställd gräns, eller avslutar turen med en avslutsorsak.
adapter.acomplete · felklasser
core/llm/adaptersdataflöde: svar · tool_useAgenticLoop · sex fasercore/agent/loopEnbart text går till avslut; tool_use går till verktygsbearbetning.
Verktygsbehörighet → effekt → resultat
Ett tool_use-förslag körs först när alla kontroller har passerats; nekanden, resultat och fel returneras alla från executorn och blir nästa modellindata.
AgenticLoop · sex faser
core/agent/loopdataflöde: väntande batch · rundsparningSQLite messages · state.jsonmemory/session_checkpoint.pyI en session med konfigurerad checkpointing (en checkpoint och ett sessions-id) sparas den föreslagna batchen innan något verktyg körs, och batchen körs inte om den inte kan sparas. Den slutförda batchen sparas igen. Anropare utan checkpoint får inte denna garanti.
AgenticLoop · sex faser
core/agent/loopdataflöde: tool_use-blockToolCallProcessortool_executor/processor.pyEtt modellförslag är ingen behörighet. Varje anrop får en ToolContext med loopens modell- och adapteridentitet.
ToolCallProcessor
tool_executor/processor.pydataflöde: aexecuteomfång · policy · schematool_executor/executor.pyKontrollerar i tur och ordning sessionens omfång, omskrivningar från request-middleware, policy och schema. En omskrivning som sänker säkerhetsnivån eller klassen för personuppgifter nekas.
BoundToolPlan · oföränderlig
core/tools/plan.pybehörighet · sammansättning: tillåtet · säkerhetsnivåomfång · policy · schematool_executor/executor.pyKörbara hanterare och säkerhetsnivåer kommer från den BoundToolPlan som projicerats för sessionen.
PreToolUse · PostToolUse
tool_executor/executor.pybehörighet · sammansättning: PreToolUse · PostToolUseHookRegistry · beslutcore/hooksOffentliga hooks avgör blockering, omskrivning av argument eller begäran om behörighet, och efter en omskrivning kontrolleras omfång, policy och schema igen. Efter exekveringen kan en hook lägga till kontext eller hålla inne resultatet.
godkännande · HITL
tool_executor/executor.pybehörighet · sammansättning: godkännandebegäranTerminalanvändareI en IPC-session vidarebefordras godkännandebegäran till den tunna CLI:n. Lägen utan en människa tillämpar nekandepolicyn som standard; det enda undantaget är computer use i DAEMON, när en operatör separat aktiverar det (annars blockerat).
tool_executor/executor.pynekande före exekvering: nekad före exekveringToolCallProcessor
tool_executor/processor.pyEtt nekande på omfång, policy eller schema, en PreToolUse-blockering eller ett avslaget godkännande returneras som ett felresultat utan dispatch. I så fall påbörjades ingen effekt av detta anrop.
effect receipt
tool_executor/executor.pydataflöde: effekt registreras · bekräftasEffectReceiptStorememory/effect_receipts.pyEffekter som filändringar, utgående meddelanden eller administrativa åtgärder registreras innan de körs. Ett osäkert utfall körs inte igen; det kräver avstämning.
resurslås · dispatch
tool_executor/executor.pydataflöde: hanteraranropverktygshanterare · bash · computercore/toolsSkickar till den bundna hanteraren efter att ha låst dess resursnycklar. Ett anrop som avbryts vid sin deadline kan fortfarande köras utanför.
resurslås · dispatch
tool_executor/executor.pydataflöde: MCP-anropMCPServerManagercore/mcp/manager.pyBara MCP-verktyg med en deklarerad resurspolicy anropas.
MCPServerManager
core/mcp/manager.pydataflöde: tools/callMCP-servrarServerkatalogen kommer från globala inställningar och från projektinställningar som har klarat förtroendekontrollen; den kontrollen gäller bara projektposter. MCP-hanteraren tillämpar sin tilläggs- och resurspolicy.
verktygshanterare · bash · computer
core/toolsdataflöde: ändringar i fil · git · processFiler · git · processerExekverade ändringar ligger kvar som yttre tillstånd. Checkpointen återställer bara konversationen och ångrar dem inte.
tool_executor/executor.pydataflöde: resultat · fel efter dispatchToolCallProcessor
tool_executor/processor.pyEfter dispatch returneras normala resultat och fel (inklusive timeouter och osäkra utfall) via PostToolUse. Ett fel eller en timeout betyder inte att det yttre arbetet stoppades eller ångrades.
ToolCallProcessor
tool_executor/processor.pydataflöde: tool_resultmeddelanden · ConversationContextcore/agent/loopResultat, nekanden och fel serialiseras alla som tool_result och blir meddelanden i nästa modellindata.
ToolCallProcessor
tool_executor/processor.pylogg · observation: anrop · resultatobservationSessionTimeline · append-onlyobservability/session_timeline.pySkriver anropet och dess resultat (ok eller fel) till tidslinjen, även anrop som nekades före exekvering. Loggen är observation; den bevisar inte att en yttre effekt påbörjades eller lyckades.
Loggar · återställning · slutförande
Checkpoint, tidslinje och beläggsrader skrivs var för sig. Det finns ingen gemensam transaktion, och checkpointen återställer bara konversationen.
AgenticLoop · sex faser
core/agent/loopdataflöde: väntande batch · rundsparningSQLite messages · state.jsonmemory/session_checkpoint.pyI en session med konfigurerad checkpointing (en checkpoint och ett sessions-id) sparas den föreslagna batchen innan något verktyg körs, och batchen körs inte om den inte kan sparas. Den slutförda batchen sparas igen. Anropare utan checkpoint får inte denna garanti.
SQLite messages · state.json
memory/session_checkpoint.pydataflöde: återställning vid återupptagningAgenticLoop · sex fasercore/agent/loopEn återställningsväg tar tillbaka meddelanden, kognitivt tillstånd och guard-räknare. Den processlokala TaskGraph återställs inte.
AgenticLoop · sex faser
core/agent/looplogg · observation: turloggSessionTimeline · append-onlyobservability/session_timeline.pyEn append-only exekveringshistorik som aldrig spelas upp som tillstånd.
AgenticLoop · sex faser
core/agent/loopbehörighet · sammansättning: slutförandekontrollverify_turn_asynccore/agent/verify.pyModellens förslag om att stoppa blir slutförande först genom Verify.
verify_turn_async
core/agent/verify.pybehörighet · sammansättning: PostVerify · StopHookRegistry · beslutcore/hooksOffentliga hook-beslut avgör om arbetet fortsätter med en reparation, och reparationer sker bara inom en fastställd budget (två som standard).
AgenticLoop · sex faser
core/agent/looplogg · observation: beläggsrader · best-effortEvidenceLedger · JSONLagent/evidence_ledger.pyMaskerade diagnostikrader. Hashar stöder korrelation; en rad bevisar inte att en effekt inträffade, och den skrivs inte i samma transaktion som tidslinjen eller checkpointen.
AgenticLoop · sex faser
core/agent/looplogg · observation: kognitiva · livscykelhändelserHookSystem · observationcore/hooksObservationshooks tar emot och registrerar händelser; de avgör inte exekvering.
Andra ingångsvägar
Meddelandetjänster kommer in som DAEMON-sessioner i serve-daemonen; en extern MCP-värds run_agent går in i en separat byggd headless engångsloop.
Meddelandekanaldataflöde: kanalmeddelandemeddelandepollers
core/serverServe-daemonens pollers hanterar bara meddelanden från bundna kanaler.
meddelandepollers
core/serverbehörighet · sammansättning: create_session(DAEMON)SharedServices.create_sessionsupervised/services.pyEtt läge utan någon människa som godkänner: standardpolicyn för nekande och en tidsbudget gäller. Bara computer use kan aktiveras separat av en operatör; annars förblir det blockerat.
meddelandepollers
core/serverdataflöde: arun(message)AgenticLoop · sex fasercore/agent/loopEn tråd behåller ett fast sessions-id och fortsätter en checkpoint-kedja.
Extern MCP-värddataflöde: run_agent(prompt)run_agent · engångskörning
core/mcp_server.pyEn extern MCP-värd anropar GEODE som ett verktyg.
run_agent · engångskörning
core/mcp_server.pydataflöde: headless engångsloopAgenticLoop · sex fasercore/agent/loopEn separat byggd headless executor och loop som går förbi SharedServices. Standardlistan över nekade verktyg gäller oförändrad, så verktyg som run_bash, delegate_task och computer tas bort; DAEMON-undantaget för computer use finns inte här.
Alla kopplingar med samma tjocklek. Välj ett flöde för att bara markera dess väg, med numrerade steg.
- Heldragen · riktningen som förfrågningar, meddelanden och verktygsresultat flödar i
- Streckad · sessionssammansättning, behörighet eller dom; ingen dataväg
- Lång streck-punkt · loggar och observation; spelas aldrig upp som tillstånd
- Kort streck · nekande före exekvering, ingen effekt
- Kraftig svart linje · det valda flödet; siffrorna anger ordningen
- Ruta · en kodägande gräns, källsökvägen i rubriken
- Inre chip · en komponent inom gränsen
- Streckad ruta · utanför runtime-processen
- Orange kontur · där en modell fattar beslut
- Körloop
- Behörighet · domar
- Logglager
- Ingång · anslutning · exekvering
Bara förbindelser vars anrop har bekräftats är ritade. ContextAssemblers fasad i fem nivåer, TaskGraph och forskningsexperiment som Jev, SIL och Crucible ligger inte på denna runtime-väg. Asynkront avbrytande stoppar inte synkront arbete som redan startat och ångrar inte effekter som har inträffat.
Modeller som stöds · per leverantör
Kodens katalogval och levererade standardvärden, inte en lista där varje modell har klarat ett skarpt API-anrop. Konfigurerade fallback-kedjor är tomma som standard, och exakta id:n uppgraderas aldrig automatiskt till nyare versioner.
Anthropic
API
- PrimärClaude Opus 5.5
claude-opus-5-5Standard - SekundärClaude Sonnet 5
claude-sonnet-5Standard - LågkostnadClaude Haiku 4.5
claude-haiku-4-5-20251001Standard
Visa alla 12 katalog-ID:n
API
claude-fable-5-1claude-opus-5-5standardclaude-opus-5claude-sonnet-5standardclaude-haiku-4-5-20251001standardclaude-fable-5claude-opus-4-8claude-opus-4-7claude-opus-4-6claude-opus-4-5claude-sonnet-4-6claude-sonnet-4-5-20250929
Koden avvisar prenumerationsvägen via OAuth.
- PrimärClaude Opus 5.5
OpenAI
API · Codex-prenumeration
- Standard för API och CodexGPT-6 Sol
gpt-6-solStandard
Visa alla 11 katalog-ID:n
API · Codex-prenumeration
gpt-6-astragpt-6-solstandardgpt-6-lunagpt-5.6-solgpt-5.6-terragpt-5.6-luna
Endast API
gpt-5.5gpt-5.3-codexgpt-5.4gpt-5.4-minigpt-5.4-nano
Två åtkomstvägar till en leverantör; katalogen anger vilka vägar varje modell tillåter.
- Standard för API och CodexGPT-6 Sol
Z.ai / GLM
PAYG
- StandardGLM-5.3
glm-5.3Standard
Visa alla 9 katalog-ID:n
PAYG
glm-5.3standardglm-5.3-flashglm-5.3-flashxglm-5.2glm-5.1glm-5glm-4.7glm-4.7-flashxglm-4.7-flash
Koden släpper inte in vägen via GLM Coding Plan.
- StandardGLM-5.3
OpenRouter
Routningstjänst
- VäljareFree (smoke)
openrouter/openrouter/freeRouter - VäljareAuto (variable)
openrouter/openrouter/autoRouter
Routerval, inte en fast modell. Explicit konfigurerade id:n kan också behållas.
- VäljareFree (smoke)
TypeSafe / Jev
Endast beslut · skilt från textgenerering
- Direkt
jev-1.13.0Endast beslut - Via OpenRouter
typesafe/jev-1.13Endast beslut
En valfri adapter som bara gör bedömningar; den är ingen rotmodell för textgenerering. Standardmotorn för bedömning är llm, och Jev måste väljas. Jev-studiens egna konfigurationer följer loggarna i Jev-vyn.
- Direkt
KällaGEODE main 373d420Offentlig commit 7 oktober 2026 · kontrollerad 8 oktober 2026
Experiment
Modeller och vägar som de registrerades vid tillfället, inte nuvarande standardvärden eller en fullständig kompatibilitetslista.
GEODE-benchmarkrapport
July 31, 2026
- GEODEGPT-5.6 Sol
gpt-5.6-solOpenAI-prenumeration · high
- GEODEGPT-5.6 Sol
Terminal-Bench 2.1 · parad specifikation för Harbor 0.22.0
August 27, 2026
- GEODE · native CodexGPT-5.6 Sol
gpt-5.6-solprenumeration · max
En fryst specifikation; inte alla planerade försök blev ett giltigt resultat.
- GEODE · native CodexGPT-5.6 Sol
Arkiverad SIL-körning run-2606-broken-tool-use
- Mål-scaffoldGPT-5.5
gpt-5.5openai-codex - Auditor · bedömareClaude Opus 4.8
claude-opus-4-8PAYG
En logg över åtskilda roller, inte två utbytbara standardvärden.
- Mål-scaffoldGPT-5.5