Geodi, het officiële pixelpersonage van GEODE
Terug naar de zaal

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.

2026.02.21 — present

Ontwerp, oordeel, verificatie: Author · implementatie: Claude · review: Codex

  • CLIGepubliceerd · PyPI
  • MCP-serverGeïmplementeerd

Eén policy tegelijk wijzigen; de meting blijft vast.

Een aparte lus die buiten de harness draait. Vanaf de baseline past die één getypeerde policywijziging toe, en dezelfde Petri-audit en gate beslissen tussen KEEP en terugzetten.

SIL-kaart · getekend naar de evolve-paden in vastgezette commit 9e2c041 en de runlog van June 2026
Kaart van de GEODE-zoektocht naar policy’s (SIL)Een lus die buiten de runtime naar policy’s zoekt. Een goedgekeurd runcontract legt budget, seeds, rubric en modellen vast, en de mutator wijzigt één policy binnen zeven toegestane oppervlakken. measure.py audit GEODE via Petri met dezelfde meetopstelling; fitness.py en gate.py beslissen met regels voor critical-regressie en promotie over KEEP of terugzetten; ledger.py schrijft de baseline en de resultaatrijen. De run van June 2026 scheidde auditruis van het mutatie-effect met een never-arm zonder wijziging, een K=5-baseline en replicate-metingen.Goedkeuring door operatorlive-aanroepen · budgetPetri-auditauditor · GEODE target · judgeprogram.mdruncontract · modellen · budgetstopregels · run na goedkeuringtrain.pylus met vast budget--replicate K · hermetingloop/mutatemutator · één kandidaat7 oppervlakken · geen hyperparametersstate/policiesbestandsgebaseerde policyprepare.pyseedpool · rubric vastmeasure.pyauditsubproces · vaste time-outOVERRIDE per policy · STRICTfitness.pycritical-regressie · strafpuntenledger.pybaseline · provenanceresults · mutatierijengate.py_should_promote · KEEP_reject_and_revertcore · policyloaderspromptvertakking · system_prompt.py6 policyloaders · tool, skill…run-2606-broken-tool-usegen-0-baseline · gemiddelde van 5 auditsnever-arm · controle zonder wijzigingarms random · gatereplicate · één KEEP opnieuw metenevolve/scaffold_searchexterne zoeklus · buiten de runtimekandidaatwijzigingéén per runmeetopstellingvast tijdens een vergelijkingrun-2606 · June 3–4, 2026broken_tool_useGEODE onder auditalleen toegestane policy’s wijzigen1 goedkeuring · Goedkeuring door operator → runcontract · modellen · budget12 runcontract · runcontract · modellen · budget → lus met vast budget23 om één kandidaat vragen · lus met vast budget → mutator · één kandidaat34policywijziging · mutation ID5 seeds · rubric vast · seedpool · rubric vast → auditsubproces · vaste time-out56gekozen policy7override-paden per policy8audit subprocess9auditdialoog1dimensiescores2 baseline · provenance · baseline · provenance → critical-regressie · strafpunten23 fitness · regressieredenen · critical-regressie · strafpunten → _should_promote · KEEP34KEEP · volgende baseline5REJECT · vorige terugzetten6resultaat · oordeelsrij1drie arms2K=5-gemiddelde als baseline3meten zonder wijziging4--replicate K5hermeting → terugzetten

Eén wijziging → audit

