16 KiB
Fiche EVAL-T7 — Niveau N2 — Modèle prévu orchestrateur (Opus 5.5) | utilisé claude-opus-5-5 — Agent session « EVAL » — Skills sk-orchestrate, sk-recount
EVAL-STATS : statistiques de l'organisation multi-agents, 2026-10-08 05:30 → 2026-10-11 05:30 (2026-10-11)
Sources : les 7 relevés EVAL-T1a à EVAL-T6 (lp-inventory), recomptés par l'orchestrateur à réception (sk-recount,
§ 9). Tables : data\*.csv. Scripts rejouables : scripts\*.py. Ces scripts sont ignorés par git (.gitignore:75),
comme ceux de Saved\STAT1\ (doc 31) : ils restent sur le disque.
Heures : locales (UTC+2). « h active » = somme des écarts ≤ 10 min entre événements horodatés, toutes sessions
confondues (méthode du doc 31). Les sessions parallèles ne sont pas additionnées.
0. Sous-périodes
| P0 | P1 | P2 | |
|---|---|---|---|
| Bornes | 10-08 05:30 → 13:30 | 10-08 13:30 → 10-10 10:45:20 | 10-10 10:45:20 → 10-11 05:30 |
| Organisation | agents génériques, avant lp-* |
agents lp-*, chaque session commite |
Big Boss (file de la copie UE, jeton du journal) + gardien (lp-gardien, tickets) |
| Heures de calendrier | 8,0 | 45,25 | 18,75 |
| Heures actives (toutes activités) | 3,70 | 25,95 | 11,68 |
| Sessions principales actives | 4 | 21 | 12 |
| Heures-sessions (somme des sessions) | 3,09 | 27,61 | 29,39 (parallélisme moyen 2,5) |
Début de P2 = premier événement de la session titrée « Big Boss » (92a3927f, 10:45:20). Premier commit sur ticket
du gardien : 3aaaf2c, 10:45:50 (T2). P0 et P1 recouvrent la fenêtre du doc 31 (« après » = 10-08 13:30 → 10-09
16:41, inclus dans P1).
1. Production
| Indicateur | P0 | P1 | P2 | Total | Commande, compte brut |
|---|---|---|---|---|---|
| Commits distincts (jeu 5.8 + addon + Modules 5.8 + jeu 5.5 propre) | 5 | 80 | 47 | 132 | EvalT2_Commits.py ; git rev-list --count --all --since/--until : jeu 90, addon 40 (recompte orchestrateur identique) ; Modules 1 ; jeu 5.5 : 1 propre sur 10 |
| dont addon (skills, agents) | 0 | 28 | 12 | 40 | dont 15 paires de commits jumeaux 5.5 / 5.8 (T2 § 2) |
| Entrées CHG (par commit d'introduction) | 4 | 47 | 28 | 79 | eval_journal.py ; chg.csv 79 lignes ; CHG-245 → 323 sans trou |
| Entrées ERR | 0 | 14 | 31 | 45 | err.csv 45 lignes ; ERR-044 → 088. Ce sont surtout des défauts du jeu (STB, STE…). Une seule touche l'organisation : ERR-087 (--amend du gardien) |
Livrables .md sous etat\ (date de modification) |
15 | 153 | 246 | 414 (4,57 Mo) | eval_fiches.py ; fiches.csv 414 = Get-ChildItem 414 |
Journaux bruts sous etat\ (.txt, .log, .csv) |
0 | 268 | 262 | 530 (105 Mo) | idem |
| Tickets du gardien | — | — | 63 | 63 | tickets\ : 62 fait (dont 10 annotés), 1 abandonné (OBB-R11) |
| Sous-agents lancés | 15 | 121 | 124 | 260 | eval_subagents.py ; subagents.csv 260 lignes (recompte : 260 / 362 fichiers) |
Débit par heure active
| Indicateur | P0 | P1 | P2 | Doc 31 « avant » | Doc 31 « après » |
|---|---|---|---|---|---|
| Commits / h active | 1,35 | 3,08 | 4,02 | — | — |
| CHG / h active | 1,08 | 1,81 | 2,40 | 2,4 (59 CHG, règle d'avant « un CHG par lot » non appliquée) | 1,2 |
Livrables .md / h active |
4,1 | 5,9 | 21,1 | — | — |
2. Coût (jetons, temps)
| Indicateur | P0 | P1 | P2 | Doc 31 avant | Doc 31 après | Commande |
|---|---|---|---|---|---|---|
| Jetons lus, total (M) | 108,5 | 1 458,0 | 1 520,3 | 771 | 786 | eval_sessions.py (tableaux.md § Sous-périodes) |
| Jetons lus, sessions principales (M) | 70,2 | 898,7 | 1 266,5 | 632 | 375 | idem |
| Jetons lus, sous-agents (M) | 38,3 | 559,3 | 253,8 | 139 | 411 | idem ; subagents.csv = 851,5 M |
| Jetons / h active, total (M) | 29,3 | 56,2 | 130,2 | 31,7 | 47,6 | idem |
| Jetons / h active, principales (M) | 19,0 | 34,6 | 108,4 | 26,0 | 22,7 | idem |
| Jetons / h active, sous-agents (M) | 10,4 | 21,6 | 21,7 | 5,7 | 24,9 | idem |
| Jetons par CHG (M) | 27,1 | 31,0 | 54,3 | — | — | calcul : total / CHG |
| Jetons par commit (M) | 21,7 | 18,2 | 32,3 | — | — | total / commits distincts |
| Contexte moyen par tour, principales | 329 k | 307 k | 377 k | 376 k | 269 k | eval_sessions.py |
| Contexte médian par tour, principales | 228 k | 245 k | 323 k | 344 k | 216 k | idem |
| Tours des principales > 150 k | 83 % | 77 % | 88 % | 85 % | 74 % | idem |
| Compactages | 1 | 1 | 2 | 5 | 0 | idem |
| Lecture en cache | 97,0 % | 98,5 % | 99,2 % | 98,6 % | 99,1 % | idem |
Plus lourdes sessions principales de la fenêtre (jetons lus) : LOT STE 37530d8d 439 M (995 tours, pic 898 k) ;
Lot 29 87a0d630 390 M (815 tours, pic 965 k) ; Big Boss 92a3927f 267 M (679 tours, pic 825 k) ; U7 ab8918a1
181 M ; LOT STF 637ffab6 179 M (tableaux.md § contexte).
Temps machine de la copie UE (journaux Saved\Logs\portage, horodatages internes en UTC, décalage de 2,00 h
vérifié sur 202 fichiers) : 265 .log, 509,6 min. P1 : 133 fichiers, 241,6 min ; P2 : 132 fichiers, 268,0 min. Par
type : éditeur interactif et PIE 151,9 min ; LPDumpFunction 129 lancements, 103,4 min ; éditeur headless 92,6 ;
CompileAllBlueprints 17 lancements, 58,6 ; Build 50 lancements, 57,7 ; cuisson 13,6 ; UAT 9,5 ; LPTestStringCompat 4,7
(eval_boss.py logs, portage_logs.csv).
3. Délégation et niveaux
| Indicateur | P0 | P1 | P2 | Doc 31 avant | Doc 31 après | Commande |
|---|---|---|---|---|---|---|
| Appels d'outils, total | 721 | 9 270 | 7 899 | 4 154 | 5 090 | eval_sessions.py |
| Appels d'outils / h active | 195 | 357 | 676 | 171 | 308 | idem |
| Part faite par les sous-agents | 72 % | 65 % | 57 % | 51 % | 72 % | idem |
| Commandes shell des principales / h | 23,0 | 54,6 | 125,3 | 51 | 46 | idem |
| Appels MCP Unreal des principales | 34 | 660 | 515 | — | — | idem (1 070 mcp__unreal*__call_tool ; aucun agent lp-* n'a d'outil MCP) |
Sous-agents general-purpose |
14 | 0 | 0 | 106 (tous génériques) | 0 | aggregats.md |
| Tours par sous-agent, médiane / moyenne | 18 / 21,9 | 27 / 37,7 | 16,5 / 19,6 | — / ≈ 17 | 26 / ≈ 40 | aggregats.md |
| Pic médian des sous-agents | 171 k | 107 k | 84 k | — | — | idem |
| Sous-agents hors budget (niveau, BUD1) | 33 % | 26 % | 17 % | — | — | idem ; 58 / 260 (tours 28, pic 44) |
| Part des jetons des sous-agents au pic > 150 k | 67 % | 81 % | 63 % | — | 84 % | idem |
Escalades (lp-impl-max, opus-xhigh, opus-max, fable-top) |
0 | 3 | 1 | 1 | 2 | U7-T6, U7-T7, OBA-T5, CAM-T5 : toutes hors budget ; fable-top 0 |
| Sous-agents coupés sans compte rendu (doit valoir 0) | 0 | 0 | 2 | — | — | lp-builder STE-D (10 tours), lp-gardien OBB-R11 (4 tours) |
Seuil maxTurns probablement atteint |
— | — | — | — | — | 19 agents, tous avec compte rendu |
| Taux d'erreur des outils | 3,3 % | 3,3 % | 1,6 % | 3,9 % | 3,6 % | 24/720, 306/9 271, 130/7 897 |
| Refus d'autorisation | 1 | 7 | 3 | — | — | toolDenialKind : 6 automode-blocked, 5 permission-rule |
Par type d'agent (fenêtre entière, aggregats.md)
| Agent | Modèle usuel | Nombre | Tours méd. | Pic méd. | Jetons | Part | Hors budget |
|---|---|---|---|---|---|---|---|
| lp-builder | haiku | 52 | 20,5 | 77 k | 75,9 M | 9 % | 10 % |
| lp-gardien | sonnet | 48 | 11 | 61 k | 34,0 M | 4 % | 0 % |
| lp-validator | sonnet | 42 | 19,5 | 104 k | 85,1 M | 10 % | 19 % |
| lp-cart | opus | 38 | 48 | 243 k | 340,6 M | 40 % | 55 % |
| lp-writer | sonnet | 28 | 13 | 83 k | 35,3 M | 4 % | 14 % |
| lp-inventory | sonnet | 17 | 22 | 120 k | 27,8 M | 3 % | 12 % |
| lp-impl | opus | 16 | 41 | 176 k | 106,6 M | 13 % | 56 % |
| general-purpose | divers | 14 | 18 | 173 k | 38,6 M | 5 % | 36 % |
| escalade (4) | opus | 4 | — | — | 107,7 M | 13 % | 100 % |
Par modèle : sonnet 141 agents (24 % des jetons), opus 61 (66 %), haiku 54 (9 %), fable 4 (1 %). Niveau lu dans la fiche : 168 / 260 ; déduit de l'agent : 92.
4. Orchestration : Big Boss, file de la copie UE, journal, gardien (P2 seulement)
| Indicateur | Valeur | Commande, compte brut |
|---|---|---|
| BUILD-DEMANDE / BUILD-GO / BUILD-FIN / ATTENTE | 37 distinctes / 38 distincts (+ 7 répétitions, + 1 GO parallèle pour la copie 5.5) / 39 fermetures / 17 | eval_boss.py all ; buildqueue.csv 464 lignes (journal + transcription) |
| GO par lot | STE 25, STF 9, OBB 3, LISIB 3, U8 3, CAM 2 | idem |
| Attente DEMANDE → GO | médiane 0,4 min, max 19,5 (LISIB-J1), n = 34 | idem |
| Occupation GO → FIN | médiane 9,4 min, max 109,8 (STE-GARDES), somme 698 min, n = 39 | idem |
| Copie UE sur P2 (1 125 min) | occupée 61,6 % (692,5 min) ; gelée 5,6 % (62,8) ; libre 32,9 % (369,7, dont 41 min de réserve « mesure ») | idem |
| Occupation déclarée et temps machine | 692 min de GO ouverts pour 268 min de journaux machine (rapport 2,6) | portage_logs.csv ; un GO couvre aussi le PIE avec l'utilisateur et l'analyse entre deux commandlets |
| GO sans FIN, FIN sans GO | 0 / 0 | idem |
| GO simultanés | 2 formels (fin constatée par Big Boss avant le GO suivant, FIN reçue 1,4 et 2,8 min plus tard) | T4 § 2.4 |
| Contre-vérifications de BUILD-FIN par Big Boss | 32 acceptations : MD5 17, processus Unreal 25, git status 9 ; MD5 changé : 0 |
T4 § 2.7 |
| Jeton du journal | 7 demandes, 14 jetons accordés, 19 JOURNAL-LIBRE ; attente médiane 0,3 min (max 17,2) ; détention médiane 5,6 min (max 94,6) | T4 § 2.6 |
| Arbitrages, conflits, gels, FIN-LOT | CONFLIT 14, ARBITRAGE 12, GEL 9 (dont 1 gel documentaire DOCMV), DÉCLARATION 8, FIN-LOT 18 | buildqueue.csv |
| Incidents | processus étranger 5 ; fausse alerte 1 ; dossier parasite 1 ; verrou orphelin 1 ; refus d'autorisation 1 ; session fermée pendant un GO 1 ; plantage de l'éditeur pendant un GO 1 ; MD5 changé 0 | T4 § 2.8 (lignes source) |
| Coût de Big Boss | 8,04 h actives, 679 tours, 272 M jetons lus = 18 % des jetons de P2, 287 messages sortants, 195 entrants, 27 messages humains, Bash 282, PowerShell 47 | T4 § 2.10 ; T1a |
| Gardien | 48 passages lp-gardien, 34,0 M jetons (0,7 M par passage), 1,4 min médiane ; 63 tickets ; verrous 82 pris, 82 rendus |
T1b, T2 |
| Commits après le gardien | 47 ; 41 citent leur ticket ; 6 n'en citent aucun, tous antérieurs à 11:36 et rattachés à un ticket (ETAT3-R1/R2/R5, STC-R1, REPO-MV-R1, STD-R1) ; commit sans ticket : 0 | T2 § 2 |
| Identités d'auteur | 2 (l'adresse courte, 28 commits addon, disparaît avant le gardien) | T2 |
Hook pre-commit |
non installé dans les 4 arbres (core.hooksPath absent) |
T2 |
5. Charge de l'utilisateur et coordination
| Indicateur | P0 | P1 | P2 | Doc 31 avant | Doc 31 après | Commande |
|---|---|---|---|---|---|---|
| Messages humains (entrées tapées + file) | 26 | 207 | 119 | 190 | 100 | origin.kind == "human" |
| Messages humains, méthode du doc 31 (« prompts ») | 27 | 190 | 117 | 190 | 100 | idem, hors file |
| Messages humains / h active (méthode doc 31) | 7,3 | 7,3 | 10,0 | 7,8 | 6,1 | idem |
| Messages entre sessions reçus | 2 | 148 | 423 | — | — | origin.kind == "peer" |
| Messages entre sessions / h active | 0,5 | 5,7 | 36,2 | — | — | idem |
SendMessage émis (principales) |
4 | 183 | 509 | — | — | idem |
Questions fermées à l'utilisateur (AskUserQuestion) |
— | — | — | — | — | 95 dans la fenêtre (commands_resume.txt) |
| Messages humains par CHG | 6,5 | 4,4 | 4,25 | — | — | calcul |
| Messages entre sessions par CHG | 0,5 | 3,1 | 15,1 | — | — | calcul |
6. Qualité des fiches et des registres
| Indicateur | P0 | P1 | P2 | Doc 31 après | Commande |
|---|---|---|---|---|---|
| En-tête complet (prévu + utilisé + agent + skills + niveau), livrables de rôle | 0/3 | 106/111 (95,5 %) | 107/119 (89,9 %) | 77/79 (97 %, motif modèle seul) | eval_fiches.py |
Ligne Tours : en fin de livrable |
0 % | 6,3 % | 70,6 % | — | idem (92 lignes) |
| Section « État de reprise » | — | — | 1 / 233 livrables | — | idem |
| Lots avec VAL (17 registres modifiés) | — | — | 12 / 17 | 10 / 10 | sans VAL : CAM (audit en cours), ETAT3, OBA, STA, STD |
| Statuts au gabarit (17 registres, 200 lignes) | — | — | acceptée 96, à faire 15, envoyée 4, reçue 3 ; hors gabarit : « faite » 64, « en cours » 2, autre 16 | — | idem |
escaladée, reprise, bloquée, coupée dans les statuts |
— | — | 0 alors que 20 lignes de tentative b/c/d et 20 mentions « hors budget » |
— | idem |
| Colonnes de mesure remplies (Tours / Pic / Jetons / Durée) | — | — | 40 % / 11 % / 38 % / 41 % | — | idem |
| Tours déclarés contre tours mesurés | — | — | sous-comptés (OBB : 12 / 15 ; ici T4 : 37 déclarés contre 39 mesurés) | — | OBB-EVAL § 3 ; FicheStats |
7. Commandes répétées (mutualisation)
7 764 appels Bash + PowerShell examinés (principales 2 966, sous-agents 4 798). Recoupement avec sessions.csv exact
(34 sessions, 0 écart). Durée shell mesurée (tool_use → tool_result) : 15,7 h au total
(eval_commandes.py, commands_resume.txt).
| Famille | Appels | Principales | Fiches | Part des appels shell P0 → P1 → P2 | Outil du projet déjà disponible |
|---|---|---|---|---|---|
| c. état git, diff, fins de ligne, comptes de CR | 1 794 | 827 | 180 | 8 % → 17 % → 36 % | aucun script d'état unique |
f. verrou, tickets, NUMEROS.md, REPO-JOURNAL.md |
1 085 | 363 | 65 | 1 059 en P2 | aucun (141 mkdir / New-Item / Remove de verrou) |
d. scripts Tools\ |
996 | 407 | 102 | — | 25 scripts. En contournement : UnrealEditor-Cmd / -run= sans RunCommandlet.ps1 68 appels, RunUAT sans BuildDebug.ps1 32 |
h. Python par heredoc, python -c long, scripts temporaires |
684 | 311 | 75 | — | aucun (282 heredocs, dont 201 en principale ; 135 scripts écrits) |
| a. empreintes MD5 / SHA | 543 | 256 | 90 | 0 % → 4 % → 14 % | FileCheck.ps1 (10-09) : 60 appels, contre 538 md5sum / Get-FileHash / sha*sum |
| b. processus Unreal / jeu | 455 | 216 | 55 | 2 % → 5 % → 8 % | UeState.ps1 (10-09) : 161 appels, contre 452 Get-Process / tasklist / Get-CimInstance |
e. comptes de journaux (Accessed None, Error:, Warning:) |
272 | 83 | 43 | — | LogStats.ps1 (09-29) : 68 appels |
| g. taille et date de dossiers de build | 252 | 128 | 50 | — | CheckPackage.ps1 (10-10), en partie |
i. SendMessage / ListAgents |
696 / 24 | 720 | — | — | coordination |
Scripts de Tools\ créés pendant la fenêtre et déjà adoptés : UeState.ps1 161 mentions, Build.ps1 125,
Engine.ps1 60, FileCheck.ps1 60, EtatDir.ps1 50, uasset58.py 40, CheckPackage.ps1 34, FicheStats.py 32,
uasset.py 30 (T6 § 2.3).
8. Le lot EVAL lui-même (mesure FicheStats)
python -I Tools/FicheStats.py --lot EVAL : 7 fiches lp-inventory (6 sonnet, 1 haiku), 18,4 M jetons lus,
durée de 8 à 17 min. 6 fiches sur 7 hors budget de pic : de 163 k à 315 k, contre 150 k au budget N1. En tours,
toutes sont dans le budget : de 17 à 39 sur 40. Cause : chaque fiche lit des transcriptions de plusieurs Mo, et mes
fiches demandaient trop d'indicateurs à la fois (consigne). Synthèse faite par l'orchestrateur (N2), sans N3+ :
aucune escalade.
9. Recompte de l'orchestrateur (sk-recount)
| Fiche | Recompté | Résultat |
|---|---|---|
| T1a | sommes des sessions = P0 + P1 + P2 pour 12 grandeurs (contrôle du script) ; borne P2 relue dans tableaux.md |
conforme ; 2 points ouverts : la session e3d15049 du dossier 4-27 est exclue (hors périmètre de la fiche) ; les 9 sessions sans message humain restent comptées (sessions latérales) |
| T1b | subagents.csv : 260 lignes ; P0 15 / P1 121 / P2 124 ; modèles 141 / 61 / 54 / 4 |
conforme ; motif de fiche élargi accepté |
| T2 | commits.csv 141 lignes (132 distinctes) ; git rev-list --count jeu 90, addon 40 |
conforme |
| T3 | chg.csv 79, err.csv 45 ; `grep -c "^ |
ERR-"` = 88 |
| T4 | buildqueue.csv 464 lignes, mots-clés recomptés ; occupé + gelé + libre = 1 125 min |
conforme ; 2 GO simultanés formels acceptés comme tels |
| T5 | fiches.csv 414 lignes ; P0 15 / P1 153 / P2 246 |
conforme ; registre STE exclu de la fenêtre (mtime 05:30:05) |
| T6 | familles et totaux relus dans commands_resume.txt ; 2 966 appels shell des principales = sessions.csv |
conforme |
Tours : sans objet (fiche de l'orchestrateur)