GEODE
Autonomous Agent Harness
Von der Beobachtung zur nächsten Handlung.
Ein lokales Harness für autonome Agenten, dem sich Recherche, Dateiarbeit und geplante Aufgaben übergeben lassen.
Kandidatenannahme und Release-Befugnis sind getrennte Urteile.
Crucible ist ein Experiment-Kernel, getrennt von der Policy-Suche. Ein Kandidaten-Commit wird gegen die erlaubten Flächen und einen eingefrorenen Vertrag validiert, gepaarte Aufgaben werden in einem separaten Mess-Checkout aggregiert, und das Ergebnis lautet KEEP, REJECT oder INVALID.
train-Urteil
Ein Kandidat innerhalb der erlaubten Fläche wird in einem isolierten Checkout unter festem Vertrag gemessen, und vorregistrierte Regeln entscheiden über KEEP, REJECT oder INVALID.
propose → preflight
search/supervisor.pyAusführen · Entscheiden: Kandidaten anfordernsearch/producersDer Such-Supervisor fordert von einem Erzeuger einen Kandidaten an. Der Kandidat von r14 war ein früherer Kandidat (r13), den der replay producer erneut angewandt hat, kein neu von einem LLM erzeugter.
search/producersDaten: ein Kandidaten-Commitpropose → preflight
search/supervisor.pyEin Erzeuger liefert einen einzelnen Kandidaten-Commit innerhalb der erlaubten Pfade.
propose → preflight
search/supervisor.pyAusführen · Entscheiden: erlaubte Fläche · diff-Prüfungerlaubte Fläche · candidate diffcontract.pyDer candidate diff muss innerhalb der vom Vertrag erlaubten Fläche bleiben, und der frozen evaluator wird verifiziert. In r14 und r35 war das erlaubte Ziel eine einzige Datei, tau2_agent_policy.md; core und die Crucible-Implementierung waren als evaluator-Pfad fixiert.
evaluate → decide → record
search/supervisor.pyAusführen · Entscheiden: isolierter Checkoutisoliert vom Erzeugermeasurement checkoutDer Kandidat wird in einem vom Erzeuger getrennten Mess-Checkout geprüft.
isoliert vom Erzeuger
measurement checkoutAusführen · Entscheiden: Lauf unter festem Vertragtau2-Lauf · receiptassays/Baseline und Kandidat laufen mit demselben Vertrag, demselben Seed und denselben Aufgaben.
tau2-Lauf · receipt
assays/Daten: Dialog actor · Nutzertau2-UmgebungDer GEODE-Agent (actor) spricht in der tau2-Aufgabenumgebung mit dem simulierten Nutzer, der dem evaluator gehört.
tau2-Lauf · receipt
assays/Daten: ModellaufrufeModelle für actor · userIn r14 und r35 waren actor und simulierter Nutzer beide gpt-5.4/high (Abonnement).
Aufgaben-Verifier
assays/Daten: paired evidenceAggregat paired · task · familypromotion.pyDie Ergebnisse des Aufgaben-Verifiers werden als Paare aus Baseline und Kandidat festgehalten.
frozen evaluator · vorregistriert
contract.pyAusführen · Entscheiden: vorregistrierte AggregationAggregat paired · task · familypromotion.pyGepaarte Ergebnisse werden nach Task und vorregistrierter Family aggregiert; Budget, Coverage, Infrastruktur und Sicherheitsbedingungen werden getrennt geprüft.
KEEP · REJECT · INVALID
promotion.pyAusführen · Entscheiden: KEEP · Head verschobensearch/* headrefs/crucibleBei KEEP wird der nächste Head von refs/crucible/search/* zum Kandidaten. Die promotion_authority eines train-Urteils ist none.
Ablehnung · ungültig · Rückmeldung
REJECT und INVALID behalten den Head, und der nächste Kandidat erhält nur Fehlercodes und feste IDs von train-Aufgaben. INVALID ist kein Score von 0.
Aufgaben-Verifier
assays/Daten: paired evidenceAggregat paired · task · familypromotion.pyDie Ergebnisse des Aufgaben-Verifiers werden als Paare aus Baseline und Kandidat festgehalten.
frozen evaluator · vorregistriert
contract.pyAusführen · Entscheiden: vorregistrierte AggregationAggregat paired · task · familypromotion.pyGepaarte Ergebnisse werden nach Task und vorregistrierter Family aggregiert; Budget, Coverage, Infrastruktur und Sicherheitsbedingungen werden getrennt geprüft.
KEEP · REJECT · INVALID
promotion.pyDaten: REJECT · INVALIDFehlercodes · IDs der train-Aufgabenattempt/feedback.jsonBei Ablehnung oder Ungültigkeit bleibt der vorherige Head, und Kandidat und Aufzeichnungen werden aufbewahrt. Ein INVALID-Mittelwert ist null, nicht 0.
Fehlercodes · IDs der train-Aufgaben
attempt/feedback.jsonDaten: Fehlercodes · Aufgaben-IDssearch/producersDie Rückmeldung an den nächsten Kandidaten beschränkt sich auf Fehlercodes und feste IDs von train-Aufgaben; Trajektorien oder Antworten des evaluator werden nicht weitergegeben.
sealed-Eignung · eigene Befugnis
Ein train-KEEP verschiebt nur den Such-Head. Die sealed-Eignung reicht nur bis zur eligible ref; Produkt-Release und Deployment sind eigene Befugnisse außerhalb von Crucible.
evaluate → decide → record
search/supervisor.pyDaten: record · ref receipttrain bundle · neu berechnetes KEEPattestation/bundle.pyEin train bundle gilt nur, wenn Vertrag, Belege für Baseline und Kandidat, das neu berechnete KEEP, die Herkunftskette des Vorschlags, die Aufzeichnung des Supervisors und das receipt der angewandten ref alle zusammenhängen. Es ist kein anderer Name für Verbesserung.
train bundle · neu berechnetes KEEP
attestation/bundle.pyAusführen · Entscheiden: nur train bundle · einmaldisjoint test pack · einmal genutztattestation/sealed.pyDie sealed-Evaluation nutzt ein zu train disjunktes test pack, einmal, mit 0 Infrastruktur-Wiederholungen.
ELIGIBLE · release_authority none
attestation/sealed.pyAusführen · Entscheiden: nur eligible refeligible/*refs/crucibleSelbst ELIGIBLE schreibt nur refs/crucible/eligible/*, und release_authority ist auf none fixiert.
Öffentliche Aufzeichnungen · r14 · r35
r14 war train KEEP, dann sealed REJECT; r35 (July 13, 2026) war INVALID wegen unvollständiger Coverage und Kontamination der Infrastruktur (0 gepaarte Zeilen, Mittelwert null), der Head blieb unverändert.
KEEP · REJECT · INVALID
promotion.pyDaten: öffentliche verdict.jsongeode-eval-artifactsDie öffentlichen Artefakte sind normalisierte Aufzeichnungen, fixiert auf 23e3428. Der vorregistrierte Hash der train-Konfiguration von r14 weicht von den Bytes der öffentlichen Konfiguration ab, daher ist die gesamte Originalkette nicht neu zertifiziert.
attestation/sealed.pyDaten: sealed decision.jsonr14 · train KEEP → sealed REJECT
geode-eval-artifactsr14: KEEP auf telecom train, 6 Aufgaben × 1 Versuch (6 gepaarte Zeilen, keine Hochstufungsbefugnis), dann ein separates sealed-Urteil REJECT (keine Release-Befugnis).
Alle Verbindungen in gleicher Stärke. Wird ein Ablauf gewählt, ist nur sein Pfad hervorgehoben, mit nummerierten Schritten.
- Durchgezogen · Richtung, in die Anfragen, Kandidaten und Ergebnisse fließen
- Gestrichelt · ausführen, entscheiden, autorisieren, konfigurieren
- Dicke schwarze Linie · der gewählte Ablauf; Nummern geben die Reihenfolge an
- Kasten · eine Code- oder Aufzeichnungsgrenze, Pfad in der Kopfzeile
- Innerer Chip · eine Komponente in dieser Grenze
- Gestrichelter Kasten · außerhalb dieser Grenze
- Such-Supervisor
- Vertrag · Urteil · Attestierung
- refs · Aufzeichnungen
- Erzeuger · Ausführung
Crucible ist ein von SIL getrennter Kernel; die beiden Suchen sind keine gemeinsame Pipeline, die die Kandidaten der jeweils anderen hochstuft. Der Kasten für das Produkt-Release hat keine eingehende Verbindung.
- Drei Befugnisse
- Ein train-KEEP verschiebt den Such-Head, ein sealed ELIGIBLE zeichnet eine eligible ref auf, und das Produkt-Release ist eine eigene Entscheidung außerhalb von Crucible. Ein früheres Urteil verleiht nie eine spätere Befugnis.
- null ist nicht 0
- r35 plante 9 Aufgaben × 3 Versuche (27 Zeilen pro Arm), hatte aber 0 vergleichbare Paare, daher sind Mittelwert und Verbesserung null. Es sind nicht 27 gescheiterte Aufgaben und keine Erfolgsquote von 0%.