Agent local VFG — rapport de session & fiabilité

Bionic 1.1.7 · LM Studio gemma-4-12b-qat · local session 2026-10-04 → 05 évaluation par la mesure
Tout chiffre ci-dessous vient d'une commande rejouable (voir pied de page). Rien n'est déduit de la prose de l'agent.

En un coup d'œil

18modèles catalogués (comparateur)
21tests dispatcher verts
35tests harnais `vfg-coder` verts
100%échec de son banc `runner.py`
~0%fiabilité de sa sonde d'identité

Qui est cet agent

Ce n'est pas un script qui appelle l'API LM Studio. C'est Bionic en mode agent natif : il tient sa propre boucle et édite les fichiers via ses outils natifs.

  • Projet lié en readWrite à D:\GitRepos\vfg-dispatcher (projects-registry.json).
  • Aucun serveur MCP branché (mcp.json = vide).
  • Il utilise bin\delegate.ps1 comme outil pour déléguer aux gros agents.

Ce qu'il a produit cette session

🎛️ Comparateur de modèles sourcé

18 modèles (16 cloud + 2 locaux). Catalogue versionné + gabarit HTML autonome + constructeur + sonde. Commit 00c2712, poussé. 3 tests ajoutés. Règles R15/R16 distillées.

🛠️ 5 specs d'agents locaux non sourcé

Fast Coder, Analyst, Researcher, Reviewer, Tester. Plausibles, mais aucun « modèle recommandé » n'est adossé à une mesure.

📊 Banc `benchmarks/` cassé

runner.py délègue en ollama -Mode write → refusé par la gate. Résultat mesuré : 100 % `Status: fail`, et il écrit des fichiers en effet de bord.

Il a aussi ajouté des gardes à la gate (R17/R18) et lancé une boucle « Node.js 24 » — voir plus bas.

Fiabilité : ce qui tient vs ce qui casse

Motif observé : fiable sur un lot borné AVEC un vérificateur ; dérive sur un périmètre ouvert.

✓ Solide / réutilisable

  • Comparateur : build qui valide l'autonomie (0 <script src>) et le JSON verbatim.
  • Détection de pièges PS réels : R15 ($Catalog=$catalog) et R16 ($ casse l'injection JSON).
  • Auto-correction : il reconnaît que les modèles hallucinent leur identité → le catalogue devient la source de vérité.
  • METRICS_SCHEMA.json : bon schéma de métriques (hérité par notre harnais).

✗ Cassé / faux

  • runner.py : voie d'exécution refusée (ollama-write) → 0 % de réussite.
  • ROUTING.md : a effacé claude/codex/kimi (0 occurrence) → régresse le routage.
  • Sonde d'identité : chaque modèle se trompe de nom (deepseek→« Claude », etc.) → ~0 % fiable.
  • 5 specs : modèles « recommandés » non mesurés.

Lui vs notre harnais `vfg-coder`

Bionic agent (natif)vfg-coder (harnais script)
BoucleBionicnotre script (src/loop.mjs)
Qui exécute les outilsBionic (outils natifs)notre script (src/toolbox.mjs)
Hallucination de fichierspossibleimpossible (lecture réelle)
Verdictauto-évaluationrunner (exit code du test)
Isolationselon le projet liéworktree exclusif <repo>-<lot>
Testsbanc cassé35/35 + banc loop/single déterministe

Incidents de la session (résolus)

Bionic plante — « Unexpected Application Error »

ChunkLoadError : renderer/monaco-editor-pane.js (chunk 86372) manquant alors que référencé 3×. Installation incomplète → obligeait à rebooter. Résolu par réinstallation (nouveau chemin D:\vfgpt\Nouveau dossier\Bionic, 527 chunks).

Boucle « mettre à jour Node.js »

4 tentatives (codex/claude/kimi/ollama), toutes exit=1. Cause : -Model google/gemma-4-12b-qat (local) passé à claude → unrecognized_model ; ollama en write refusé.

Résolutions

Node 24 installé (winget install OpenJS.NodeJS.LTS → v24.19.0). Gardes R17/R18 ajoutées à delegate.ps1 (modèle local interdit aux agents cloud ; action machine refusée « action FG ») → l'agent s'arrête au lieu de boucler. Tests 21 OK, poussé.

Prochaines actions

  • Trancher son travail non commité : benchmarks/ + 5 specs + ROUTING.md → l'intégrer en le sourçant, ou le remplacer par vfg-coder.
  • Brancher fast_coder comme outil dans Bionic (option A) → lui donner un vérificateur partout.
  • Lancer le banc réel : node bench/run-bench.mjs --model google/gemma-4-12b-qat --modes loop,single.
  • Dédupliquer + réencoder les 2 tâches Node (UTF-8 avec BOM).