Met het runcontract vastgelegd wijzigt één toegestane policy en wordt GEODE met dezelfde meetopstelling geaudit. Dit is niet het draaiende product dat zichzelf herschrijft.

  1. Goedkeuring door operatoruitvoeren · beslissen: goedkeuringruncontract · modellen · budgetprogram.md

    Een run start pas nadat live-aanroepen en het vaste budget zijn goedgekeurd. Zonder goedkeuring wordt alleen het contract voorbereid en offline gecontroleerd.

  2. runcontract · modellen · budgetprogram.mduitvoeren · beslissen: runcontractlus met vast budgettrain.py

    Seed- en rubricrevisies, rolmodellen en de herkomst van inloggegevens, meetinstellingen, budgetten voor iteraties, tijd en kosten, de promotiepolicy en stopcondities worden vóór de run vastgelegd.

  3. lus met vast budgettrain.pyuitvoeren · beslissen: om één kandidaat vragenmutator · één kandidaatloop/mutate

    Eén onderbouwde hypothese wijzigt één toegestaan policyoppervlak.

  4. 7 oppervlakken · geen hyperparametersloop/mutategegevens: policywijziging · mutation IDbestandsgebaseerde policystate/policies

    Alleen zeven oppervlakken mogen wijzigen: wrapperprompt, toolpolicy, decompositieadvies, reflection, metadata van de skillcatalogus, agentcontract (role, system_prompt, tools) en toolbeschrijvingen en -hints. Wijzigingen in hyperparameters worden zowel bij het parsen als bij het toepassen geweigerd. Een policy toepassen, opnieuw meten en een optionele commit zijn aparte stappen, dus een toepassing is zelf geen audit.

  5. seedpool · rubric vastprepare.pyuitvoeren · beslissen: seeds · rubric vastauditsubproces · vaste time-outmeasure.py

    prepare.py is de vaste referentie voor de seedpool en de rubric; kandidaten wijzigen die niet. Een wijziging in een meetmodule verandert de meting, niet het geteste systeem.

  6. bestandsgebaseerde policystate/policiesgegevens: gekozen policyOVERRIDE per policy · STRICTmeasure.py

    measure.py leest het momenteel gekozen policybestand en geeft het door aan de auditomgeving.

  7. OVERRIDE per policy · STRICTmeasure.pyuitvoeren · beslissen: override-paden per policycore · policyloaders

    measure.py geeft het wrapperpad en de override- en strict-paden per policy door aan het auditsubproces, en de bijbehorende policyloader van de runtime leest elk ervan. De wrapper (GEODE_WRAPPER_OVERRIDE → system_prompt) is één vertakking; extra omgevingssleutels verruimen de zeven wijzigbare oppervlakken niet. Een bewerkt bestand alleen bewijst niet dat de kandidaat het target bereikte; de diagnostiek in het auditbewijs bevestigt dat.

  8. auditsubproces · vaste time-outmeasure.pyuitvoeren · beslissen: audit subprocessPetri-audit

    De audit draait met een vaste time-out en een vast budget, die tijdens een vergelijking nooit worden gewijzigd. Ontbrekende uitvoer is een diagnostisch gat, geen score van nul.

  9. Petri-auditgegevens: auditdialoogcore · policyloaders

    De auditor praat met GEODE via het seedscenario, en de judge scoort het transcript.

Oordeel → behouden · terugzetten

Vergeleken met de baseline van hetzelfde contract beslissen critical-regressies en de promotieregel over KEEP; een afgewezen wijziging wordt teruggezet naar de vastgelegde vorige waarde.

  1. Petri-auditgegevens: dimensiescorescritical-regressie · strafpuntenfitness.py

    Scores komen samen met ontbrekende dimensies en aantallen samples. Een ongemeten dimensie wordt niet als observatie gelezen.

  2. baseline · provenanceledger.pygegevens: baseline · provenancecritical-regressie · strafpuntenfitness.py

    Vergelijking gebruikt alleen een baseline met hetzelfde vastgelegde contract en dezelfde epoch. Een nieuwe Git-branch isoleert de baselinetoestand niet.

  3. critical-regressie · strafpuntenfitness.pygegevens: fitness · regressieredenen_should_promote · KEEPgate.py

    Eerst worden regressies in critical-dimensies en hulpstrafpunten gecontroleerd, daarna de margin-test of de test op de doeldimensie. Een positieve scalar alleen leidt nooit tot promotie.

  4. _should_promote · KEEPgate.pygegevens: KEEP · volgende baselinebaseline · provenanceledger.py

    Een behouden kandidaat wordt de volgende baseline. Een lokaal behouden kandidaat is geen merge in de repository en geen release.

  5. _reject_and_revertgate.pyuitvoeren · beslissen: REJECT · vorige terugzettenbestandsgebaseerde policystate/policies

    Voor een kandidaat die de runner heeft gemaakt, wordt de policysectie teruggezet die onder zijn mutation ID is vastgelegd, en een mislukte terugzetting wordt gemarkeerd. Handmatige wijzigingen worden niet automatisch teruggezet, en een onzekere terugzetting houdt de volgende kandidaat tegen.

  6. _should_promote · KEEPgate.pyvastleggen · observeren: resultaat · oordeelsrijresults · mutatierijenledger.py

    De meting, het oordeel en de herkomst worden één keer als resultaatrijen geschreven; eerdere rijen worden nooit herschreven.

