Geodi, GEODE:s officiella pixelfigur
Tillbaka till salen

GEODE

Autonomous Agent Harness

Från observation till nästa handling.

En lokal harness för autonoma agenter som kan anförtros research, filarbete och schemalagda uppgifter.

2026.02.21 — present

Design, bedömning, verifiering: Author · implementation: Claude · granskning: Codex

  • CLIPublicerad · PyPI
  • MCP-serverImplementerad

Ändra en policy i taget; håll mätningen fast.

En separat loop som körs utanför harnessen. Från baslinjen tillämpar den en typad policyändring, och samma Petri-audit och grind avgör mellan KEEP och återställning.

SIL-karta · ritad utifrån evolve-vägarna vid fastlåst commit 9e2c041 och körloggen från juni 2026
Karta över GEODE:s policysökning (SIL)En policysökningsloop som körs utanför runtimen. Ett godkänt körkontrakt låser budget, seeds, bedömningsmatris och modeller, och mutatorn ändrar en policy bland sju tillåtna ytor. measure.py auditerar GEODE med samma apparat via Petri; fitness.py och gate.py avgör KEEP eller återställning med regler för kritisk regression och befordran; ledger.py skriver baseline- och resultatrader. Körningen i juni 2026 skilde auditbrus från mutationseffekt med en never-arm utan ändring, en K=5-baseline och upprepad mätning.Operatörsgodkännandeskarpa anrop · budgetPetri-auditauditor · GEODE target · judgeprogram.mdkörkontrakt · modeller · budgetstoppregler · körning efter godkännandetrain.pyloop med fast budget--replicate K · ommätningloop/mutatemutator · en kandidat7 ytor · inga hyperparametrarstate/policiesfilbaserad policyprepare.pyseed-pool · bedömningsmatris fastlåstmeasure.pyaudit-underprocess · fast timeoutOVERRIDE per policy · STRICTfitness.pykritisk regression · avdragledger.pybaseline · provenancerader i results · mutationsgate.py_should_promote · KEEP_reject_and_revertcore · policyladdareprompt-gren · system_prompt.py6 policyladdare · tool, skill…run-2606-broken-tool-usegen-0-baseline · medelvärde av 5 auditsnever-arm · kontroll utan ändringarmar: random · gatereplicate · mät om en enskild KEEPevolve/scaffold_searchextern sökloop · utanför runtimenkandidatändringen per körningmätapparatfast under en jämförelserun-2606 · 3–4 juni 2026broken_tool_useGEODE som auditerasbara tillåtna policyer ändras1 godkännande · Operatörsgodkännande → körkontrakt · modeller · budget12 körkontrakt · körkontrakt · modeller · budget → loop med fast budget23 begär en kandidat · loop med fast budget → mutator · en kandidat34policyändring · mutations-id5 seeds · bedömningsmatris fastlåst · seed-pool · bedömningsmatris fastlåst → audit-underprocess · fast timeout56vald policy7override-sökvägar per policy8audit subprocess9auditdialog1dimensionspoäng2 baseline · provenance · baseline · provenance → kritisk regression · avdrag23 fitness · regressionsorsaker · kritisk regression · avdrag → _should_promote · KEEP34KEEP · nästa baseline5REJECT · återställ tidigare6resultat · domsrad1tre armar2baseline som medelvärde av K=53mät utan ändring4--replicate K5ommätning → återställning

En ändring → audit

Med körkontraktet låst ändras en tillåten policy och GEODE auditeras med samma apparat. Det är inte den körande produkten som skriver om sig själv.

  1. Operatörsgodkännandeköra · avgöra: godkännandekörkontrakt · modeller · budgetprogram.md

    En körning startar först när skarpa anrop och den fasta budgeten har godkänts. Utan godkännande förbereds bara kontraktet och kontrolleras offline.

  2. körkontrakt · modeller · budgetprogram.mdköra · avgöra: körkontraktloop med fast budgettrain.py

    Revisioner av seeds och bedömningsmatris, rollmodeller och källor för autentiseringsuppgifter, mätinställningar, budgetar för iterationer, tid och kostnad, befordringspolicyn och stoppvillkoren låses före körningen.

  3. loop med fast budgettrain.pyköra · avgöra: begär en kandidatmutator · en kandidatloop/mutate

    En hypotes med belägg ändrar en tillåten policyyta.

  4. 7 ytor · inga hyperparametrarloop/mutatedata: policyändring · mutations-idfilbaserad policystate/policies

    Bara sju ytor får ändras: wrapper-prompt, verktygspolicy, råd om uppdelning, reflektion, metadata i skill-katalogen, agentkontrakt (role, system_prompt, tools) samt verktygsbeskrivningar och tips. Ändringar av hyperparametrar avvisas både vid parsning och tillämpning. Att tillämpa en policy, mäta om och en valfri commit är separata steg, så en tillämpning är inte i sig en audit.

  5. seed-pool · bedömningsmatris fastlåstprepare.pyköra · avgöra: seeds · bedömningsmatris fastlåstaudit-underprocess · fast timeoutmeasure.py

    prepare.py är den fasta referensen för seed-poolen och bedömningsmatrisen; kandidater ändrar den inte. Att ändra en mätmodul ändrar mätningen, inte systemet som testas.

  6. filbaserad policystate/policiesdata: vald policyOVERRIDE per policy · STRICTmeasure.py

    measure.py läser den för närvarande valda policyfilen och skickar den in i auditmiljön.

  7. OVERRIDE per policy · STRICTmeasure.pyköra · avgöra: override-sökvägar per policycore · policyladdare

    measure.py skickar wrappern samt override- och strict-sökvägar per policy till audit-underprocessen, och runtimens motsvarande policyladdare läser var och en. Wrappern (GEODE_WRAPPER_OVERRIDE → system_prompt) är en gren; extra miljönycklar utvidgar inte de sju ändringsbara ytorna. En redigerad fil ensam bevisar inte att kandidaten nådde target; diagnostiken i auditbelägget bekräftar det.

  8. audit-underprocess · fast timeoutmeasure.pyköra · avgöra: audit subprocessPetri-audit

    Auditen körs med fast timeout och budget som aldrig ändras mitt i en jämförelse. Saknad utdata är en lucka i diagnostiken, inte poängen noll.

  9. Petri-auditdata: auditdialogcore · policyladdare

    Auditor talar med GEODE genom seed-scenariot, och judge poängsätter transkriptet.

