Geodi, personnage officiel de GEODE en pixel art
Retour à la salle

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.

2026.02.21 — present

Conception, jugement, vérification : Author · implémentation : Claude · revue : Codex

  • CLIPublié · PyPI
  • Serveur MCPImplémenté

Decision Offloading w. Jev

Parmi les décisions intermédiaires qu’un agent prend en cours de tâche, lesquelles peut-on confier à Jev, un modèle dédié à la décision ? Cette recherche vérifie si une qualité de tâche vérifiée de manière indépendante se maintient une fois qu’elles le sont, en comptant la préparation, les jugements répétés, la réparation et la livraison finale. Les premiers pilotes ne s’expliquaient pas par le seul remplacement de l’appel de jugement ; le contrat d’entrée, le contrat de décision, la politique de probabilité et la consommation par l’agent d’exécution ont donc été séparés en expériences propres.

Carte Jev · runtime d’après le commit fixé 9e2c041, recherche d’après les enregistrements de September 2026
Chemins de jugement Jev : intégration au runtime et rechercheLa partie supérieure est le chemin de jugement optionnel du runtime GEODE actuel. Ce n’est que si judgment_engine vaut jev que la vérification finale et la réflexion appellent une fois Jev sur TypeSafe SystemOne, et une réponse n’est utilisée qu’après admission sur le type, la plage et la somme des probabilités. Seul supported passe la vérification finale, et le résultat va à la politique PostVerify et Stop du chapitre « Achèvement ». La partie inférieure est la recherche Jev v3 hors du runtime : un panel à états fixes (U3) a comparé les jugements d’Astra et de Jev, des exécutions E/I sur Harbor 0.22 n’ont changé que la voie de jugement et ont vérifié séparément résultats et livraison avec un oracle à règles indépendant, et le paquet public sépare hashes source et publics et propose un recalcul sans modèle.TypeSafe SystemOnejev-1.13.0 · jugement seulementJuge Astra · modèle acteurgpt-6-astra/xhigh · abonnementRapport de recherche Jevrapport technique publiccore/config/judgment.pyjudgment_engine · llm | jevauto → typesafe · openrouterloop/_lifecycle.pypolitique PostVerify · Stopcore/agent/verify.pyverdict final · une question Choiceseul supported passe · texte seuladapters/typesafe.pySystemOne · un appel · sans repliadmission · tolérance de somme 1e-5loop/_reflection.pyréflexion · classement des preuvesmemory · observabilitytimeline · lignes de décision du ledgerU3 · panel à états fixes120 paires · 27 sources · sans acteurAstra · Jev · même questionE/I · Harbor 0.22acteur Astra · outils · réparationvoie de jugement · Astra · Jev · Jev-firstrule oracleexactitude · livraison séparéesjev-v3-20260927E2E-DATA · hashes source · publicsREPRODUCE · model-freeRuntime GEODE · 9e2c041jugement optionnel · llm par défautRecherche Jev v3 · Sept 2026hors du runtime · harnais distinct1choisir la voie2 requête · candidat · observations · verdict final · une question Choice → SystemOne · un appel · sans repli23 un appel SystemOne · SystemOne · un appel · sans repli → TypeSafe SystemOne34 Choice admis · admission · tolérance de somme 1e-5 → seul supported passe · texte seul45passed · reflection6lignes de verdict1même choix2classer les preuves3 un appel SystemOne · SystemOne · un appel · sans repli → TypeSafe SystemOne34 classement · admission · tolérance de somme 1e-5 → réflexion · classement des preuves41Jugement Jev2Jugement Astra3résultats du panel · rapport1générer · outils · réparer2voie de jugement d’achèvement3 contrôle indépendant · E/I · Harbor 0.22 → exactitude · livraison séparées34lignée échec · réparation5recalcul sans modèle

Runtime · verdict final

Avec Jev sélectionné, la vérification finale appelle Jev une fois avec une question Choice, et seul un verdict supported admis passe.

  1. judgment_engine · llm | jevcore/config/judgment.pyexécuter · décider: choisir la voieverdict final · une question Choicecore/agent/verify.py

    La voie Jev n’est utilisée que si judgment_engine vaut jev (llm par défaut). provider auto choisit TypeSafe, puis OpenRouter, selon la clé disponible ; sans clé, la voie juge LLM demeure. Ce n’est pas un repli qui relance ailleurs une requête échouée.

  2. verdict final · une question Choicecore/agent/verify.pydonnées: requête · candidat · observationsSystemOne · un appel · sans repliadapters/typesafe.py

    La requête d’origine et le candidat sont caviardés et bornés, puis envoyés avec les observations d’outils sous forme d’une seule question Choice (supported, contradicted, insufficient_evidence). L’appel de jugement ne reçoit aucun outil (allow_tools=False). Un jugement qui nécessite des images n’est pas envoyé à Jev et devient verification_error.

  3. SystemOne · un appel · sans repliadapters/typesafe.pydonnées: un appel SystemOneTypeSafe SystemOne

    Un appel, directement à TypeSafe ou via OpenRouter, sans passage vers un autre fournisseur. Jev n’est jamais utilisé comme modèle racine de génération de texte.

  4. admission · tolérance de somme 1e-5adapters/typesafe.pydonnées: Choice admisseul supported passe · texte seulcore/agent/verify.py

    Une réponse n’est utilisée qu’après admission sur le type, la plage et la somme des probabilités (tolérance 1e-5). Seul supported passe ; contradicted et insufficient_evidence deviennent un signal de nouvelle tentative avec un contrôle suivant fixé. Une réponse qui n’est pas end_turn ou échoue à l’admission devient verification_error, qui n’est pas un signal de nouvelle tentative (should_retry=False). Le score est une projection binaire, pas une probabilité calibrée.

  5. seul supported passe · texte seulcore/agent/verify.pydonnées: passed · reflectionpolitique PostVerify · Stoploop/_lifecycle.py

    Le verdict va à la politique PostVerify et Stop du chapitre « Achèvement ». Un verdict est une entrée de cette politique, pas une autorité ; en attente de revue, le candidat ne subsiste que comme pending_text et la réponse finale est vide : rien n’est livré.

  6. politique PostVerify · Stoploop/_lifecycle.pyenregistrer · observer: lignes de verdicttimeline · lignes de décision du ledgermemory · observability

    Les décisions de verdict sont consignées dans la timeline et l’evidence ledger : des enregistrements du runtime, distincts des artefacts de recherche.

Runtime · réflexion

Le même choix pilote le classement des preuves de la réflexion ; la phrase de contrôle suivant est fixée par le code.

  1. judgment_engine · llm | jevcore/config/judgment.pyexécuter · décider: même choixréflexion · classement des preuvesloop/_reflection.py

    Le même choix s’applique à la réflexion.

  2. réflexion · classement des preuvesloop/_reflection.pydonnées: classer les preuvesSystemOne · un appel · sans repliadapters/typesafe.py

    La réflexion utilise Jev pour classer des preuves bornées et ajoute un contrôle suivant défini par le code. Elle ne modifie ni les hypothèses de croyance ni la confiance en soi.

  3. SystemOne · un appel · sans repliadapters/typesafe.pydonnées: un appel SystemOneTypeSafe SystemOne

    Un appel, directement à TypeSafe ou via OpenRouter, sans passage vers un autre fournisseur. Jev n’est jamais utilisé comme modèle racine de génération de texte.

  4. admission · tolérance de somme 1e-5adapters/typesafe.pydonnées: classementréflexion · classement des preuvesloop/_reflection.py

    Seul un classement admis met à jour l’état de réflexion ; en cas d’échec, le round suivant repart du même état antérieur.

Recherche · panel fixe U3

Sans acteur, les jugements de Jev et d’Astra sur le même état et la même question ont été comparés par paires.

  1. Astra · Jev · même questionU3 · panel à états fixesdonnées: Jugement JevTypeSafe SystemOne

    U3 (commit d’expérience d’origine 2f2b494) : 120 états fixes · 27 groupes de sources · 240 appels. Chaque état et chaque question sont allés à Jev et à Astra sous forme d’une paire ; ni acteur, ni outils, ni Harbor.

  2. Astra · Jev · même questionU3 · panel à états fixesdonnées: Jugement AstraJuge Astra · modèle acteur

    Exacts sur le même échantillon : Astra 90/120, Jev 84/120 ; médiane par appel 10.446 s contre 0.253 s. Il s’agit de la seule latence de l’appel de jugement, pas d’un temps de tâche ni d’une économie de coût.

  3. U3 · panel à états fixesdonnées: résultats du panel · rapportRapport de recherche Jev

    Les résultats d’exactitude et de latence de U3 figurent dans le rapport technique public. Il n’est pas affirmé ici que ce panel fasse partie du paquet public E2E.

Recherche · exécutions E/I

