GEODE
Autonomous Agent Harness
Dall’osservazione all’azione successiva.
Un harness locale per agenti autonomi a cui affidare ricerca, lavoro sui file e attività pianificate.
L’accettazione dei candidati e l’autorità di rilascio sono giudizi separati.
Crucible è un kernel sperimentale separato dalla ricerca di policy. Un commit candidato viene validato rispetto alle superfici consentite e a un contratto congelato, i task appaiati vengono aggregati in un checkout di misura separato, e il risultato è KEEP, REJECT o INVALID.
Verdetto train
Un candidato entro la superficie consentita viene misurato in un checkout isolato con un contratto fisso, e regole preregistrate decidono tra KEEP, REJECT e INVALID.
propose → preflight
search/supervisor.pyeseguire · decidere: richiedere un candidatosearch/producersIl supervisor di ricerca chiede un candidato a un produttore. Il candidato di r14 era un candidato precedente (r13) riapplicato dal replay producer, non uno nuovo generato da un LLM.
search/producersdati: un commit candidatopropose → preflight
search/supervisor.pyUn produttore restituisce un singolo commit candidato entro i percorsi consentiti.
propose → preflight
search/supervisor.pyeseguire · decidere: superficie consentita · controllo del diffsuperficie consentita · candidate diffcontract.pyIl candidate diff deve restare entro la superficie consentita dal contratto, e il frozen evaluator viene verificato. In r14 e r35 il bersaglio consentito era un solo file, tau2_agent_policy.md; core e l’implementazione di Crucible erano fissati come percorso dell’evaluator.
evaluate → decide → record
search/supervisor.pyeseguire · decidere: checkout isolatoisolato dal produttoremeasurement checkoutIl candidato viene controllato in un checkout di misura separato dal produttore.
isolato dal produttore
measurement checkouteseguire · decidere: esecuzione con contratto fissoesecuzione tau2 · receiptassays/Baseline e candidato girano con lo stesso contratto, lo stesso seed e gli stessi task.
esecuzione tau2 · receipt
assays/dati: dialogo actor · utenteAmbiente tau2L’agente GEODE (actor) dialoga, nell’ambiente dei task tau2, con l’utente simulato di proprietà dell’evaluator.
esecuzione tau2 · receipt
assays/dati: chiamate al modelloModelli actor · userIn r14 e r35 sia l’actor sia l’utente simulato erano gpt-5.4/high (abbonamento).
verifier dei task
assays/dati: paired evidenceaggregato paired · task · familypromotion.pyI risultati del verifier dei task sono conservati come coppie baseline–candidato.
frozen evaluator · preregistrato
contract.pyeseguire · decidere: aggregazione preregistrataaggregato paired · task · familypromotion.pyI risultati appaiati vengono aggregati per task e per family preregistrata, mentre budget, copertura, infrastruttura e condizioni di sicurezza si controllano separatamente.
KEEP · REJECT · INVALID
promotion.pyeseguire · decidere: KEEP · l’head avanzasearch/* headrefs/crucibleCon KEEP il successivo head di refs/crucible/search/* diventa il candidato. La promotion_authority di un verdetto train è none.
Rifiuto · invalido · feedback
REJECT e INVALID mantengono l’head, e il candidato successivo riceve solo codici di fallimento e ID fissi dei task train. INVALID non è un punteggio pari a zero.
verifier dei task
assays/dati: paired evidenceaggregato paired · task · familypromotion.pyI risultati del verifier dei task sono conservati come coppie baseline–candidato.
frozen evaluator · preregistrato
contract.pyeseguire · decidere: aggregazione preregistrataaggregato paired · task · familypromotion.pyI risultati appaiati vengono aggregati per task e per family preregistrata, mentre budget, copertura, infrastruttura e condizioni di sicurezza si controllano separatamente.
KEEP · REJECT · INVALID
promotion.pydati: REJECT · INVALIDcodici di fallimento · ID dei task trainattempt/feedback.jsonIn caso di rifiuto o invalidità resta l’head precedente, e il candidato e i suoi registri vengono conservati. La media di un INVALID è null, non zero.
codici di fallimento · ID dei task train
attempt/feedback.jsondati: codici di fallimento · ID dei tasksearch/producersIl feedback al candidato successivo è limitato a codici di fallimento e ID fissi dei task train; non vengono passate traiettorie né risposte dell’evaluator.
Idoneità sealed · autorità separata
Il KEEP di train sposta solo l’head di ricerca. L’idoneità sealed arriva solo all’eligible ref; rilascio del prodotto e deployment sono autorità separate al di fuori di Crucible.
evaluate → decide → record
search/supervisor.pydati: record · ref receipttrain bundle · KEEP ricalcolatoattestation/bundle.pyUn train bundle è valido solo se contratto, prove di baseline e candidato, il KEEP ricalcolato, la genealogia della proposta, il registro del supervisor e la receipt del ref applicato sono tutti collegati. Non è un altro nome per un miglioramento.
train bundle · KEEP ricalcolato
attestation/bundle.pyeseguire · decidere: solo train bundle · una voltadisjoint test pack · usato una voltaattestation/sealed.pyLa valutazione sealed usa una sola volta un test pack disgiunto da train, con zero tentativi ripetuti per l’infrastruttura.
ELIGIBLE · release_authority none
attestation/sealed.pyeseguire · decidere: solo eligible refeligible/*refs/crucibleAnche ELIGIBLE scrive solo refs/crucible/eligible/*, e release_authority è fissato a none.
Registri pubblici · r14 · r35
r14 è stato train KEEP e poi sealed REJECT; r35 (July 13, 2026) è stato INVALID per copertura incompleta e contaminazione dell’infrastruttura (0 righe appaiate, media null), con l’head invariato.
KEEP · REJECT · INVALID
promotion.pydati: verdict.json pubblicogeode-eval-artifactsGli artefatti pubblici sono registri normalizzati fissati a 23e3428. L’hash preregistrato della configurazione train di r14 differisce dai byte della configurazione pubblica, quindi l’intera catena originale non è stata ricertificata.
attestation/sealed.pydati: sealed decision.jsonr14 · train KEEP → sealed REJECT
geode-eval-artifactsr14: KEEP su telecom train, 6 task × 1 tentativo (6 righe appaiate, nessuna autorità di promozione), poi un verdetto sealed separato di REJECT (nessuna autorità di rilascio).
Tutte le connessioni con lo stesso peso. Scegliendo un flusso se ne evidenzia solo il percorso, con passi numerati.
- Continua · la direzione in cui scorrono richieste, candidati e risultati
- Tratteggiata · eseguire, decidere, autorizzare, configurare
- Linea nera spessa · il flusso scelto; i numeri danno l’ordine
- Riquadro · un confine di codice o di registro, con il percorso nell’intestazione
- Chip interno · un componente in quel confine
- Riquadro tratteggiato · fuori da quel confine
- supervisor di ricerca
- contratto · verdetto · attestazione
- ref · registri
- produttori · esecuzione
Crucible è un kernel separato da SIL; le due ricerche non sono un’unica pipeline che promuove i candidati dell’altra. Il riquadro del rilascio del prodotto non ha connessioni in ingresso.
- Tre autorità
- Il KEEP di train sposta l’head di ricerca, un ELIGIBLE sealed registra un eligible ref, e il rilascio del prodotto è una decisione separata al di fuori di Crucible. Un verdetto precedente non concede mai un’autorità successiva.
- null non è zero
- r35 prevedeva 9 task × 3 tentativi (27 righe per braccio) ma ha avuto 0 coppie confrontabili, quindi media e miglioramento sono null. Non sono 27 task falliti né un tasso di successo dello 0%.