Opinion

33 agents IA sur une seule image, sans toucher au noyau : où passe la frontière entre le code et le modèle

Une flotte de 33 agents IA autonomes (du coach d'échecs pour enfants au calcul de sous-stations 10/0,4 kV et de foyers modulaires) tourne sur une image immuable unique. Chaque agent est défini uniquement par le volume de données qui lui est monté. Passé la trentaine d'outils, les schémas JSON du préfixe pèsent plus lourd que le prompt système : chez l'administrateur CRM, 331 outils représentent 302 Ko (environ 75 000 tokens par requête). En restreignant le profil d'outils et en désactivant le raisonnement superflu, on ramène le prompt de 15 266 à 1 424 tokens et le temps de réponse de 17 à 7,7 secondes. La principale bifurcation architecturale de tout agent est la frontière entre le code déterministe et la génération de texte. Là où le coût d'une erreur est élevé, le modèle reçoit uniquement un contrat JSON de faits calculés et n'a pas le droit d'inventer le moindre chiffre.

33 agents IA sur une seule image, sans toucher au noyau : où passe la frontière entre le code et le modèle
Hamidun News.
Écouter l'article
Fiche synthèse et chiffres clés
ParamètreDonnées
Rédacteur en chef
Taille de la flotte33 agents autonomes sur une image immuable unique, sans fork du noyau
Gain sur le profil d'outilspréfixe ramené de 15 266 à 1 424 tokens, temps de réponse médian ramené de 17 à 7,7 s
Plafond des schémas JSON302 110 octets (~75 000 tokens) pour 331 outils connectés sur l'agent CRM interne
Précision du volet ingénieriesurface calculée de 267,46 m² contre 267,20 m² sur le plan Revit de référence, pour 20 pièces
  • Taille de la flotte : 33 agents autonomes sur une image immuable unique, sans fork du noyau
  • Gain sur le profil d'outils : préfixe ramené de 15 266 à 1 424 tokens, temps de réponse médian ramené de 17 à 7,7 s
  • Plafond des schémas JSON : 302 110 octets (~75 000 tokens) pour 331 outils connectés sur l'agent CRM interne
  • Précision du volet ingénierie : surface calculée de 267,46 m² contre 267,20 m² sur le plan Revit de référence, pour 20 pièces

Quand plus de trente agents IA tournent en production, du simulateur d'échecs pour enfants aux calculateurs de bâtiments modulaires et de sous-stations, une vérité simple s'impose vite. La qualité d'un agent dépend d'une seule décision : quelle part de la tâche vous retirez au modèle de langage pour la confier à du code Python, et quelle part vous lui laissez pour la reformuler avec une voix humaine.

En un an, j'ai déployé 33 agents sur un moteur unique, sans le moindre fork du dépôt de base. Le code du runtime est immuable, et la personnalité du bot vit exclusivement dans un volume de données monté : le fichier de personnalité `SOUL.md`, le `config.yaml` déclaratif, le dossier de plugins métier `plugins/`, la base d'état `state.db` sous SQLite avec FTS5 et les planifications `cron/jobs.json`. Lors de la migration depuis l'ancien framework, 233 des 558 sessions de dialogue ont migré par simple copie de répertoire : la mémoire et le caractère appartiennent aux données, pas au moteur.

Pourquoi les schémas d'outils consomment-ils le contexte plus vite que

le prompt système ?

Une mesure instrumentée sur les conteneurs de production montre que la « taxe du moteur » plafonne à 8 656 caractères (~2,2 k tokens). Avec la mémoire et les compétences désactivées, elle tombe à 5 000 caractères sur les modèles Gemini. La date du préfixe système est fixée au jour près, et non à la seconde : sinon, chaque requête invalide le cache de préfixe du fournisseur.

La vraie explosion se produit dans le bloc de déclaration des fonctions. Pour le bot de conférence, 3 outils représentent 1 995 octets de schémas JSON, avec un prompt de 10 687 caractères. Chez l'agent sectoriel de la métallurgie, 36 outils font grimper les schémas à 59 121 octets.

Quant à notre administrateur CRM, avec ses 331 outils connectés, le volume de schémas JSON atteint 302 110 octets, soit environ 75 000 tokens dans le préfixe de chaque tour. Sur le tuteur de langues, nous avons réduit le jeu d'outils à un canal précis, désactivé la sonde initiale de l'environnement et supprimé une étape de réflexion superflue. Le prompt d'entrée est passé de 15 266 à 1 424 tokens, et la réponse médiane de 17 à 7,7 secondes.

Où placer la frontière entre le calcul en code et la génération par le modèle ?

Même dans un bot familial doté d'un long fichier de personnalité (jusqu'à 20–23 k tokens), on ne peut pas confier l'arithmétique à un LLM. Quand la comptabilité des étoiles bonus a été laissée à une règle écrite dans le prompt, trois sources de données ont rapidement divergé : le solde indiquait 461, la somme du tableau donnait 466 et le journal des transactions affichait 457. Une règle dans le prompt est un vœu pieux ; une règle dans le code est une garantie.

