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.
Kandidatacceptans och releasebefogenhet är separata bedömningar.
Crucible är en experimentkärna skild från policysökning. En kandidat-commit valideras mot de tillåtna ytorna och ett fryst kontrakt, parade uppgifter aggregeras i en separat mät-checkout och resultatet är KEEP, REJECT eller INVALID.
Train-dom
En kandidat inom den tillåtna ytan mäts under fast kontrakt i en isolerad checkout, och förregistrerade regler avgör KEEP, REJECT eller INVALID.
propose → preflight
search/supervisor.pyköra · avgöra: begär en kandidatsearch/producersSökningens supervisor ber en producent om en kandidat. Kandidaten i r14 var en tidigare kandidat (r13) som replay-producenten tillämpade igen, inte en ny LLM-genererad.
search/producersdata: en kandidat-commitpropose → preflight
search/supervisor.pyEn producent returnerar en enda kandidat-commit inom de tillåtna sökvägarna.
propose → preflight
search/supervisor.pyköra · avgöra: tillåten yta · diff-kontrolltillåten yta · kandidat-diffcontract.pyKandidatens diff måste hålla sig inom kontraktets tillåtna yta, och den frysta evaluatorn verifieras. I r14 och r35 var det tillåtna målet en fil, tau2_agent_policy.md; core och Crucible-implementationen var låsta som evaluatorväg.
evaluate → decide → record
search/supervisor.pyköra · avgöra: isolerad checkoutisolerad från producentenmeasurement checkoutKandidaten kontrolleras i en mät-checkout skild från producenten.
isolerad från producenten
measurement checkoutköra · avgöra: körning under fast kontrakttau2-körning · kvittoassays/Baseline och kandidat körs med samma kontrakt, seed och uppgifter.
tau2-körning · kvitto
assays/data: actor · användardialogtau2-miljöGEODE-agenten (actor) talar med den evaluatorägda simulerade användaren i tau2-uppgiftsmiljön.
tau2-körning · kvitto
assays/data: modellanropModeller: actor · användareI r14 och r35 var både actor och simulerad användare gpt-5.4/high (prenumeration).
uppgiftsverifierare
assays/data: paired evidenceparat · aggregat per uppgift · familjpromotion.pyUppgiftsverifierarens resultat sparas som par av baseline och kandidat.
fryst evaluator · förregistrerad
contract.pyköra · avgöra: förregistrerad aggregeringparat · aggregat per uppgift · familjpromotion.pyParade resultat aggregeras per uppgift och förregistrerad familj, och villkor för budget, täckning, infrastruktur och säkerhet kontrolleras separat.
KEEP · REJECT · INVALID
promotion.pyköra · avgöra: KEEP · head flyttassearch/* headrefs/crucibleVid KEEP blir nästa head i refs/crucible/search/* kandidaten. En train-doms promotion_authority är none.
Avvisad · ogiltig · feedback
REJECT och INVALID behåller head, och nästa kandidat får bara felkoder och fasta id:n för train-uppgifter. INVALID är inte poängen noll.
uppgiftsverifierare
assays/data: paired evidenceparat · aggregat per uppgift · familjpromotion.pyUppgiftsverifierarens resultat sparas som par av baseline och kandidat.
fryst evaluator · förregistrerad
contract.pyköra · avgöra: förregistrerad aggregeringparat · aggregat per uppgift · familjpromotion.pyParade resultat aggregeras per uppgift och förregistrerad familj, och villkor för budget, täckning, infrastruktur och säkerhet kontrolleras separat.
KEEP · REJECT · INVALID
promotion.pydata: REJECT · INVALIDfelkoder · id:n för train-uppgifterattempt/feedback.jsonVid avvisning eller ogiltighet ligger föregående head kvar, och kandidaten och dess loggar bevaras. Ett INVALID-medelvärde är null, inte noll.
felkoder · id:n för train-uppgifter
attempt/feedback.jsondata: felkoder · uppgifts-id:nsearch/producersFeedback till nästa kandidat begränsas till felkoder och fasta id:n för train-uppgifter; inga evaluatortrajektorier eller svar förs vidare.
Förseglad kvalificering · separat befogenhet
Train-KEEP flyttar bara sökningens head. Förseglad kvalificering når bara eligible-ref:en; produktrelease och driftsättning är separata befogenheter utanför Crucible.
evaluate → decide → record
search/supervisor.pydata: record · ref receipttrain-bundle · omräknad KEEPattestation/bundle.pyEn train-bundle håller bara när kontrakt, belägg för baseline och kandidat, den omräknade KEEP, förslagets härstamning, supervisorloggen och kvittot för den tillämpade ref:en alla hänger ihop. Den är inte ett annat namn för förbättring.
train-bundle · omräknad KEEP
attestation/bundle.pyköra · avgöra: endast train-bundle · en gångdisjunkt testpaket · används en gångattestation/sealed.pyFörseglad utvärdering använder ett testpaket som är disjunkt från train, en gång och utan omförsök vid infrastrukturfel.
ELIGIBLE · release_authority none
attestation/sealed.pyköra · avgöra: endast eligible-refeligible/*refs/crucibleÄven ELIGIBLE skriver bara refs/crucible/eligible/*, och release_authority är låst till none.
Offentliga loggar · r14 · r35
r14 var train-KEEP och sedan förseglad REJECT; r35 (13 juli 2026) var INVALID på grund av ofullständig täckning och kontaminering från infrastrukturen (0 parade rader, medelvärde null), med oförändrat head.
KEEP · REJECT · INVALID
promotion.pydata: offentlig verdict.jsongeode-eval-artifactsDe offentliga artefakterna är normaliserade loggar låsta vid 23e3428. Den förregistrerade train-config-hashen för r14 skiljer sig från de offentliga config-byten, så hela den ursprungliga kedjan är inte omcertifierad.
attestation/sealed.pydata: sealed decision.jsonr14 · train KEEP → sealed REJECT
geode-eval-artifactsr14: KEEP på telecom-train, 6 uppgifter × 1 försök (6 parade rader, ingen befordringsbefogenhet), sedan en separat förseglad dom på REJECT (ingen releasebefogenhet).
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
- 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
- sökningens supervisor
- kontrakt · dom · attestering
- refs · loggar
- producenter · exekvering
Crucible är en kärna skild från SIL; de två sökningarna är inte en pipeline som befordrar varandras kandidater. Rutan för produktrelease har ingen inkommande förbindelse.
- Tre befogenheter
- Train-KEEP flyttar sökningens head, förseglad ELIGIBLE registrerar en eligible-ref och produktrelease är ett separat beslut utanför Crucible. En tidigare dom ger aldrig en senare befogenhet.
- Null är inte noll
- r35 planerade 9 uppgifter × 3 försök (27 rader per arm) men hade 0 jämförbara par, så medelvärde och förbättring är null. Det är inte 27 misslyckade uppgifter eller en lyckandegrad på 0%.