GEODE
Autonomous Agent Harness
De la observație la următoarea acțiune.
Un cadru local pentru agenți autonomi, căruia i se pot încredința cercetare, lucru cu fișiere și sarcini programate.
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
Înainte de a schimba ceva, a găsit ce exista deja.
Sarcina: securitate la nivel de rând pentru un serviciu social cu cinci tabele.
- CercetareA citit cele cinci tabele, cele patru funcții ajutătoare deja existente, RLS dezactivat pe toate cinci și politicile, privilegiile și rolurile.
- AcțiuneO singură tranzacție: 20 de politici și RLS activat, cu refolosirea a 3 funcții ajutătoare existente și adăugarea a 3 funcții noi.
- Verificare18 trecute, 0 eșuate. Toate cele 13 răspunsuri ale instrumentelor din 9 ture au revenit fără eroare.
Ieșirea verificatorului, 18 rânduri (textual)
- 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)
O rulare anterioară într-un sandbox de evaluare configurat, nu o bază de date în funcțiune și nici un incident real de securitate. Numărul de rânduri de dinaintea politicilor nu se află în înregistrare, așa că nu este afișat. Înregistrare publică a rulării (meta.json, commitul 23e3428)
Revizuirea unui rezultat și repararea lui (inspirată de Reflexion, în cadrul aceleiași sarcini) este o capacitate a mediului de execuție GEODE actual. În această înregistrare nu apare o astfel de reparare: fiecare răspuns al instrumentelor a revenit fără eroare. Documentația mediului de execuție (hook-system.md)
Modelul alege următoarea acțiune; gazda păstrează granița de execuție.
Mediul de execuție, de la intrarea unei cereri într-o sesiune, prin apelul modelului și verificările de permisiuni pentru fiecare apel de instrument propus, până la execuție, rezultate și înregistrări. Alegeți un flux pentru a evidenția doar traseul lui, cu pași numerotați.
Modelul alege următoarea acțiune; mediul de execuție verifică permisiunile instrumentelor și decide când lucrul este încheiat.
Experimentele externe Scaffold Search / SIL au început pe 15 mai 2026
Pachetul geode-agent se instalează din PyPI sau din depozitul public și rulează din propriul terminal. Poate fi accesat și ca server MCP.
Cerere → apelul modelului
O cerere din terminal sosește prin IPC, se compune o sesiune, iar bucla apelează modelul cu promptul de sistem, conversația și schemele instrumentelor.
Utilizator în terminalflux de date: prompt · cli.sockCLIPoller · socket IPC
core/serverCLI-ul subțire trimite cererea la socketul IPC al daemonului serve (~/.geode/cli.sock). REPL-ul rulează aceeași compunere de sesiune în proces.
CLIPoller · socket IPC
core/serverpermisiune · compunere: create_session(IPC)SharedServices.create_sessionsupervised/services.pyFiecare conexiune compune o sesiune. Modul stabilește nivelul HITL, bugetul de timp și instrumentele refuzate și proiectează BoundToolPlan pe furnizorul ales.
CLIPoller · socket IPC
core/serverpermisiune · compunere: o bandă per cerereLaneQueue · session · globalsupervised/services.pyÎnainte de a rula o cerere, sunt ocupate atât banda sesiunii, cât și banda globală, ceea ce limitează rulările concurente.
SharedServices.create_session
supervised/services.pypermisiune · compunere: ToolExecutor · AgenticLoopAgenticLoop · șase fazecore/agent/loopConstruiește executorul și bucla ca o singură pereche, care partajează hookurile, MCP, skill-urile și blocările de resurse.
LaneQueue · session · global
supervised/services.pyflux de date: arun(prompt)AgenticLoop · șase fazecore/agent/loopRulează o tură a utilizatorului în șase faze: pregătirea intrării, pregătirea apelului, apelarea furnizorului, procesarea instrumentelor, observare și compactare, terminare.
prompt de sistem · surse declarate
core/agent/loopflux de date: prompt de sistemadapter.acomplete · clase de eroricore/llm/adaptersConstruit la fiecare tură din surse declarate, cum ar fi secțiuni și reguli alese din GEODE.md. Fațada pe cinci niveluri a ContextAssembler este folosită doar când este apelată explicit; nu este intrarea buclei implicite.
mesaje · ConversationContext
core/agent/loopflux de date: mesajeadapter.acomplete · clase de eroricore/llm/adaptersConversația și rezultatele anterioare ale instrumentelor circulă separat de promptul de sistem.
BoundToolPlan · imuabil
core/tools/plan.pypermisiune · compunere: schemele instrumenteloradapter.acomplete · clase de eroricore/llm/adaptersModelul vede doar instrumentele din BoundToolPlan legat de acest pas. Este un instantaneu imuabil, cu o generație și un hash al conținutului.
AgenticLoop · șase faze
core/agent/loopflux de date: StepSnapshot · cerereadapter.acomplete · clase de eroricore/llm/adaptersStepSnapshot fixează modelul, instrumentele și ID-urile de corelare ale acestui apel. Middleware-ul LLM nu poate înlocui un adaptor legat.
adapter.acomplete · clase de erori
core/llm/adaptersflux de date: HTTPSFurnizori LLMApelul îl face un adaptor specific furnizorului. Eșecurile sunt clasificate și reîncercate doar într-o limită stabilită sau încheie tura cu un motiv de terminare.
adapter.acomplete · clase de erori
core/llm/adaptersflux de date: răspuns · tool_useAgenticLoop · șase fazecore/agent/loopDoar textul merge spre terminare; tool_use merge spre procesarea instrumentelor.
Permisiunile instrumentelor → efect → rezultat
O propunere tool_use rulează doar după ce trec toate verificările; refuzurile, rezultatele și erorile revin toate de la executor și devin următoarea intrare a modelului.
AgenticLoop · șase faze
core/agent/loopflux de date: lot în așteptare · salvarea rundeiSQLite messages · state.jsonmemory/session_checkpoint.pyÎntr-o sesiune cu puncte de control configurate (un punct de control și un session id), lotul propus este salvat înainte să ruleze vreun instrument, iar lotul nu rulează dacă nu poate fi salvat. Lotul încheiat este salvat din nou. Apelanții fără punct de control nu primesc această garanție.
AgenticLoop · șase faze
core/agent/loopflux de date: blocuri tool_useToolCallProcessortool_executor/processor.pyO propunere a modelului nu este o permisiune. Fiecare apel primește un ToolContext care poartă identitatea modelului și a adaptorului buclei.
ToolCallProcessor
tool_executor/processor.pyflux de date: aexecutedomeniu · politică · schemătool_executor/executor.pyVerifică pe rând domeniul sesiunii, rescrierile middleware-ului de cerere, politica și schema. O rescriere care coboară nivelul de siguranță sau clasa datelor personale este refuzată.
BoundToolPlan · imuabil
core/tools/plan.pypermisiune · compunere: permis · nivel de siguranțădomeniu · politică · schemătool_executor/executor.pyHandlerele executabile și nivelurile de siguranță provin din BoundToolPlan proiectat pentru sesiune.
PreToolUse · PostToolUse
tool_executor/executor.pypermisiune · compunere: PreToolUse · PostToolUseHookRegistry · deciziicore/hooksHookurile publice decid blocarea, rescrierea argumentelor sau cererea de permisiune, iar o rescriere este urmată din nou de verificările de domeniu, politică și schemă. După execuție, un hook poate adăuga context sau poate reține rezultatul.
aprobare · HITL
tool_executor/executor.pypermisiune · compunere: cerere de aprobareUtilizator în terminalÎntr-o sesiune IPC, cererea de aprobare este transmisă CLI-ului subțire. Modurile fără o persoană aplică implicit politica de refuz; singura excepție este computer use în DAEMON, când un operator îl activează separat (altfel blocat).
tool_executor/executor.pyrefuz înainte de execuție: refuzat înainte de execuțieToolCallProcessor
tool_executor/processor.pyUn refuz de domeniu, politică sau schemă, o blocare PreToolUse sau o aprobare refuzată revine ca rezultat de eroare, fără dispatch. În acest caz, niciun efect al acestui apel nu a început.
effect receipt
tool_executor/executor.pyflux de date: admiterea efectului · confirmareEffectReceiptStorememory/effect_receipts.pyEfecte precum modificări de fișiere, mesaje trimise în exterior sau acțiuni administrative sunt admise înainte de a rula. Un rezultat incert nu este rulat din nou; se cere reconcilierea lui.
blocarea resurselor · dispatch
tool_executor/executor.pyflux de date: apel de handlerhandlere de instrumente · bash · computercore/toolsTrimite către handlerul legat după blocarea cheilor sale de resurse. Un apel întrerupt la termen poate rula în continuare în exterior.
blocarea resurselor · dispatch
tool_executor/executor.pyflux de date: apel MCPMCPServerManagercore/mcp/manager.pySunt apelate doar instrumentele MCP cu o politică de resurse declarată.
MCPServerManager
core/mcp/manager.pyflux de date: tools/callServere MCPCatalogul de servere provine din setările globale și din setările de proiect care au trecut verificarea de încredere; acea verificare se aplică doar intrărilor de proiect. Managerul MCP aplică politica sa de extensii și de resurse.
handlere de instrumente · bash · computer
core/toolsflux de date: modificări de fișiere · git · proceseFișiere · git · proceseModificările executate rămân ca stare externă. Punctul de control recuperează doar conversația și nu le anulează.
tool_executor/executor.pyflux de date: rezultat · eroare după dispatchToolCallProcessor
tool_executor/processor.pyDupă dispatch, rezultatele normale și erorile (inclusiv expirările și rezultatele incerte) revin prin PostToolUse. O eroare sau o expirare nu înseamnă că lucrul din exterior s-a oprit sau a fost anulat.
ToolCallProcessor
tool_executor/processor.pyflux de date: tool_resultmesaje · ConversationContextcore/agent/loopRezultatele, refuzurile și erorile sunt deopotrivă serializate ca tool_result și devin mesaje în următoarea intrare a modelului.
ToolCallProcessor
tool_executor/processor.pyînregistrare · observație: apel · observarea rezultatuluiSessionTimeline · append-onlyobservability/session_timeline.pyScrie apelul și rezultatul lui (ok sau eroare) în cronologie, inclusiv apelurile refuzate înainte de execuție. Înregistrarea este observație; nu dovedește că un efect extern a început sau a reușit.
Înregistrări · recuperare · finalizare
Punctul de control, cronologia și rândurile de dovezi sunt scrise separat. Nu există o tranzacție comună, iar punctul de control recuperează doar conversația.
AgenticLoop · șase faze
core/agent/loopflux de date: lot în așteptare · salvarea rundeiSQLite messages · state.jsonmemory/session_checkpoint.pyÎntr-o sesiune cu puncte de control configurate (un punct de control și un session id), lotul propus este salvat înainte să ruleze vreun instrument, iar lotul nu rulează dacă nu poate fi salvat. Lotul încheiat este salvat din nou. Apelanții fără punct de control nu primesc această garanție.
SQLite messages · state.json
memory/session_checkpoint.pyflux de date: restaurare la reluareAgenticLoop · șase fazecore/agent/loopO singură cale de restaurare aduce înapoi mesajele, starea cognitivă și contoarele de gardă. TaskGraph, local procesului, nu este recuperat.
AgenticLoop · șase faze
core/agent/loopînregistrare · observație: înregistrarea tureiSessionTimeline · append-onlyobservability/session_timeline.pyUn istoric de execuție doar cu adăugare, niciodată reluat ca stare.
AgenticLoop · șase faze
core/agent/looppermisiune · compunere: verificarea finalizăriiverify_turn_asynccore/agent/verify.pyPropunerea modelului de a se opri devine finalizare doar prin Verify.
verify_turn_async
core/agent/verify.pypermisiune · compunere: PostVerify · StopHookRegistry · deciziicore/hooksDeciziile hookurilor publice stabilesc dacă se continuă cu o reparație, iar reparațiile au loc doar într-un buget stabilit (implicit două).
AgenticLoop · șase faze
core/agent/loopînregistrare · observație: rânduri de dovezi · fără garanțieEvidenceLedger · JSONLagent/evidence_ledger.pyRânduri de diagnostic cu date mascate. Hash-urile servesc la corelare; un rând nu dovedește că un efect a avut loc și nu este scris în aceeași tranzacție cu cronologia sau punctul de control.
AgenticLoop · șase faze
core/agent/loopînregistrare · observație: evenimente cognitive · de ciclu de viațăHookSystem · observațiecore/hooksHookurile de observare primesc și înregistrează evenimente; ele nu decid execuția.
Alte căi de intrare
Aplicațiile de mesagerie intră ca sesiuni DAEMON ale daemonului serve; run_agent al unei gazde MCP externe intră într-o buclă headless, cu o singură rulare, construită separat.
Canal de mesagerieflux de date: mesaj de canalpollere de mesagerie
core/serverPollerele daemonului serve tratează doar mesajele din canalele legate.
pollere de mesagerie
core/serverpermisiune · compunere: create_session(DAEMON)SharedServices.create_sessionsupervised/services.pyUn mod fără o persoană care să aprobe: se aplică politica implicită de refuz și un buget de timp. Doar computer use poate fi activat separat de un operator; fără asta rămâne blocat.
pollere de mesagerie
core/serverflux de date: arun(message)AgenticLoop · șase fazecore/agent/loopUn fir păstrează un singur session id fix și continuă un singur lanț de puncte de control.
Gazdă MCP externăflux de date: run_agent(prompt)run_agent · o singură rulare
core/mcp_server.pyO gazdă MCP externă apelează GEODE ca instrument.
run_agent · o singură rulare
core/mcp_server.pyflux de date: buclă headless, o singură rulareAgenticLoop · șase fazecore/agent/loopUn executor și o buclă headless construite separat, care ocolesc SharedServices. Lista implicită de refuz se aplică ca atare, așa că instrumente precum run_bash, delegate_task și computer sunt eliminate; excepția computer use din DAEMON nu există aici.
Fiecare conexiune cu aceeași grosime. Alegeți un flux pentru a evidenția doar traseul lui, cu pași numerotați.
- Continuă · direcția în care circulă cererile, mesajele și rezultatele instrumentelor
- Întreruptă · compunerea sesiunii, permisiune sau verdict; nu e o cale de date
- Linie-punct lungă · înregistrări și observație; niciodată reluate ca stare
- Liniuță scurtă · refuz înainte de execuție, fără efect
- Linie neagră groasă · fluxul selectat; numerele dau ordinea
- Casetă · o graniță care deține cod, cu calea sursei în antet
- Etichetă interioară · o componentă din acea graniță
- Casetă întreruptă · în afara procesului de execuție
- Contur portocaliu · locul în care decide un model
- Bucla de execuție
- Permisiuni · verdicte
- Depozite de înregistrări
- Intrare · conexiune · execuție
Sunt desenate doar conexiunile ale căror apeluri au fost confirmate. Fațada pe cinci niveluri a ContextAssembler, TaskGraph și experimentele de cercetare precum Jev, SIL și Crucible nu se află pe această cale de execuție. Anularea asincronă nu oprește lucrul sincron deja pornit și nu anulează efectele produse.
Modele acceptate · pe furnizori
Alegerile din catalogul codului și valorile implicite livrate, nu o listă în care fiecare model a trecut un apel API real. Lanțurile de rezervă configurate sunt goale implicit, iar ID-urile exacte nu sunt niciodată actualizate automat la versiuni mai noi.
Anthropic
API
- PrincipalClaude Opus 5.5
claude-opus-5-5Implicit - SecundarClaude Sonnet 5
claude-sonnet-5Implicit - EconomicClaude Haiku 4.5
claude-haiku-4-5-20251001Implicit
Afișați toate cele 12 ID-uri din catalog
API
claude-fable-5-1claude-opus-5-5implicitclaude-opus-5claude-sonnet-5implicitclaude-haiku-4-5-20251001implicitclaude-fable-5claude-opus-4-8claude-opus-4-7claude-opus-4-6claude-opus-4-5claude-sonnet-4-6claude-sonnet-4-5-20250929
Codul respinge calea OAuth prin abonament.
- PrincipalClaude Opus 5.5
OpenAI
API · abonament Codex
- Implicit pentru API și CodexGPT-6 Sol
gpt-6-solImplicit
Afișați toate cele 11 ID-uri din catalog
API · abonament Codex
gpt-6-astragpt-6-solimplicitgpt-6-lunagpt-5.6-solgpt-5.6-terragpt-5.6-luna
Doar API
gpt-5.5gpt-5.3-codexgpt-5.4gpt-5.4-minigpt-5.4-nano
Două căi de acces la un singur furnizor; catalogul stabilește ce căi permite fiecare model.
- Implicit pentru API și CodexGPT-6 Sol
Z.ai / GLM
PAYG
- ImplicitGLM-5.3
glm-5.3Implicit
Afișați toate cele 9 ID-uri din catalog
PAYG
glm-5.3implicitglm-5.3-flashglm-5.3-flashxglm-5.2glm-5.1glm-5glm-4.7glm-4.7-flashxglm-4.7-flash
Codul nu admite calea GLM Coding Plan.
- ImplicitGLM-5.3
OpenRouter
Serviciu de rutare
- SelectorFree (smoke)
openrouter/openrouter/freeRouter - SelectorAuto (variable)
openrouter/openrouter/autoRouter
Selecții ale routerului, nu un singur model fix. Pot fi păstrate și ID-uri configurate explicit.
- SelectorFree (smoke)
TypeSafe / Jev
Doar pentru decizii · separat de generarea de text
- Direct
jev-1.13.0Doar pentru decizii - Prin OpenRouter
typesafe/jev-1.13Doar pentru decizii
Un adaptor opțional care doar emite judecăți; nu este un model rădăcină de generare de text. Motorul de judecată implicit este llm, iar Jev trebuie selectat. Configurațiile proprii ale studiului Jev urmează înregistrările din vizualizarea Jev.
- Direct
SursăGEODE main 373d420Commit public 7 octombrie 2026 · verificat 8 octombrie 2026
Experimente
Modele și căi așa cum au fost înregistrate atunci, nu valorile implicite actuale sau o listă completă de compatibilitate.
Raportul de benchmark GEODE
July 31, 2026
- GEODEGPT-5.6 Sol
gpt-5.6-solAbonament OpenAI · high
- GEODEGPT-5.6 Sol
Terminal-Bench 2.1 · specificație pereche Harbor 0.22.0
August 27, 2026
- GEODE · native CodexGPT-5.6 Sol
gpt-5.6-solabonament · max
O specificație înghețată; nu fiecare încercare planificată a devenit un rezultat valid.
- GEODE · native CodexGPT-5.6 Sol
Rulare SIL arhivată run-2606-broken-tool-use
- Schelă-țintăGPT-5.5
gpt-5.5openai-codex - Auditor · judecătorClaude Opus 4.8
claude-opus-4-8PAYG
O înregistrare a unor roluri separate, nu două valori implicite interschimbabile.
- Schelă-țintăGPT-5.5