Controles · herhaalde meting

Run van June 2026: een never-arm zonder wijziging en een K=5-baseline maten auditruis apart, en een KEEP op één audit werd met replicates opnieuw gecontroleerd.

  1. run-2606-broken-tool-useuitvoeren · beslissen: drie armslus met vast budgettrain.py

    De run van June 3–4, 2026 scheidde drift van het mutatie-effect met drie arms: never (geen wijziging), random (willekeurige acceptatie) en gate (acceptatie door het oordeel). Het target was GPT-5.5; auditor en judge waren Claude Opus 4.8.

  2. gen-0-baseline · gemiddelde van 5 auditsrun-2606-broken-tool-usegegevens: K=5-gemiddelde als baselinebaseline · provenanceledger.py

    De gen-0-baseline was het gemiddelde van vijf audits (Petri broken_tool_use, lager is beter, gemiddelde 2.667).

  3. never-arm · controle zonder wijzigingrun-2606-broken-tool-useuitvoeren · beslissen: meten zonder wijzigingauditsubproces · vaste time-outmeasure.py

    De never-arm dreef zonder enige policywijziging af naar een gemiddelde van 3.38 (10 audits, lager is beter): direct bewijs dat auditruis groter was dan het mutatie-effect.

  4. --replicate K · hermetingtrain.pyuitvoeren · beslissen: --replicate Kauditsubproces · vaste time-outmeasure.py

    Dezelfde kandidaat wordt onder dezelfde omstandigheden nog K keer gemeten, om een toevallig gunstige enkele audit eruit te filteren.

  5. replicate · één KEEP opnieuw metenrun-2606-broken-tool-useuitvoeren · beslissen: hermeting → terugzetten_reject_and_revertgate.py

    Een kandidaat die op één gate-audit was behouden (1.6), mat bij replicates 3.0–3.8, slechter dan de baseline, dus werd de champion 2.667 teruggezet. De run concludeerde: geen duidelijke verbetering.

Alle verbindingen even zwaar. Kies een stroom om alleen het pad daarvan te markeren, met genummerde stappen.

  • Doorgetrokken · de richting waarin verzoeken, kandidaten en resultaten stromen
  • Gestreept · uitvoeren, beslissen, autoriseren, configureren
  • Lange streep-punt · vastleggingen en observatie, los van het oordeel
  • Dikke zwarte lijn · de gekozen stroom; nummers geven de volgorde
  • Vak · een code- of vastleggingsgrens, met het pad in de kop
  • Binnenchip · een component in die grens
  • Gestreept vak · buiten die grens
  • lus · meetrun
  • contract · oordeel
  • policy · vastleggingen
  • wijziging · audittarget · runlog

De SIL-driver van GEODE heet autoresearch; de opbouw prepare/train/program en het vaste budget zijn ontleend aan Karpathy’s autoresearch. Er veranderen geen modelgewichten, en meetopstelling en budget blijven vast tijdens een vergelijking.

Wat mag wijzigen
Zeven oppervlakken: wrapperprompt, toolpolicy, decompositieadvies, reflection, metadata van de skillcatalogus, agentcontract en toolbeschrijvingen en -hints. Evaluator, budget, seeds en rubric blijven vast tijdens een vergelijking.
Reikwijdte van de runlog
De waarden van run-2606 zijn de Petri broken_tool_use-gemiddelden van die run (lager is beter). Ze zijn geen bewijs van cumulatieve SIL-verbetering of generalisatie.