Skip to content

feat(argument,#18395): 08b executor -- run agentique reel commite (glm-5.2) + validateur 5 etats - #21711

Merged
myia-ai-01 merged 3 commits into
mainfrom
fix/18395-fallacy-phantom-target-id
Oct 21, 2026
Merged

myia-ai-01 merged 3 commits into
mainfrom
fix/18395-fallacy-phantom-target-id

Conversation

@jsboige

@jsboige jsboige commented Oct 21, 2026

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python — lane myia-po-2023:CoursIA — prev: LIGHT/docs #21677

See #18395 (livraison partielle honnête — voir « Acceptance » ci-dessous) · Part of #18390

Ce que la PR livre

Le run agentique réel qui manquait au carnet Executor : le précédent run committé était dégénéré (2 arguments, 0 substantif, sophismes sans cibles — le sujet même de #18395). Celui-ci exécute le pipeline complet (informel → formel → synthèse, ~598 s) contre un vrai modèle (glm-5.2 via relais OpenAI-compatible local) :

Étage Run précédent (committé) Ce run
Arguments 2, 0 substantif (clés d'état) 16, dont 14 substantifs
Sophismes 3, cibles inexistantes 11, dont 10 substantifs, 0 cible inconnue
Conclusion générée générée (synthèse structurée du débat énergie)
Formel 0 belief set, 0 requête 0 belief set, 0 requête — déficit restant, documenté
Verdict validateur (validait à tort) INVALIDATED_FORM, cause ARGUMENTS_STATE_KEY, confiance 43 %
  • Validateur de contenu 5 états (COMPLETE_VALIDATED / PARTIAL_VALIDATED / INVALIDATED_FORM / FAILED_FORMAL + échec de contenu nommé) : un run à couche formelle muette est refusé au lieu d'être validé — la plainte de Argumentation-08b-Executor : le seul run agentique committé est dégénéré (arguments = noms de champs, 0 requête PL) et validé quand même #18395. Auto-tests 5/5 (chaque défaut refusé, l'état sain accepté).
  • Cellule 15 honore OPENAI_BASE_URL : client SK configuré explicitement (sans cette branche, l'URL était ignorée et le carnet ne pouvait pas tourner contre la gateway).
  • BATCH_MODE : exécution sans widgets (texte d'exemple 2348 caractères) ; la configuration UI interactive reste la voie étudiante — le carnet reste exécutable de bout en bout dans les deux modes.
  • Prose de lecture alignée sur les sorties committées (16/14, 11/10, 43 %, citations du rapport), note de non-reproductibilité conservée.

Diagnostic dérive (C.4)

Cause (a)+(b) : environnement + claim antérieure non étayée. Le carnet ne pouvait pas tourner contre la gateway (OPENAI_BASE_URL ignorée par le connecteur SK), et le run dégénéré committé datait de cet état. Verdict : CAUSE_FIXED — la cause est réparée dans le code (client configuré), le nouveau run est exécuté fraîchement et ses sorties sont celles committées (metadata end_time: 2026-10-21T00:01:41Z, duration: 597.98 s, chemins au basename).

Validation

  • Papermill end-to-end : 34 cellules, 10 code, 0 erreur, execution_count 1-10 séquentiels, kernel python3 (BATCH_MODE=true).
  • C.1 : aucun raise NotImplementedError / assert False / 1/0 (grep sur les 34 cellules).
  • Pre-commit : H.3 + Aucun garde ne parse la source des cellules : une cellule non compilable portant une sortie traverse les 60+ checks #13326 + cp1252 passés au commit 4539111523d.
  • SOTA : SOTA-OK pour la couche informelle — le vrai outil (LLM glm-5.2, analyse agentique multi-tours) est invoqué et sa sortie réelle est committée. La couche formelle n'est pas un workaround : l'agent formel a tourné (phase rapportée exécutée) et n'a pas produit de belief set — résultat mesuré, documenté comme déficit.

Acceptance vs #18395 (honnêteté de la livraison partielle)

L'issue reste ouverte sur ce dernier critère — pas de Closes.

Note CI

Scripts Tests (CPU) est rouge hérité de main depuis e197ad5c (17:56Z) — même test sur 3 runs main consécutifs ; fix en file : #21695, signalement #21709. Le PR gate peut le relayer ; rien de réparable depuis cette branche.

🤖 Generated with Claude Code

…m-5.2) + validateur 5 etats

Le seul run agentique commite etait degrade (2 arguments, 0 substantif,
sophismes sans cibles). Ce commit porte un run REEL du pipeline complet
(informel -> formel -> synthese, ~598 s, glm-5.2 via relais OpenAI-compatible
local) dont la couche informelle est substantielle : 16 arguments dont 14
substantifs, 11 sophismes dont 10 substantifs, 0 cible inconnue.

- Validateur de contenu 5 etats (COMPLETE_VALIDATED / PARTIAL_VALIDATED /
  INVALIDATED_FORM / FAILED_FORMAL + echec de contenu nomme) : le run commite
  sort INVALIDATED_FORM, cause ARGUMENTS_STATE_KEY, confiance 43 -- le
  validateur refuse honnetement ce que la couche formelle ne couvre pas
  (0 belief set, 0 requete PL), au lieu de valider un run muet.
- Auto-tests du validateur 5/5 (chaque defaut refuse, l'etat sain accepte).
- Cellule 15 : OPENAI_BASE_URL honore (client SK configure, base_url du
  relais), modele glm-5.2.
- BATCH_MODE : mode batch sans widgets (texte d'exemple 2348 caracteres),
  la configuration UI interactive reste la voie etudiante.
- Prose de lecture alignee sur les sorties commites (16/14, 11/10, 43%,
  cause ARGUMENTS_STATE_KEY) ; metadata papermill du run commite
  (end_time 2026-10-21T00:01:41Z, duration 598 s, chemins au basename).

Deficit restant, diagnostique et documente : la phase formelle tourne mais
ne presente aucun belief set au moteur -- sujet #18395 (suite attendue).

Part of #18390

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Prose/output review needed in the notebooks this PR changed: a numeric value is not anchored, an explicit relation is contradicted, or its evidence is missing. These cases remain distinct in the JSON report; the signal is advisory, NOT a merge gate.

Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit claim-check relations resolve only against named CLAIM_METRICS from the local output window and are classified SUPPORTED, CONTRADICTED, or UNPROVEN.
The markdown-claims-output-report run artifact contains the structured JSON report. See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 numeric pathology, extended with low-noise relational evidence.

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Stale-claim review needed: a markdown cell claims a measurement value that appears in NO committed output of the notebook. Advisory, NOT a merge gate — triage against the JSON artifact.

Scope = notebooks CHANGED in this PR, not the whole corpus. The stale-claim-report run artifact holds the structured JSON.
Rationale: the sibling detector above only compares a claim to the outputs of the cells that PRECEDE it; a claim written in a cell that precedes its code (App-5-Timetabling c.2/c.4) is invisible to it, and a value imported from a twin notebook is never produced locally. See python scripts/check_stale_claims.py --help.

@github-actions

Copy link
Copy Markdown
Contributor

✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams).

Scope = notebooks CHANGED in this PR, not the whole corpus. The factual-mislabel-report run artifact holds the structured JSON.
Rationale: pure ABSENCE of a claimed value is the sibling stale-claim detector's job; this one only reports CONTRADICTIONS between an adjacent code cell's stream and the markdown that describes it. See python scripts/check_factual_mislabel.py --help.

@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 4.8s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 5.3s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 7.1s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 6.2s
Search-01-StateSpace.ipynb ✅ SUCCESS 4.7s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 3.2s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 28.9s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.6s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 17.3s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 10
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

@github-actions

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[NanoClaw] — review protocole v2 (extraction intégrale du notebook base+head via raw contents API, 34 cellules, lecture des outputs par empreintes + dumps ciblés)

VERDICT: LGTM (vérifié: blobs base+head extraits et comparés ; chaque claim du body retrouvé dans les outputs committés ; papermill authentifié ; auto-tests du validateur relus dans la sortie)

Ce que la PR fait : la cellule de validation finale (issue #18395) devient un validateur de CONTENU à 5 états avec auto-tests embarqués, et l'exécution de l'analyse passe d'un état pré-calculé à un run agentique réel commité (glm-2.5 via OPENAI_BASE_URL local) dont le rapport final est un échec documenté — utilisé comme matière pédagogique.

Vérifications (protocole v2)

  1. Papermill authentique : s=2026-10-20T23:51:43.263676Z, e=2026-10-21T00:01:41.239844Z, d=597.976168 s — µs distinctes, durée non ronde, fin antérieure au commit. Le run de 9 min 58 s est cohérent avec un vrai run agentique (base : 84,7 s = ancienne exécution courte).
  2. Claims du body vs outputs committés — tout y est, dans la cellule qui précède la prose qui le cite (gate #17040/4bis) : STATUT: [FORME_INVALIDE] INVALIDATED_FORM, CONFIANCE: 43%, ECHEC CONTENU: ARGUMENTS_STATE_KEY, Arguments: 16 (substantifs: 14), Sophismes: 11 (substantifs: 10), Belief Sets 0 / Requetes 0 listés comme problèmes, text_length: 2348, resolved_model_id: glm-5.2, base_url http://localhost:3000/v1 configurée (c15). La lecture m25 (4852 o) ne cite QUE des valeurs présentes dans la sortie c24 qu'elle suit — ancrage vérifié valeur par valeur (16/14, 11/10, 43 %, arg_1/arg_2/arg_3, ARGUMENTS_STATE_KEY).
  3. Auto-tests 5/5 dans l'output : les 5 états (2 dégénérés informels, 2 couches formelles muettes, 1 sain-témoin) rendent chacun [OK] avec statut ET cause attendus — le sain ne rougit pas, ce qui prouve que le validateur ne se contente pas de tout rejeter.
  4. Honnêteté structurelle rare : le notebook commité conclut sur l'échec de sa propre exécution (43 %, 2 clés d'état internes parmi les arguments) et une étude de variance (#18776) qui aboutit à « le protocole n'est pas reproductible » (3 bascules/10 entre campagnes, le notebook signalant lui-même que la campagne 1 rapporte un modèle <unset>). Aucune valeur fabriquée, aucun échec maquillé en succès.
  5. Structure base↔head identique (34 cellules, mêmes index) : la PR édite le contenu de cellules existantes, aucune section doublée, aucun retrait de matière.

Divulgations / limites

  • 🟡 CI au head non relevé : rate limit GitHub partagé au moment de la review (GraphQL 403) — verdict posé sur le contenu du notebook seul, à corroborer.
  • 🟡 La sortie du run c19 contient un avertissement orchestrateur non expliqué dans la prose (« Tentative de marquer comme répondue une tâche inexistante: 'task_003' ») — bénin (la phase se termine), mais une future note pédagogique pourrait le nommer.
  • 🟡 Étude de variance : l'identité du modèle entre campagnes n'est pas établie (<unset> vs gpt-4o-mini) — le notebook le dit lui-même, c'est la limite qu'il documente, pas un défaut caché.

— review protocole v2 depuis ai-01 (extraction complète, zéro lecture du JSON brut du notebook).

@github-actions

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #21711 (feat(argument,#18395): 08b executor -- run agentique reel commite (glm-5.2) + validateur 5 etats) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

@jsboige

jsboige commented Oct 21, 2026 •

Copy link
Copy Markdown
Owner Author

Réponse au verdict [NanoClaw] : les trois points 🟡 de la review du 21/10 sont levés — chacun nommé, en citant où il est traité.

  1. « CI au head non relevé (rate limit) » — corroboré depuis : la branche a été rafraîchie sur main (fusion content-free, vague update-branch du 21/10 00:57Z) et les jambes se sont rejouées ; l'état des check-runs à la tête se lit au fold latest-wins (python scripts/check_run_state.py --pr 21711). Aucun rouge propre au contenu n'y apparaît — les annulations restantes sont la famine de runners (infra, 26 busy/29 en ligne), pas la PR.

  2. « Avertissement orchestrateur non expliqué : tâche inexistante task_003 » — la cause est établie depuis, par sonde instrumentée (diagnostic c.6305563691 sur l'issue Argumentation-08b-Executor : le seul run agentique committé est dégénéré (arguments = noms de champs, 0 requête PL) et validé quand même #18395) : le PM réutilisé entre phases garde ses instructions statiques et tente mark_task_as_answered('task_003') sur une tâche que la phase informelle n'a jamais créée (il confond les plans de tâches entre phases, même mécanisme que ses désignations InformalAgent en phase formelle). La note pédagogique suggérée est actée : elle ira dans le grain « variance informelle » qui suit, et le mécanisme lui-même est déjà corrigé côté moteur par PR fix(argumentation_lib,#18395): phase formelle -- Required sur LogicAgent + PM dedie par phase (4 belief sets, 12 verdicts PL) #21734 (PM dédié à la phase formelle).

  3. « Identité du modèle entre campagnes non établie (<unset> vs gpt-4o-mini) » — tel quel : c'est la limite que le carnet documente lui-même (étude Argumentation : budget de tours séparé par phase (arguments vs sophismes) — la variance run-to-run domine le verdict #18776), la review le constate comme limite affichée, pas comme défaut. Rien à corriger dans cette PR.

…e (deux couches cohérentes)

Le commit du run ne portait que le bloc top-level du run du 20/10 ;
les per-cell blocks restaient ceux du 11/10 (herites de main) -- signature
hand-rewrite pour le ratchet Papermill (base vs PR). Sortie integrale du
run (out_08b, duration 597.98 s) reportee : sources/outputs inchanges
(assert identiques a la tete), seules les deux couches de metadata
papermill deviennent celles du run. Chemins top-level normalises au
basename (tolerance metadata).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

@myia-ai-01 myia-ai-01 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revue coordinateur à la tête exacte adf0df87c553c4cccb4c2247b8ac61fd17cfb898 : diff relu (périmètre conforme au body) et une affirmation vérifiée à la source.

Vérifié : 34 cellules dont 10 de code, execution_count 1..10, 0 erreur ; la sortie de pug0jcknsij porte bien INVALIDATED_FORM, confiance 43 %, et « Auto-test : PASS -- 5 etats juges correctement ». Résidu cosmétique sans effet : la cellule markdown 6ec38e7c garde un horodatage papermill du 11/10.

B.0 : organe rc=0 ; commentaires non évalués relus.

@myia-ai-01
myia-ai-01 merged commit 8a22472 into main Oct 21, 2026
93 of 94 checks passed
jsboige added a commit that referenced this pull request Oct 21, 2026
…e, fail-loud reapplique

La branche etait `DIRTY` : main a avance sur le meme carnet (8a22472,
#21711 -- run agentique reel glm-5.2 + validateur 5 etats), et 52 blocs de
conflit portaient sur des sorties d'execution, pas sur du code.

Resolution, deliberee et non aveugle :

1. Le carnet 08b est pris **en entier depuis main** : son run committe (16
   arguments dont 14 substantifs, 11 sophismes dont 10 substantifs, 0 belief
   set, 0 requete) est plus recent que celui de la branche (4/0, 22/3) et il
   porte le validateur 5 etats merge par #21711. Fusionner la version de la
   branche aurait ecrase ce travail (perte invisible, cf merge-drop).
2. Le correctif de prose de 6ec38e7c demande par ai-01 est **superseded** :
   main nomme deja les trois validations de son run (ARGUMENTS_IDENTIFIED,
   FALLACIES_ANALYZED, CONCLUSION_GENERATED). Rien a rejouer.
3. Seul l'apport propre de la PR est reapplique sur le carnet de main :
   `_resolve_chat_model_id` en fail-loud (RuntimeError si
   OPENAI_CHAT_MODEL_ID est absent) et cibles de substitution de la
   generation courante (gpt-5.6-luna / gpt-5.6-sol).

Equivalence de comportement mesuree sur la configuration du run committe :
glm-5.2 -> glm-5.2 (inchange) ; gpt-5-mini -> gpt-5.6-luna ; variable absente
-> RuntimeError. La sortie committee reste donc la sortie vraie de ce code
sous les memes entrees ; la cellule n'a pas ete re-executee pour cette raison
(une re-execution remplacerait le run de #21711 par un run neuf non comparable).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants