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.
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.
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.
judgment_engine · llm | jev
core/config/judgment.pyexécuter · décider: choisir la voieverdict final · une question Choicecore/agent/verify.pyLa 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.
verdict final · une question Choice
core/agent/verify.pydonnées: requête · candidat · observationsSystemOne · un appel · sans repliadapters/typesafe.pyLa 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.
SystemOne · un appel · sans repli
adapters/typesafe.pydonnées: un appel SystemOneTypeSafe SystemOneUn 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.
admission · tolérance de somme 1e-5
adapters/typesafe.pydonnées: Choice admisseul supported passe · texte seulcore/agent/verify.pyUne 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.
seul supported passe · texte seul
core/agent/verify.pydonnées: passed · reflectionpolitique PostVerify · Stoploop/_lifecycle.pyLe 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é.
politique PostVerify · Stop
loop/_lifecycle.pyenregistrer · observer: lignes de verdicttimeline · lignes de décision du ledgermemory · observabilityLes 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.
judgment_engine · llm | jev
core/config/judgment.pyexécuter · décider: même choixréflexion · classement des preuvesloop/_reflection.pyLe même choix s’applique à la réflexion.
réflexion · classement des preuves
loop/_reflection.pydonnées: classer les preuvesSystemOne · un appel · sans repliadapters/typesafe.pyLa 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.
SystemOne · un appel · sans repli
adapters/typesafe.pydonnées: un appel SystemOneTypeSafe SystemOneUn 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.
admission · tolérance de somme 1e-5
adapters/typesafe.pydonnées: classementréflexion · classement des preuvesloop/_reflection.pySeul 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.
Astra · Jev · même question
U3 · panel à états fixesdonnées: Jugement JevTypeSafe SystemOneU3 (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.
Astra · Jev · même question
U3 · panel à états fixesdonnées: Jugement AstraJuge Astra · modèle acteurExacts 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.
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.
acteur Astra · outils · réparation
E/I · Harbor 0.22données: générer · outils · réparerJuge Astra · modèle acteurDans 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.
voie de jugement · Astra · Jev · Jev-first
E/I · Harbor 0.22données: voie de jugement d’achèvementTypeSafe SystemOneE7 (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é.
E/I · Harbor 0.22enregistrer · observer: contrôle indépendantexactitude · livraison séparées
rule oracleUn 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.
E/I · Harbor 0.22données: lignée échec · réparationE2E-DATA · hashes source · publics
jev-v3-20260927Le 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.
REPRODUCE · model-free
jev-v3-20260927données: recalcul sans modèleRapport de recherche JevRecalculer 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
- I5 → I6 · contrat d’entrée
- 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é
- I6 a livré 6/6 dans une exécution distincte, avec le code révisé et un nouveau compte
- U3 · mêmes 120 paires d’états
- Médiane par appel Astra 10.446 s · Jev 0.253 s ; exacts sur le même échantillon 90/120 · 84/120
- Vitesse et exactitude sont pesées ensemble pour chaque décision afin de fixer le périmètre de délégation
- U2 · probabilités
- Les probabilités de Jev étaient mieux calibrées en valeur, mais Astra classait plus sûrement ses jugements erronés en tête
- Calibration et sélection des erreurs sont mesurées séparément, et le seuil est figé sur la partition de sélection
- U6a · intention et cible
- Sur 40 familles rédigées par le concepteur, Jev 216/220 · Astra 220/220, dans la marge préenregistrée de −5 pp
- Le classement fixe de l’intention et de la cible retenu comme prochain candidat d’application
- U8n · livraison
- 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
- 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