GEODE
Autonomous Agent Harness
From observation to the next action.
A local autonomous-agent harness you can hand research, file work and scheduled tasks.
Audit scenarios are produced through phases in a fixed order.
The host owns the phase order, and role agents in each phase split the work. The resulting seed pool and the selected rubric become inputs to the Petri behavioral audit.
Scenario authoring
The orchestrator owns the phase order, role agents draft and filter candidates, and the result is exported through a file contract.
phase order · PipelineState
seed_generation/orchestrator.pyrun · decide: run phases in orderagents/ · draftThe orchestrator owns the phase order and state merging; each phase’s role agent does the work. Within a phase the work can fan out through SubAgentManager, and sub-agents do not recurse (depth 1).
dim means · evidence
baseline snapshotdata: baseline evidenceagents/ · draftGenerator, Critic and Evolver read the selected baseline’s per-dimension means, standard errors and evidence. The first generation has no baseline and uses the default prompts.
latest_pointer.json · priors
handoff pointerdata: previous meta-reviewagents/ · draftThe previous run’s meta-review leaves next-generation priors and under-covered dimensions for this generation to consider.
agents/ · draftdata: candidate seedsagents/ · review
Generator candidates pass Proximity dedupe, Critic review, Pilot (optional; skipped in smoke runs) and Ranker’s Elo ranking in turn.
agents/ · reviewdata: survivors · Eloagents/ · improve
Evolver improves the highest-ranked candidates, and Meta-reviewer summarizes the run into next-generation priors.
Meta-reviewer · next priors
agents/ · improverun · decide: next iteration · from CriticCritic · reviewagents/ · reviewWith max_iterations set, after Meta-reviewer the improved candidates go through Critic → Pilot → Ranker → Evolver → Meta-reviewer again. Supervisor, Generator and Proximity do not rerun; the default is zero iterations.
agents/ · improvedata: export survivorsrun_dir/
Surviving candidate bodies are copied as files into survivors/, Elo and pilot scores go to survivors.json, and the meta-review and state are written separately.
meta_review.json · state.json
run_dir/data: latest pointerlatest_pointer.json · priorshandoff pointerOne latest_pointer.json records where this run’s seed_pool and meta_review are. The per-run outputs are canonical; the pointer is a best-effort aid for the next run, and a failed write is only logged. Not every run has both fields.
Audit run
The auditor plays the seed (a scenario instruction), the target is the GEODE scaffold, and the judge scores the transcript. The three roles are separate model seats.
survivors/ · candidate .md copies
run_dir/data: --seed-selectgeode audit · /audit · toolpetri/runner.pyAn audit takes a seed selection (a survivors directory, bundled seeds, ids or tags) and passes it to Inspect’s inspect_petri/audit task. Seed generation does not start an audit itself.
bundled seeds · *.md
petri/seedsdata: bundled seedsgeode audit · /audit · toolpetri/runner.pyThe repository’s bundled seeds can be selected as they are.
geode audit · /audit · tool
petri/runner.pyrun · decide: model roles · three seatsAuditor modelAuditor, target and judge models are set separately. The default is a dry run; real calls happen only after a cost estimate is confirmed. When all three roles share a provider, a same-provider bias marker is attached.
Auditor modeldata: seed scenario dialogueGEODE as target · AgenticLoop
petri/geode_target.pyA seed is a scenario instruction for the auditor. The auditor leads the conversation and can create tools and tool results only when target_tools is enabled.
GEODE as target · AgenticLoop
petri/geode_target.pydata: model callsTarget base modelThe whole GEODE AgenticLoop (tools, hooks, memory) is wrapped as one model API, so the audited target is the GEODE scaffold, not the base model alone.
GEODE as target · AgenticLoop
petri/geode_target.pydata: transcriptJudge modelThe judge reads each sample’s full transcript once and scores it by dimension.
judge_dimensions · YAML
petri/judge_dimsrun · decide: judge_dimensionsJudge modelThe selected judge-dimension YAML sets the scoring dimensions. This is a behavioral audit, a different measurement from task completion.
Judge modeldata: dimension scoresInspect .eval log
The Inspect .eval log and a summary are archived. An archive failure is noted and does not block the audit result.
Measurement → next generation
SIL uses audit scores for its verdict, and a retained measurement becomes baseline evidence for the next seed generation. This does not mean the link ran automatically in every campaign.
Judge modeldata: dimension scoresInspect .eval log
The Inspect .eval log and a summary are archived. An archive failure is noted and does not block the audit result.
Inspect .eval logrecord · observe: measurementSIL measurement · measure.py
SIL’s measure.py runs the audit subprocess and computes fitness from its result.
SIL measurement · measure.pydata: baseline updatedim means · evidence
baseline snapshotSIL’s ledger writes a retained measurement as the baseline. Seed generation reads that evidence when a baseline is selected (automatically or explicitly).
dim means · evidence
baseline snapshotdata: baseline evidenceagents/ · draftGenerator, Critic and Evolver read the selected baseline’s per-dimension means, standard errors and evidence. The first generation has no baseline and uses the default prompts.
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
- orchestrator · audit entry
- audit target · scoring dimensions
- outputs · state files
- role agents · bundled seeds
The orchestrator fixes the first-pass order and the repeat order. Configuration, registered roles and the resume point can skip some phases, and not every campaign ran every phase. State-file locations depend on the environment, so no paths are shown.
- Three roles
- A seed is a scenario instruction, written by a person or generated; the auditor is the model that plays it, the target is the audited GEODE scaffold, and the judge is the model that scores the transcript. Scores and logs are the judge’s outputs.
- What is measured
- A Petri audit scores behavioral dimensions. It is not a task-completion rate or a product-quality guarantee.