Dans le coach d'échecs, le modèle n'évalue jamais lui-même la position. Deux processus Stockfish (l'un joue avec un budget de nœuds `nodes` et une probabilité de gaffe enfantine `blunder_p`, l'autre analyse le coup) et quatre détecteurs basés sur `python-chess` (pièces en prise, fourchettes tenant compte de la valeur d'échange, clouages `pin-aware` et mat en 1 coup) assemblent un contrat JSON strict :

```json { "played_move": {"san": "Dg4"}, "verdict": {"label": "blunder", "win_before_pct": 55.0, "win_after_pct": 4.0}, "best_move": {"san": "De2", "line_san": ["De2", "d6", "d3", "Fe6"]}, "punishment_line_san": ["Cxg4"], "tactics_against_student": [ {"motif": "hanging_piece", "fact_ru": "dame en g4 attaquée par le cavalier f6, sans protection"} ] } ```

Le modèle transforme ce paquet en réplique de coach. En sortie, 342 lignes d'expressions régulières vérifient chaque champ et chaque coup par rapport à une liste `allowlist`, et écartent les coordonnées inventées comme `Qz9` ainsi que les homoglyphes cyrilliques.

Comment fonctionnent les agents industriels sans RAG, et quelles

vulnérabilités apparaissent à la jonction des plugins ?

Dans les projets d'agencement de bâtiments modulaires à partir de blocs-conteneurs et de calcul de sous-stations 2KTP-400/10/0,4 kV, il n'y a aucun RAG vectoriel : les normes de construction (SP, GOST, PUE) et les échelles de calibres sont codées en dur dans des fonctions Python. Pour la demande « foyer de 42 personnes, trois par chambre », le code réalise en 40 secondes, au lieu de trois jours sous Revit, la géométrie des travées, le calibrage des surfaces (panneaux sandwich de 100 mm, cloisons de 80 mm), la génération de la feuille A3, l'export DXF pour AutoCAD et la vérification des normes (à partir de 6 m² par personne, couloir à partir de 1400 mm). Sur un jeu de référence de 20 pièces, le code a obtenu 267,46 m² contre 267,20 m² chez l'architecte, et a repéré une erreur dans le plan dessiné à la main (4,17 m² par personne pour une norme de 6 m²).

Côté énergie, le statut `PASS` n'est attribué qu'après vérification par formule (disjoncteur d'entrée de 1000 A pour un courant de transformateur de 909 A), tandis que les mesures de terrain (mise à la terre jusqu'à 4 ohms, limiteurs de surtension) reçoivent d'office le statut `INFO`.

Les défaillances les plus subtiles surviennent quand le modèle tente de « contourner » le validateur. Après un `FAIL` pour surcharge du transformateur sur deux lignes de 600 A, le modèle a lui-même abaissé les courants à 2×385 A (réduisant la charge de 1200 à 770 A), les a fractionnés en `200 + 200 + 185 + 185 A` et a obtenu `OK`. Nous avons alors introduit une vérification de chaque paramètre par rapport au cahier des charges initial.

Un autre cas, sur un banc de démonstration, nous a appris à fermer `terminal`, `code_execution`, `delegation` et les profils `cron` : le bot, avec la copie scannée du cahier des charges, avait créé de lui-même un `venv`, installé `pymupdf` et rendu 13 pages en PNG.

Ces invariants ont servi de base à [Nomad AI](https://nomadnet.ai) et au runtime [agent.nomadnet.ai](https://agent.nomadnet.ai). La pratique de l'assemblage de tels systèmes est accessible à la [Hamidun Academy](https://academy.hamidun.com) (essai de 72 heures), et plus de 370 skills sont disponibles au [Vibe Club](https://hamidun.com/club).

Dossier

Questions clés sur cet article

Pourquoi les schémas d'outils consomment-ils le contexte plus vite que le prompt système ?

Une mesure instrumentée sur les conteneurs de production montre que la « taxe du moteur » plafonne à 8 656 caractères (~2,2 k tokens). Avec la mémoire et les compétences désactivées, elle tombe à 5 000 caractères sur les modèles Gemini. La date du préfixe système est fixée au jour près, et non à la seconde : sinon, chaque requête invalide le cache de préfixe du fournisseur. La vraie explosion se produit dans le bloc de déclaration des fonctions. Pour le bot de conférence, 3 outils représentent 1 995 octets de schémas JSON, avec un prompt de 10 687 caractères. Chez l'agent s

Où placer la frontière entre le calcul en code et la génération par le modèle ?

Même dans un bot familial doté d'un long fichier de personnalité (jusqu'à 20–23 k tokens), on ne peut pas confier l'arithmétique à un LLM. Quand la comptabilité des étoiles bonus a été laissée à une règle écrite dans le prompt, trois sources de données ont rapidement divergé : le solde indiquait 461, la somme du tableau donnait 466 et le journal des transactions affichait 457. Une règle dans le prompt est un vœu pieux ; une règle dans le code est une garantie. Dans le coach d'échecs, le modèle n'évalue jamais lui-même la position. Deux processus Stockfish (l'un joue avec un

ZK
Zhemal Khamidun — CPO d'Alpina Digital, product manager d'AlpinaGPT. Conçoit des produits IA depuis 2019. Hamidun News est un projet personnel devenu un agrégateur en production avec plus de 6 000 lecteurs.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
Qu'en pensez-vous ?
Chargement des commentaires…