Geodi, GEODE's official pixel character
Back to the hall

GEODE

Autonomous Agent Harness

From observation to the next action.

A local autonomous-agent harness you can hand research, file work and scheduled tasks.

2026.02.21 — present

Design, judgment, verification: Author · implementation: Claude · review: Codex

  • CLIPublished · PyPI
  • MCP serverImplemented

Decision Offloading w. Jev

Which of the intermediate decisions an agent makes mid-task can be handed to Jev, a decision-only model? This research checks whether independently verified task quality holds once they are, counting preparation, repeated judgments, repair and final delivery. Early pilots could not be explained by swapping the judgment call alone, so the input contract, the decision contract, the probability policy and the execution agent’s consumption were separated into their own experiments.

Jev map · runtime from pinned commit 9e2c041, research from the September 2026 records
Jev judgment paths: runtime integration and researchThe upper part is the opt-in judgment path in today’s GEODE runtime. Only when judgment_engine is set to jev do final verification and reflection call Jev on TypeSafe SystemOne once, and a response is used only after type, range and probability-sum admission. Only supported passes final verification, and the result goes to the completion chapter’s PostVerify and Stop policy. The lower part is the Jev v3 research outside the runtime: a fixed-state panel (U3) compared Astra and Jev judgments, Harbor 0.22 E/I runs changed only the judgment route and checked results and delivery separately with an independent rule oracle, and the public packet keeps source and public hashes apart and offers a model-free recomputation.TypeSafe SystemOnejev-1.13.0 · judgment onlyAstra judge · actor modelgpt-6-astra/xhigh · subscriptionJev research reportpublic technical reportcore/config/judgment.pyjudgment_engine · llm | jevauto → typesafe · openrouterloop/_lifecycle.pyPostVerify · Stop policycore/agent/verify.pyfinal verdict · one Choice questiononly supported passes · text onlyadapters/typesafe.pySystemOne · one call · no fallbackadmission · sum tolerance 1e-5loop/_reflection.pyreflection · evidence classificationmemory · observabilitytimeline · ledger decision rowsU3 · fixed-state panel120 pairs · 27 sources · no actorAstra · Jev · same questionE/I · Harbor 0.22Astra actor · tools · repairjudge route · Astra · Jev · Jev-firstrule oraclecorrectness · delivery separatejev-v3-20260927E2E-DATA · source · public hashesREPRODUCE · model-freeGEODE runtime · 9e2c041opt-in judgment · default llmJev v3 research · Sept 2026outside the runtime · separate harness1choose the route2 request · candidate · observations · final verdict · one Choice question → SystemOne · one call · no fallback23 one SystemOne call · SystemOne · one call · no fallback → TypeSafe SystemOne34 admitted Choice · admission · sum tolerance 1e-5 → only supported passes · text only45passed · reflection6verdict rows1same choice2classify evidence3 one SystemOne call · SystemOne · one call · no fallback → TypeSafe SystemOne34 classification · admission · sum tolerance 1e-5 → reflection · evidence classification41Jev judgment2Astra judgment3panel results · report1generate · tools · repair2completion-judgment route3 independent check · E/I · Harbor 0.22 → correctness · delivery separate34failure · repair lineage5model-free recomputation

Runtime · final verdict

With Jev selected, final verification calls Jev once with one Choice question, and only an admitted supported verdict passes.

  1. judgment_engine · llm | jevcore/config/judgment.pyrun · decide: choose the routefinal verdict · one Choice questioncore/agent/verify.py

    The Jev route is used only when judgment_engine is set to jev (default llm). provider auto picks TypeSafe, then OpenRouter, whichever has a key; without a key the LLM-judge route stays. This is not a fallback that retries a failed request elsewhere.

  2. final verdict · one Choice questioncore/agent/verify.pydata: request · candidate · observationsSystemOne · one call · no fallbackadapters/typesafe.py

    The original request and candidate are redacted and bounded, then sent with the tool observations as one Choice question (supported, contradicted, insufficient_evidence). The judgment call gets no tools (allow_tools=False). A judgment that needs images is not sent to Jev and becomes verification_error.

  3. SystemOne · one call · no fallbackadapters/typesafe.pydata: one SystemOne callTypeSafe SystemOne

    One call, direct to TypeSafe or through OpenRouter, with no hop to another provider. Jev is never used as the root text-generation model.

  4. admission · sum tolerance 1e-5adapters/typesafe.pydata: admitted Choiceonly supported passes · text onlycore/agent/verify.py

    A response is used only after type, range and probability-sum (tolerance 1e-5) admission. Only supported passes; contradicted and insufficient_evidence become a retry signal with a fixed next check. A response that is not end_turn or fails admission becomes verification_error, which is not a retry signal (should_retry=False). The score is a binary projection, not a calibrated probability.

  5. only supported passes · text onlycore/agent/verify.pydata: passed · reflectionPostVerify · Stop policyloop/_lifecycle.py

    The verdict goes to the completion chapter’s PostVerify and Stop policy. A verdict is an input to that policy, not an authority; when it waits for review, the candidate stays only as pending_text and the final response is empty, so nothing is delivered.

  6. PostVerify · Stop policyloop/_lifecycle.pyrecord · observe: verdict rowstimeline · ledger decision rowsmemory · observability

    Verdict decisions are recorded in the timeline and evidence ledger: runtime records, separate from the research artifacts.

Runtime · reflection

The same choice drives reflection’s evidence classification; the next-check sentence is set by code.

  1. judgment_engine · llm | jevcore/config/judgment.pyrun · decide: same choicereflection · evidence classificationloop/_reflection.py

    The same choice applies to reflection.

  2. reflection · evidence classificationloop/_reflection.pydata: classify evidenceSystemOne · one call · no fallbackadapters/typesafe.py

    Reflection uses Jev to classify bounded evidence and appends a code-owned next check. It does not change belief hypotheses or self-confidence.

  3. SystemOne · one call · no fallbackadapters/typesafe.pydata: one SystemOne callTypeSafe SystemOne

    One call, direct to TypeSafe or through OpenRouter, with no hop to another provider. Jev is never used as the root text-generation model.

  4. admission · sum tolerance 1e-5adapters/typesafe.pydata: classificationreflection · evidence classificationloop/_reflection.py

    Only an admitted classification updates the reflection state; on failure the next round retries from the same prior state.

Research · fixed panel U3

Without an actor, Jev and Astra judgments on the same state and question were compared in pairs.

  1. Astra · Jev · same questionU3 · fixed-state paneldata: Jev judgmentTypeSafe SystemOne

    U3 (original experiment commit 2f2b494): 120 fixed states · 27 source clusters · 240 calls. Each state and question went to Jev and Astra as one pair; no actor, tools or Harbor.

  2. Astra · Jev · same questionU3 · fixed-state paneldata: Astra judgmentAstra judge · actor model

    Correct on the same sample: Astra 90/120, Jev 84/120; median per call 10.446 s vs 0.253 s. This is judgment-call latency only, not task time or cost savings.

  3. U3 · fixed-state paneldata: panel results · reportJev research report

    U3’s accuracy and latency results appear in the public technical report. Whether this panel is part of the E2E public packet is not claimed here.

Research · E/I runs

With Astra as the actor, only the judgment route changed, and an independent rule oracle checked results and delivery separately.

  1. Astra actor · tools · repairE/I · Harbor 0.22data: generate · tools · repairAstra judge · actor model

    In E/I on Harbor 0.22, the actor Astra handles generation, tool calls and repair; only the judgment route changes.

  2. judge route · Astra · Jev · Jev-firstE/I · Harbor 0.22data: completion-judgment routeTypeSafe SystemOne

    E7 (original experiment commit 1f65534): 12 authored synthetic tasks × 3 configurations × 2 runs = 72 runs, 24/24 per configuration. The Jev-first configuration had 0/24 actual fallbacks, so its effect was not measured.

  3. E/I · Harbor 0.22record · observe: independent checkcorrectness · delivery separaterule oracle

    An independent rule oracle checks the final result, and actual final delivery is counted separately. In the interrupted U8n’s 11 post-hoc pairs, every candidate passed the oracle, yet delivery was Astra 11/11 and Jev Noul 0/11.

  4. E/I · Harbor 0.22data: failure · repair lineageE2E-DATA · source · public hashesjev-v3-20260927

    The E2E public packet keeps preparation, failure and repair lineages, with source and public-copy hashes kept apart. A redacted public copy does not stand in for unchanged source validation.

  5. REPRODUCE · model-freejev-v3-20260927data: model-free recomputationJev research report

    Recomputing figures from stored responses and running anew are different operations. The report is a public technical report, not a peer-reviewed paper.

Every connection at the same weight. Pick a flow to highlight only its path, with numbered steps.

  • Solid · the direction requests, candidates and results flow
  • Dashed · run, decide, authorize, configure
  • Long dash-dot · records and observation, separate from the verdict
  • Heavy black line · the selected flow; numbers give the order
  • Box · a code or record boundary, its path in the header
  • Inner chip · a component in that boundary
  • Dashed box · outside that boundary
  • loop · execution harness
  • route choice · verdict · oracle
  • records · public packet
  • transport · judgment panel

The upper and lower parts are different systems. The research configurations and results are not all switched on in today’s runtime path; the only shared link is that both call the same Jev model (jev-1.13.0).

Runtime admission
The runtime keeps the probability-sum tolerance strict at 1e-5. Evaluation callers pass their own recorded tolerance instead of loosening the runtime parser.
Research scope
U3 measures judgment calls only; E/I includes the actor and repair. Their denominators are never mixed, and U8n’s 11 pairs are a post-hoc analysis of an interrupted study.

Three decision contracts

Choice

Returns
Probability per category or option
Decides
Completion; the intent and target of a request

Noul

Returns
P(true) for each condition
Decides
Contradiction; missing evidence

Score

Returns
Expected value and distribution on a fixed ordered scale
Decides
Ranking of generated candidates

The expected value places a candidate on the scale; it is not used as confidence.

Evaluation and wiring

Each contract was evaluated on its own fixed input panel, and some were wired into the experiment harness’s execution path to see how the execution agent consumes the judgment. In the map above, the research part shows those runs; the runtime part is the opt-in path in today’s GEODE.

Observations that changed the design

  1. I5 → I6 · input contract
    1. Tracing a shared delivery failure showed the judgment input lacked the task contract and described same-request tool observations as past context
    2. I6 delivered 6/6 in a separate run with the revised code and a new account
  2. U3 · same 120 state pairs
    1. Median per call Astra 10.446 s · Jev 0.253 s; correct on the same sample 90/120 · 84/120
    2. Speed and accuracy are weighed together for each decision to set the delegation scope
  3. U2 · probabilities
    1. Jev’s probabilities were better calibrated in size, but Astra ranked its wrong judgments ahead more reliably
    2. Calibration and error selection are measured separately, and the threshold is frozen on the selection split
  4. U6a · intent and target
    1. On 40 designer-authored families, Jev 216/220 · Astra 220/220, meeting the preregistered −5 pp margin
    2. Fixed intent and target classification narrowed as the next application candidate
  5. U8n · delivery
    1. Post-hoc 11 pairs from an interrupted run: repaired candidates passed the oracle in both arms; delivery Astra 11/11 · Jev Noul 0/11
    2. Missing-evidence judgments blocked correct delivery; the current Noul setup lacks grounds to serve as the sole delivery judge