LifePlay-Revival/Docs/Migration/etat/EVAL/EVAL-T1b-INV.md
edujiro5972 8084622450 LifePlay UE 5.8 : état de développement au 2026-10-19
Tickets : REP1-T4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 22:57:42 +02:00

143 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Fiche EVAL-T1b — Niveau N1 — Modèle prévu sonnet | utilisé claude-sonnet-5-5 — Agent lp-inventory — Skills sk-protocol, sk-recount, lp-paths (sk-windows-shell non invoqué)
# EVAL-T1b-INV : relevé chiffré des sous-agents du 2026-10-08 05:30 au 2026-10-11 05:30 (2026-10-11)
Fenêtre en heure locale UTC+2 (fixe dans le script). P0 = 2026-10-08 05:30 → 13:30 ; P1 = → 2026-10-10 10:45 ; P2 = → 2026-10-11 05:30. Un sous-agent est retenu si le premier horodatage de son fichier tombe dans la fenêtre. Aucun contenu de prompt ou de réponse n'est cité : identifiants de fiche, types d'agent, chiffres seulement.
## 1. Commandes exactes
```
python -I "D:\Game\LifePlay-master 5.8\Docs\Migration\etat\EVAL\scripts\eval_subagents.py" (depuis la racine de la copie 5.8 ; code de sortie 0 ; rejouable, n'écrit que dans data\)
pwsh -NoProfile -Command '<recompte par CreationTime, voir § 2 R2>' (seconde méthode)
```
Entrées : `%USERPROFILE%\.claude\projects\{D--Game-LifePlay-master-5-8, D--Game-LifePlay-master-5-5, D--Game-LifePlay-master-5-5--claude-worktrees-measurement-tool-character-animations-028723}\<session>\subagents\agent-*.jsonl` et `.meta.json`.
Sorties : `D:\Game\LifePlay-master 5.8\Docs\Migration\etat\EVAL\data\subagents.csv` (260 lignes + en-tête, une ligne par sous-agent, 35 colonnes) et `...\data\aggregats.md` (tous les agrégats et les listes : par session, hors budget, coupes, reprises).
Le script charge `Tools\FicheStats.py` par chemin (non modifié) : `level_of`, `first_prompt`, et `measure` comme contre-vérification (tours, pic, jetons, erreurs, résultats recalculés dans le script et comparés agent par agent).
Motif de fiche : `(?<![A-Za-z0-9])([A-Z][A-Z0-9]+[a-z]?-(?:T\d+[a-z0-9]*|R\d+|VAL|DOC|INT|EVAL))(?![A-Za-z0-9])` (le `[a-z]?` après le lot est ajouté pour U7b), appliqué à l'identifiant déclaré en tête (« Fiche <id> »), à défaut aux 400 premiers caractères du prompt puis à la description. Motif secondaire (comptage à part) : jeton de forme `LOT-XXX` de l'en-tête ou de la description (STE-H3, STB-GIB-BUILD…).
## 2. Comptes bruts
**R1 couverture** (`aggregats.md` l. 2-19)
| Mesure | Valeur |
|---|---|
| fichiers `subagents\*.jsonl` (motif session/subagents) | 362 |
| fichiers `.jsonl` sous un dossier `subagents` à toute profondeur | 362 (même total : rien manqué) |
| fichiers `.meta.json` | 362 |
| hors fenêtre : avant / après | 95 / 3 |
| session EVAL `b339a92a` : total / dans la fenêtre | 4 / 0 (exclusion sans effet sur la fenêtre) |
| **retenus = lignes du CSV** | **260** |
| jetons lus (somme des tours) | 851 547 883 (851,5 M) |
| écarts avec `FicheStats.measure` (tours, pic, jetons, erreurs, résultats) | 0 sur 260 |
| fiches reconnues (motif principal) / non reconnues | 225 / 35 |
| non reconnues : jeton secondaire LOT-XXX / aucun identifiant | 32 / 3 |
| niveau lu dans l'en-tête / déduit de l'agent | 168 / 92 |
| appels d'outils (tool_use distincts) ; erreurs d'outil / résultats | 11 007 ; 261 / 11 006 |
| dernier message assistant : handback / texte / outil | 248 / 10 / 2 |
| **coupés sans compte rendu** (dernier message = appel d'outil) | **2** |
| atteinte probable de `maxTurns` (tours ≥ 50 N0-N2, ≥ 75 N3-N5) | 19 (16 handback, 3 texte : tous avec compte rendu) |
| hors budget (tours 40 / pic 150 k pour N0-N2 ; 60 / 250 k pour N3-N5) | 58 (tours 28, pic 44) |
| messages SendMessage reçus | 30 sur 25 agents, dont 28 après un arrêt (24 agents) |
| notifications système / interruptions / crochets / autres | 32 sur 20 agents / 2 / 2 / 0 |
| reprises après arrêt (tous messages confondus) | 60 sur 39 agents (segments = 1 + reprises) |
Non reconnues, par jeton : STE-D 2, STE-H5b 2, STE-P1 2, aucun 3, puis 1 chacun : LISIB-BUILD, LISIB-VAL1, LISIB-VAL2, STB-GIB-BUILD, STB-GIB-DATA, STB-JEU-BUILD, STB-JEU-BUILD2, STB-MAP-BUILD, STC-JEU-BUILD, STD-GIX, STD-SCN, STD-TXT, STE-D2, STE-D3, STE-D4, STE-H2, STE-H3, STE-H3b, STE-H3c, STE-H4, STE-H5, STE-H5c, STE-H7, STE-H8, STE-TXT-DIAG, STF-J-BUILD (= 35).
**R2 recompte par une seconde méthode** (PowerShell, `CreationTime` des fichiers au lieu du premier horodatage interne) : `Get-ChildItem <3 dossiers> -Recurse -Filter agent-*.jsonl` dans un dossier `subagents` → 362 fichiers ; CreationTime dans [2026-10-08 05:30, 2026-10-11 05:30[ hors session `b339a92a` → **260** ; avec la session EVAL → 260. Confirmé (260 = 260).
Cohérence : somme par type = 260, somme par sous-période = 15 + 121 + 124 = 260, somme par lot = 260, colonne `jetons` du CSV = 851 547 883 = total des agrégats.
**R3 globalement** : tours médiane 20, moyenne 28,2, p80 41, max 195 ; pic médian 98 k, p80 193 k, max 618 k ; durée médiane 5 min, p80 13 min (somme 3 190 min, agents en parallèle) ; contexte moyen par tour 116 k.
**R4 par type d'agent**
| Type | n | Tours méd | Tours moy | Pic méd (k) | Jetons (M) | Part | Durée méd (min) | Durée somme (min) | % hors budget |
|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|
| lp-builder | 52 | 20,5 | 23,0 | 77 | 75,9 | 9 % | 6,1 | 429 | 10 % |
| lp-gardien | 48 | 11,0 | 12,8 | 61 | 34,0 | 4 % | 1,4 | 82 | 0 % |
| lp-validator | 42 | 19,5 | 22,5 | 104 | 85,1 | 10 % | 4,6 | 1 104 | 19 % |
| lp-cart | 38 | 48,0 | 58,6 | 243 | 340,6 | 40 % | 14,2 | 631 | 55 % |
| lp-writer | 28 | 13,0 | 14,9 | 83 | 35,3 | 4 % | 2,2 | 96 | 14 % |
| lp-inventory | 17 | 22,0 | 22,8 | 120 | 27,8 | 3 % | 5,9 | 124 | 12 % |
| lp-impl | 16 | 41,0 | 51,8 | 176 | 106,6 | 13 % | 11,7 | 220 | 56 % |
| general-purpose | 14 | 18,0 | 23,4 | 173 | 38,6 | 5 % | 7,9 | 299 | 36 % |
| opus-xhigh | 2 | 83,5 | 83,5 | 384 | 35,5 | 4 % | 34,8 | 70 | 100 % |
| lp-impl-max | 1 | 195 | 195 | 618 | 69,8 | 8 % | 115,1 | 115 | 100 % |
| opus-max | 1 | 13 | 13 | 306 | 2,4 | 0 % | 21,9 | 22 | 100 % |
| sk-probe-agent | 1 | 1 | 1 | 4 | 0,0 | 0 % | 0,0 | 0 | 0 % |
| **Total** | **260** | | | | **851,5** | | | | |
**R5 par modèle** (modèle majoritaire des messages assistant) : sonnet-5-5 141 agents (tours méd 15, pic méd 82 k, 201,0 M = 24 %, 13 % hors budget) ; opus-5-5 61 (48 ; 227 k ; 564,7 M = 66 % ; 54 %) ; haiku-5-5 54 (20 ; 77 k ; 77,1 M = 9 % ; 9 %) ; fable-5-1 4 (12 ; 232 k ; 8,7 M = 1 % ; 50 %). Total 260.
**R6 par sous-période**
| Période | n | Tours méd | Tours moy | Pic méd (k) | Jetons (M) | Part | Durée méd (min) | % hors budget | Pic > 150 k |
|---|---:|---:|---:|---:|---:|---:|---:|---:|---|
| P0 | 15 | 18,0 | 21,9 | 171 | 38,6 | 5 % | 7,8 | 33 % | 8/15 agents, 25,8 M = 67 % des jetons de P0 |
| P1 | 121 | 27,0 | 37,7 | 107 | 559,7 | 66 % | 7,4 | 26 % | 42/121, 452,3 M = 81 % |
| P2 | 124 | 16,5 | 19,6 | 84 | 253,3 | 30 % | 3,3 | 17 % | 27/124, 160,3 M = 63 % |
| Total | 260 | | | | 851,5 | | | | 77/260, 638,3 M = 75 % |
**R7 par lot** (préfixe de la fiche reconnue, sinon du jeton secondaire) : STE 30, OBB 26, U8 23, U7 16, AG 10, OBP 10, STA 10, STF 10, ETAT2 9, U1 8, U4 8, U7b 8, OBA 7, STB 7, U5 7, UA 7, CAM 6, SK 6, U0 6, LISIB 5, STC 5, U2 5, DOCMV 4, STD 4, U3 4, (aucun) 3, ETAT3 3, U6 3, DOCSTAT 2, ETAT 2, README 2, ADDON 1, DC4 1, MV 1, TPL1 1 = 260. Plus lourds en jetons : U7 139,2 M (16 %, 31 % hors budget), STE 108,9 M (13 %, 40 %), U1 87,4 M (10 %, 50 %), U7b 60,8 M (7 %, 62 %), U5 48,1 M, U8 46,9 M. Tableau complet (tours, pic, durée, % hors budget par lot) : `data\aggregats.md`, section « Par lot ». Par session parente : 25 sessions, section « Par session parente ».
**R8 par niveau** (`?` = déduit de l'agent) : N0 38, N1 82, N1? 74, N2 9, N3 35, N3? 18, N4 2, N5 2 (= 260) ; hors budget : N0 5 %, N1 23 %, N1? 8 %, N2 22 %, N3 43 %, N3? 67 %, N4 100 %, N5 0 %.
**R9 top 10 par jetons** (257,4 M = 30 % du total)
| Rang | Fiche | Type | Modèle | Période | Tours | Pic (k) | Jetons (M) | Durée (min) |
|---:|---|---|---|---|---:|---:|---:|---:|
| 1 | U7-T7 | lp-impl-max | opus-5-5 | P1 | 195 | 618 | 69,8 | 115 |
| 2 | U5-T3b | lp-cart | opus-5-5 | P1 | 165 | 411 | 36,9 | 37 |
| 3 | U1-T1 | lp-cart | opus-5-5 | P1 | 152 | 317 | 28,5 | 27 |
| 4 | U1-T4c | lp-cart | opus-5-5 | P1 | 121 | 307 | 20,7 | 44 |
| 5 | U7-T6 | opus-xhigh | opus-5-5 | P1 | 117 | 291 | 20,6 | 22 |
| 6 | U1-T4a | lp-impl | opus-5-5 | P1 | 111 | 300 | 19,3 | 29 |
| 7 | U7b-T2 | lp-cart | opus-5-5 | P1 | 92 | 290 | 16,2 | 18 |
| 8 | U4-T3 | lp-impl | opus-5-5 | P1 | 106 | 241 | 15,3 | 26 |
| 9 | U1-T2 | lp-cart | opus-5-5 | P1 | 111 | 241 | 15,2 | 33 |
| 10 | CAM-T5 | opus-xhigh | opus-5-5 | P2 | 50 | 477 | 15,0 | 47 |
Les 10 sont hors budget ; neuf sur dix sont en P1.
**R10 pic > 150 k, comparable au doc 31 § 5** : 77 agents sur 260 (30 %) portent 638,3 M sur 851,5 M = **75 % des jetons** (doc 31 : 23 agents sur 77 = 30 %, 84 %). Taux d'erreur d'outil : 2,0 % au-dessus de 150 k, 2,9 % en dessous (doc 31 : 3,0 % et 3,5 %). Les fenêtres diffèrent (doc 31 : 77 agents après 2026-10-08 13:30 ; ici 260).
**R11 agents génériques contre lp-\* par sous-période**
| Période | n | general-purpose | lp-\* | escalade | autre |
|---|---:|---:|---:|---:|---:|
| P0 | 15 | 14 | 0 | 0 | 1 (sk-probe-agent) |
| P1 | 121 | 0 | 118 | 3 | 0 |
| P2 | 124 | 0 | 123 | 1 | 0 |
| Total | 260 | 14 | 241 | 4 | 1 |
Les 14 `general-purpose` sont tous en P0 (lots UA et SK, 36 % hors budget) ; aucun après 2026-10-08 13:30.
**R12 escalades visibles**
| Type | Fiche | Période | Début | Modèle | Tours | Pic (k) | Jetons (M) | Fin | Hors budget |
|---|---|---|---|---|---:|---:|---:|---|---|
| opus-xhigh | U7-T6 | P1 | 2026-10-08 23:58 | opus-5-5 | 117 | 291 | 20,6 | handback | oui |
| lp-impl-max | U7-T7 | P1 | 2026-10-09 00:24 | opus-5-5 | 195 | 618 | 69,8 | handback | oui |
| opus-max | OBA-T5 | P1 | 2026-10-09 19:48 | opus-5-5 | 13 | 306 | 2,4 | handback | oui |
| opus-xhigh | CAM-T5 | P2 | 2026-10-11 01:00 | opus-5-5 | 50 | 477 | 15,0 | handback | oui |
Aucun type `fable-top` dans la fenêtre (fable-5-1 apparaît comme modèle de 4 agents, pas comme type).
**R13 coupés sans compte rendu : 2** (liste : `aggregats.md`, section « Coupes… »)
| Fiche | Type | Période | Tours | Dernier événement |
|---|---|---|---:|---|
| STE-D (jeton secondaire) | lp-builder | P2 (2026-10-10 11:02 → 11:09) | 10 | appel d'outil |
| OBB-R11 | lp-gardien | P2 (2026-10-10 15:02) | 4 | appel d'outil |
Aucun n'approche `maxTurns` (10 et 4 tours). Les 19 agents au seuil probable de `maxTurns` ont tous un dernier message avec compte rendu (16 handback, 3 texte) : 0 coupure par `maxTurns` attestée par la forme du fichier.
**R14 reprises** : voir R1 (60 reprises sur 39 agents ; 30 messages SendMessage dont 28 après arrêt). Liste par agent : `aggregats.md`, section « Reprises et messages reçus ». Les tours, pic et jetons d'un agent repris cumulent tous ses segments.
## 3. Écarts au compte attendu de la fiche
- Pas de compte attendu fourni ; critère d'acceptation : lignes CSV 260 = total par type 260 = total par sous-période 260 : **tenu**. Commande rejouée trois fois (v1, v2, v3 du script) : retenus 260 à chaque fois ; le total de fichiers est passé de 360 à 362 entre les essais (sessions vivantes ; les 2 nouveaux fichiers sont hors fenêtre ou de la session EVAL).
- Motif de fiche : le motif demandé `[A-Z][A-Z0-9]+-(...)` ne reconnaît pas le lot U7b (minuscule) ni les fiches de forme `STE-H3`, `STB-GIB-BUILD`, `STD-GIX`, `LISIB-VAL1`. Avec le motif exact : 220 reconnues / 40 non reconnues (première exécution). Avec `[a-z]?` : 225 / 35. Les 32 restantes à jeton secondaire sont comptées à part (colonne `fiche_secondaire`) et rattachées à leur lot pour l'agrégat par lot ; les 3 sans identifiant restent « (aucun) ». Écart assumé, à valider par l'orchestrateur.
- Reprises : la première approche (nombre de `promptId` distincts − 1 : 131 agents « repris ») a été écartée, le `promptId` change à chaque reprise de tour après attente (cas inspecté sur trois agents) ; la méthode retenue repère les messages utilisateur textuels reçus après un arrêt (compte rendu ou handback), en excluant les rappels système (`<…`), les textes de skill, les notifications, interruptions et crochets. Estimé : la fiche ne définit pas la reprise.
- « Tours » = identifiants de message assistant distincts avec usage non nul (définition de `FicheStats.py`, recoupée : 0 écart). « Pic » = input + cache lu + cache créé du plus gros tour.
- Niveau déduit pour 92 agents (35 %) faute d'en-tête « Niveau Nx » : les budgets appliqués à ces agents (N1 par défaut, N3 pour lp-cart, lp-impl et escalades) sont une hypothèse (lignes `N1?` / `N3?` de R8).
- Aucun fichier écrit hors `etat\EVAL\scripts\`, `etat\EVAL\data\` et ce livrable (sorties console de contrôle redirigées vers le scratchpad de session, hors dépôt).
## 4. Établi / estimé / incertain
**Établi** (commande rejouée, § 1) : 362 fichiers de sous-agents, 260 dans la fenêtre hors session EVAL, confirmés par une seconde méthode (CreationTime) ; jetons, tours, pic, erreurs identiques à `FicheStats.measure` pour les 260 ; tableaux R4-R12 ; 2 agents terminés sur un appel d'outil, sans compte rendu ; 0 agent de la session EVAL dans la fenêtre ; 14 `general-purpose`, tous en P0.
**Estimé** : durée des agents (écart premier-dernier horodatage, inclut les attentes entre segments : l'écart maximal entre deux événements atteint 550 min pour un agent de VAL STB) ; nombre de reprises (définition ci-dessus) ; niveau déduit pour 92 agents ; 75 % contre 84 % du doc 31 (fenêtres différentes, comparaison indicative).
**Incertain** : cause de l'arrêt des deux agents coupés (arrêt manuel, fin de session ou autre) : se tranche en lisant le dernier événement des fichiers `agent-a6d0da0352dd885e2.jsonl` (builder) et de l'agent OBB-R11 (identifiant dans `subagents.csv`, colonne `agent_id`, filtre fiche) ou en demandant à l'utilisateur ; sous-agents d'autres dossiers de projet que les trois demandés non examinés ; fuseau : la fenêtre est fixe en UTC+2 dans le script, la seconde méthode (R2) utilise le fuseau du système, accord 260 = 260.
Tours : 20 / 40
## Constats
- `Tools\FicheStats.py` (non modifié) ne reconnaîtrait pas les 5 fiches du lot U7b si on lui passait `--lot U7`, ni les tickets `<LOT>-R<n>`, ni les 11 fiches STE de forme `STE-Hn` (H2 à H8, dont H3b, H3c, H5b, H5c) : à intégrer au motif si l'orchestrateur le décide (lecture de `FicheStats.py:18`, motif `{lot}-T\d+...|{lot}-VAL`).
- Fichiers à commiter (gardien, si le dépôt les suit ; `etat\` n'est suivi qu'en `.md` et `.csv`) : `A Docs/Migration/etat/EVAL/EVAL-T1b-INV.md`, `A Docs/Migration/etat/EVAL/data/subagents.csv`, `A Docs/Migration/etat/EVAL/data/aggregats.md` ; le script `.py` (`Docs/Migration/etat/EVAL/scripts/eval_subagents.py`) est ignoré par git d'après `.gitignore` (à confirmer, non vérifié).