Avec Astra comme acteur, seule la voie de jugement a changé, et un oracle à règles indépendant a vérifié séparément résultats et livraison.

  1. acteur Astra · outils · réparationE/I · Harbor 0.22données: générer · outils · réparerJuge Astra · modèle acteur

    Dans E/I sur Harbor 0.22, l’acteur Astra assure génération, appels d’outils et réparation ; seule la voie de jugement change.

  2. voie de jugement · Astra · Jev · Jev-firstE/I · Harbor 0.22données: voie de jugement d’achèvementTypeSafe SystemOne

    E7 (commit d’expérience d’origine 1f65534) : 12 tâches synthétiques rédigées × 3 configurations × 2 exécutions = 72 exécutions, 24/24 par configuration. La configuration Jev-first a eu 0/24 replis effectifs ; son effet n’a donc pas été mesuré.

  3. E/I · Harbor 0.22enregistrer · observer: contrôle indépendantexactitude · livraison séparéesrule oracle

    Un oracle à règles indépendant vérifie le résultat final, et la livraison finale effective est comptée à part. Dans les 11 paires a posteriori de U8n, interrompu, chaque candidat a passé l’oracle, mais la livraison était Astra 11/11 et Jev Noul 0/11.

  4. E/I · Harbor 0.22données: lignée échec · réparationE2E-DATA · hashes source · publicsjev-v3-20260927

    Le paquet public E2E conserve les lignées de préparation, d’échec et de réparation, en séparant les hashes source et de copie publique. Une copie publique caviardée ne remplace pas la validation de la source inchangée.

  5. REPRODUCE · model-freejev-v3-20260927données: recalcul sans modèleRapport de recherche Jev

    Recalculer des chiffres à partir de réponses stockées et réexécuter sont des opérations différentes. Le rapport est un rapport technique public, et non un article évalué par des pairs.

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 mixte long · enregistrements et observation, distincts du verdict
  • 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
  • boucle · harnais d’exécution
  • choix de voie · verdict · oracle
  • enregistrements · paquet public
  • transport · panel de jugement

Les parties supérieure et inférieure sont des systèmes différents. Les configurations et résultats de recherche ne sont pas tous activés dans le chemin actuel du runtime ; le seul lien commun est que les deux appellent le même modèle Jev (jev-1.13.0).

Admission au runtime
Le runtime maintient une tolérance stricte de 1e-5 sur la somme des probabilités. Les appelants d’évaluation transmettent leur propre tolérance enregistrée au lieu d’assouplir l’analyseur du runtime.
Portée de la recherche
U3 ne mesure que les appels de jugement ; E/I inclut l’acteur et la réparation. Leurs dénominateurs ne sont jamais mélangés, et les 11 paires de U8n sont une analyse a posteriori d’une étude interrompue.

Trois contrats de décision

Choice

Retourne
Probabilité par catégorie ou option
Décide
Achèvement ; intention et cible d’une requête

Noul

Retourne
P(true) pour chaque condition
Décide
Contradiction ; preuves manquantes

Score

Retourne
Espérance et distribution sur une échelle ordinale fixe
Décide
Classement des candidats générés

L’espérance situe un candidat sur l’échelle ; elle n’est pas utilisée comme confiance.

Évaluation et branchement

Chaque contrat a été évalué sur son propre panel d’entrées fixe, et certains ont été branchés sur le chemin d’exécution du harnais d’expérimentation pour voir comment l’agent d’exécution consomme le jugement. Dans la carte ci-dessus, la partie recherche montre ces exécutions ; la partie runtime est le chemin optionnel du GEODE actuel.

Observations qui ont changé la conception

  1. I5 → I6 · contrat d’entrée
    1. Le traçage d’un échec de livraison commun a montré que l’entrée du jugement manquait du contrat de tâche et décrivait les observations d’outils de la même requête comme un contexte passé
    2. I6 a livré 6/6 dans une exécution distincte, avec le code révisé et un nouveau compte
  2. U3 · mêmes 120 paires d’états
    1. Médiane par appel Astra 10.446 s · Jev 0.253 s ; exacts sur le même échantillon 90/120 · 84/120
    2. Vitesse et exactitude sont pesées ensemble pour chaque décision afin de fixer le périmètre de délégation
  3. U2 · probabilités
    1. Les probabilités de Jev étaient mieux calibrées en valeur, mais Astra classait plus sûrement ses jugements erronés en tête
    2. Calibration et sélection des erreurs sont mesurées séparément, et le seuil est figé sur la partition de sélection
  4. U6a · intention et cible
    1. Sur 40 familles rédigées par le concepteur, Jev 216/220 · Astra 220/220, dans la marge préenregistrée de −5 pp
    2. Le classement fixe de l’intention et de la cible retenu comme prochain candidat d’application
  5. U8n · livraison
    1. 11 paires a posteriori d’une exécution interrompue : les candidats réparés ont passé l’oracle dans les deux bras ; livraison Astra 11/11 · Jev Noul 0/11
    2. Des jugements de preuves manquantes ont bloqué une livraison correcte ; la configuration Noul actuelle n’a pas de quoi servir de seul juge de livraison