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.
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.
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.
Goedkeuring door operatoruitvoeren · beslissen: goedkeuringruncontract · modellen · budget
program.mdEen run start pas nadat live-aanroepen en het vaste budget zijn goedgekeurd. Zonder goedkeuring wordt alleen het contract voorbereid en offline gecontroleerd.
runcontract · modellen · budget
program.mduitvoeren · beslissen: runcontractlus met vast budgettrain.pySeed- 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.
lus met vast budget
train.pyuitvoeren · beslissen: om één kandidaat vragenmutator · één kandidaatloop/mutateEén onderbouwde hypothese wijzigt één toegestaan policyoppervlak.
7 oppervlakken · geen hyperparameters
loop/mutategegevens: policywijziging · mutation IDbestandsgebaseerde policystate/policiesAlleen 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.
seedpool · rubric vast
prepare.pyuitvoeren · beslissen: seeds · rubric vastauditsubproces · vaste time-outmeasure.pyprepare.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.
bestandsgebaseerde policy
state/policiesgegevens: gekozen policyOVERRIDE per policy · STRICTmeasure.pymeasure.py leest het momenteel gekozen policybestand en geeft het door aan de auditomgeving.
OVERRIDE per policy · STRICT
measure.pyuitvoeren · beslissen: override-paden per policycore · policyloadersmeasure.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.
auditsubproces · vaste time-out
measure.pyuitvoeren · beslissen: audit subprocessPetri-auditDe 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.
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.
Petri-auditgegevens: dimensiescorescritical-regressie · strafpunten
fitness.pyScores komen samen met ontbrekende dimensies en aantallen samples. Een ongemeten dimensie wordt niet als observatie gelezen.
baseline · provenance
ledger.pygegevens: baseline · provenancecritical-regressie · strafpuntenfitness.pyVergelijking gebruikt alleen een baseline met hetzelfde vastgelegde contract en dezelfde epoch. Een nieuwe Git-branch isoleert de baselinetoestand niet.
critical-regressie · strafpunten
fitness.pygegevens: fitness · regressieredenen_should_promote · KEEPgate.pyEerst 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.
_should_promote · KEEP
gate.pygegevens: KEEP · volgende baselinebaseline · provenanceledger.pyEen behouden kandidaat wordt de volgende baseline. Een lokaal behouden kandidaat is geen merge in de repository en geen release.
_reject_and_revert
gate.pyuitvoeren · beslissen: REJECT · vorige terugzettenbestandsgebaseerde policystate/policiesVoor 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.
_should_promote · KEEP
gate.pyvastleggen · observeren: resultaat · oordeelsrijresults · mutatierijenledger.pyDe 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.
run-2606-broken-tool-useuitvoeren · beslissen: drie armslus met vast budget
train.pyDe 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.
gen-0-baseline · gemiddelde van 5 audits
run-2606-broken-tool-usegegevens: K=5-gemiddelde als baselinebaseline · provenanceledger.pyDe gen-0-baseline was het gemiddelde van vijf audits (Petri broken_tool_use, lager is beter, gemiddelde 2.667).
never-arm · controle zonder wijziging
run-2606-broken-tool-useuitvoeren · beslissen: meten zonder wijzigingauditsubproces · vaste time-outmeasure.pyDe 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.
--replicate K · hermeting
train.pyuitvoeren · beslissen: --replicate Kauditsubproces · vaste time-outmeasure.pyDezelfde kandidaat wordt onder dezelfde omstandigheden nog K keer gemeten, om een toevallig gunstige enkele audit eruit te filteren.
replicate · één KEEP opnieuw meten
run-2606-broken-tool-useuitvoeren · beslissen: hermeting → terugzetten_reject_and_revertgate.pyEen 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.