GEODE
Autonomous Agent Harness
De l’observation à l’action suivante.
Un harnais local d’agent autonome auquel confier recherche, travail sur fichiers et tâches planifiées.
L’acceptation d’un candidat et l’autorité de publication sont des jugements distincts.
Crucible est un noyau d’expérimentation distinct de la recherche de politiques. Un commit candidat est validé contre les surfaces autorisées et un contrat figé, des tâches appariées sont agrégées dans un checkout de mesure séparé, et le résultat est KEEP, REJECT ou INVALID.
Verdict train
Un candidat dans la surface autorisée est mesuré sous contrat fixe dans un checkout isolé, et des règles préenregistrées décident KEEP, REJECT ou INVALID.
propose → preflight
search/supervisor.pyexécuter · décider: demander un candidatsearch/producersLe superviseur de recherche demande un candidat à un producteur. Le candidat de r14 était un candidat antérieur (r13) réappliqué par le producteur replay, et non un nouveau candidat généré par LLM.
search/producersdonnées: un commit candidatpropose → preflight
search/supervisor.pyUn producteur renvoie un commit candidat unique dans les chemins autorisés.
propose → preflight
search/supervisor.pyexécuter · décider: surface autorisée · contrôle du diffsurface autorisée · diff candidatcontract.pyLe diff candidat doit rester dans la surface autorisée par le contrat, et l’évaluateur figé est vérifié. Dans r14 et r35, la cible autorisée était un seul fichier, tau2_agent_policy.md ; core et l’implémentation de Crucible étaient figés comme chemin de l’évaluateur.
evaluate → decide → record
search/supervisor.pyexécuter · décider: checkout isoléisolé du producteurmeasurement checkoutLe candidat est contrôlé dans un checkout de mesure séparé du producteur.
isolé du producteur
measurement checkoutexécuter · décider: exécution sous contrat fixeexécution tau2 · receiptassays/Référence et candidat tournent avec le même contrat, la même graine et les mêmes tâches.
exécution tau2 · receipt
assays/données: dialogue acteur · utilisateurEnvironnement tau2L’agent GEODE (acteur) dialogue avec l’utilisateur simulé détenu par l’évaluateur, dans l’environnement de tâches tau2.
exécution tau2 · receipt
assays/données: appels de modèleModèles acteur · utilisateurDans r14 et r35, l’acteur comme l’utilisateur simulé étaient gpt-5.4/high (abonnement).
vérificateur de tâche
assays/données: paired evidenceagrégat apparié · tâche · famillepromotion.pyLes résultats du vérificateur de tâche sont conservés en paires référence–candidat.
évaluateur figé · préenregistré
contract.pyexécuter · décider: agrégation préenregistréeagrégat apparié · tâche · famillepromotion.pyLes résultats appariés sont agrégés par tâche et par famille préenregistrée, avec des contrôles séparés pour le budget, la couverture, l’infrastructure et la sûreté.
KEEP · REJECT · INVALID
promotion.pyexécuter · décider: KEEP · la tête avancesearch/* headrefs/crucibleSur KEEP, la tête suivante de refs/crucible/search/* devient le candidat. La promotion_authority d’un verdict train vaut none.
Rejet · invalide · retour
REJECT et INVALID conservent la tête, et le candidat suivant ne reçoit que des codes d’échec et des ID fixes de tâches train. INVALID n’est pas un score nul.
vérificateur de tâche
assays/données: paired evidenceagrégat apparié · tâche · famillepromotion.pyLes résultats du vérificateur de tâche sont conservés en paires référence–candidat.
évaluateur figé · préenregistré
contract.pyexécuter · décider: agrégation préenregistréeagrégat apparié · tâche · famillepromotion.pyLes résultats appariés sont agrégés par tâche et par famille préenregistrée, avec des contrôles séparés pour le budget, la couverture, l’infrastructure et la sûreté.
KEEP · REJECT · INVALID
promotion.pydonnées: REJECT · INVALIDcodes d’échec · ID de tâches trainattempt/feedback.jsonEn cas de rejet ou d’invalidité, la tête précédente reste, et le candidat et ses enregistrements sont conservés. Une moyenne INVALID est null, pas zéro.
codes d’échec · ID de tâches train
attempt/feedback.jsondonnées: codes d’échec · ID de tâchessearch/producersLe retour au candidat suivant se limite aux codes d’échec et aux ID fixes des tâches train ; aucune trajectoire ni réponse de l’évaluateur n’est transmise.
Éligibilité scellée · autorité distincte
Le KEEP train ne fait que déplacer la tête de recherche. L’éligibilité scellée n’atteint que la ref eligible ; publication du produit et déploiement sont des autorités distinctes, hors de Crucible.
evaluate → decide → record
search/supervisor.pydonnées: record · ref receiptbundle train · KEEP recalculéattestation/bundle.pyUn bundle train ne tient que si le contrat, les preuves de la référence et du candidat, le KEEP recalculé, la lignée des propositions, l’enregistrement du superviseur et le receipt de la ref appliquée se relient tous. Ce n’est pas un autre nom de l’amélioration.
bundle train · KEEP recalculé
attestation/bundle.pyexécuter · décider: bundle train seulement · une foistest pack disjoint · utilisé une foisattestation/sealed.pyL’évaluation scellée utilise une seule fois un test pack disjoint de train, sans aucune nouvelle tentative d’infrastructure.
ELIGIBLE · release_authority none
attestation/sealed.pyexécuter · décider: ref eligible seulementeligible/*refs/crucibleMême ELIGIBLE n’écrit que refs/crucible/eligible/*, et release_authority est fixé à none.
Enregistrements publics · r14 · r35
r14 a été KEEP en train puis REJECT en scellé ; r35 (July 13, 2026) a été INVALID pour couverture incomplète et contamination d’infrastructure (0 ligne appariée, moyenne null), tête inchangée.
KEEP · REJECT · INVALID
promotion.pydonnées: verdict.json publicgeode-eval-artifactsLes artefacts publics sont des enregistrements normalisés fixés à 23e3428. Le hash préenregistré de la config train de r14 diffère des octets de la config publique ; la chaîne d’origine complète n’est donc pas recertifiée.
attestation/sealed.pydonnées: sealed decision.jsonr14 · train KEEP → sealed REJECT
geode-eval-artifactsr14 : KEEP sur telecom train, 6 tâches × 1 essai (6 lignes appariées, sans autorité de promotion), puis un verdict scellé distinct REJECT (sans autorité de publication).
Toutes les connexions avec la même épaisseur. Choisissez un flux pour ne mettre en évidence que son chemin, avec des étapes numérotées.
- Trait plein · sens de circulation des requêtes, candidats et résultats
- Tirets · exécuter, décider, autoriser, configurer
- Trait noir épais · le flux sélectionné ; les numéros donnent l’ordre
- Cadre · frontière de code ou d’enregistrement, chemin dans l’en-tête
- Pastille intérieure · composant de cette frontière
- Cadre en tirets · hors de cette frontière
- superviseur de recherche
- contrat · verdict · attestation
- refs · enregistrements
- producteurs · exécution
Crucible est un noyau distinct de SIL ; les deux recherches ne forment pas un pipeline unique qui promeut les candidats de l’autre. Le cadre de publication du produit n’a aucune connexion entrante.
- Trois autorités
- Le KEEP train déplace la tête de recherche, l’ELIGIBLE scellé consigne une ref eligible, et la publication du produit est une décision distincte, hors de Crucible. Un verdict antérieur n’accorde jamais une autorité ultérieure.
- Null n’est pas zéro
- r35 prévoyait 9 tâches × 3 essais (27 lignes par bras) mais n’a eu aucune paire comparable ; sa moyenne et son amélioration sont donc null. Ce ne sont ni 27 tâches échouées ni un taux de réussite de 0%.