Dom → behåll · återställ

Jämfört med baselinen under samma kontrakt avgör kritiska regressioner och befordringsregeln KEEP; en avvisad ändring återställs till sitt registrerade tidigare värde.

  1. Petri-auditdata: dimensionspoängkritisk regression · avdragfitness.py

    Poängen levereras med saknade dimensioner och antal prov. En dimension som inte har mätts tolkas inte som en observation.

  2. baseline · provenanceledger.pydata: baseline · provenancekritisk regression · avdragfitness.py

    Jämförelsen använder bara en baseline med samma registrerade kontrakt och epoch. En ny Git-gren isolerar inte baseline-tillståndet.

  3. kritisk regression · avdragfitness.pydata: fitness · regressionsorsaker_should_promote · KEEPgate.py

    Regressioner i kritiska dimensioner och hjälpavdrag kontrolleras först, därefter marginal- eller måldimensionstestet. En positiv skalär ensam ger aldrig befordran.

  4. _should_promote · KEEPgate.pydata: KEEP · nästa baselinebaseline · provenanceledger.py

    En behållen kandidat blir nästa baseline. En kandidat som behålls lokalt är inte en merge i repositoryt eller en release.

  5. _reject_and_revertgate.pyköra · avgöra: REJECT · återställ tidigarefilbaserad policystate/policies

    För en kandidat som runnern skapat återställs det policyavsnitt som registrerats under dess mutations-id, och en misslyckad återställning flaggas. Manuella ändringar återställs inte automatiskt, och en osäker återställning stoppar nästa kandidat.

  6. _should_promote · KEEPgate.pylogga · observera: resultat · domsradrader i results · mutationsledger.py

    Mätning, dom och ursprung skrivs en gång som resultatrader; historiska rader skrivs aldrig om.

Kontroller · upprepad mätning

Körningen i juni 2026: en never-arm utan ändring och en K=5-baseline mätte auditbrus separat, och en KEEP från en enskild audit kontrollerades igen med upprepningar.

  1. run-2606-broken-tool-useköra · avgöra: tre armarloop med fast budgettrain.py

    Körningen 3–4 juni 2026 skilde drift från mutationseffekt med tre armar: never (ingen ändring), random (slumpmässig acceptans) och gate (accepterad av domen). Target var GPT-5.5; auditor och judge var Claude Opus 4.8.

  2. gen-0-baseline · medelvärde av 5 auditsrun-2606-broken-tool-usedata: baseline som medelvärde av K=5baseline · provenanceledger.py

    Gen-0-baselinen var medelvärdet av fem audits (Petri broken_tool_use, lägre är bättre, medelvärde 2.667).

  3. never-arm · kontroll utan ändringrun-2606-broken-tool-useköra · avgöra: mät utan ändringaudit-underprocess · fast timeoutmeasure.py

    Never-armen drev till ett medelvärde på 3.38 utan någon policyändring (10 audits, lägre är bättre): direkt belägg för att auditbruset översteg mutationseffekten.

  4. --replicate K · ommätningtrain.pyköra · avgöra: --replicate Kaudit-underprocess · fast timeoutmeasure.py

    Samma kandidat mäts K gånger till under samma villkor för att sålla bort en lyckosam enskild audit.

  5. replicate · mät om en enskild KEEPrun-2606-broken-tool-useköra · avgöra: ommätning → återställning_reject_and_revertgate.py

    En kandidat som behölls på en enda gate-audit (1.6) mätte 3.0–3.8 vid upprepningar, sämre än baselinen, så championen 2.667 återställdes. Körningens slutsats var att det inte fanns någon tydlig förbättring.

Alla kopplingar med samma tjocklek. Välj ett flöde för att bara markera dess väg, med numrerade steg.

  • Heldragen · riktningen som förfrågningar, kandidater och resultat flödar i
  • Streckad · köra, avgöra, auktorisera, konfigurera
  • Lång streck-punkt · loggar och observation, skilda från domen
  • Kraftig svart linje · det valda flödet; siffrorna anger ordningen
  • Ruta · en kod- eller logggräns, sökvägen i rubriken
  • Inre chip · en komponent inom gränsen
  • Streckad ruta · utanför gränsen
  • loop · mätkörning
  • kontrakt · dom
  • policy · loggar
  • ändring · auditerat target · körlogg

GEODE:s SIL-drivrutin heter autoresearch; dess prepare/train/program-form och fasta budget är inspirerade av Karpathys autoresearch. Inga modellvikter ändras, och apparat och budget förblir fasta under en jämförelse.

Vad som får ändras
Sju ytor: wrapper-prompt, verktygspolicy, råd om uppdelning, reflektion, metadata i skill-katalogen, agentkontrakt samt verktygsbeskrivningar och tips. Utvärderare, budget, seeds och bedömningsmatris förblir fasta under en jämförelse.
Körloggens omfång
Värdena för run-2606 är den körningens medelvärden för Petri broken_tool_use (lägre är bättre). De är inget belägg för kumulativ förbättring av SIL eller generalisering.