Aller au contenu principal
Pourquoi j'écris sur les agents LLM (l'histoire de la facture à $847)
Retour au blog
IA

Pourquoi j'écris sur les agents LLM (l'histoire de la facture à $847)

Patrice Huetz15 décembre 202412 min

Tout a commencé un mardi soir, à 23h47.

Mon agent de test tournait depuis 6 heures. Je ne m'en étais pas rendu compte --- j'étais passé à autre chose, confiant. « L'agent gère », me disais-je. Quand j'ai vérifié ma console le lendemain matin, la facture API affichait $847. Huit cent quarante-sept dollars. Pour une nuit.

J'avais oublié de mettre une limite d'itérations. L'agent cherchait la « meilleure » solution à un problème d'optimisation de code et ne s'arrêtait jamais. Chaque boucle coûtait quelques centimes --- un appel GPT-4 ici, un appel d'outil là. Multiplié par des milliers d'itérations sur 6 heures, ça fait $847 de tokens partis en fumée.

Ce matin-là, en regardant le dashboard OpenAI, j'ai pris deux décisions. La première : ne plus jamais lancer un agent sans garde-fous. La deuxième : écrire un livre qui documente toutes ces erreurs pour que d'autres développeurs ne les commettent pas.

Le catalogue des catastrophes : mes erreurs les plus coûteuses

La facture de $847 n'était pas un incident isolé. C'était le point culminant d'une série de catastrophes plus ou moins spectaculaires. Laisse-moi te raconter les meilleures --- ou les pires, selon le point de vue.

L'agent qui « nettoyait » les fichiers inutiles

J'avais construit un agent de maintenance de codebase. Sa mission : analyser un repository, identifier les fichiers obsolètes, et proposer leur suppression. Le problème, c'est que je lui avais donné l'outil file_delete sans contrainte suffisante.

Un mardi après-midi, l'agent a décidé que mon fichier .env était « un artefact de développement non versionné, probablement inutile ». Supprimé. Mon docker-compose.yml ? « Configuration redondante avec le Dockerfile ». Supprimé. Le requirements.txt ? « Les dépendances sont déjà déclarées dans setup.py ». Supprimé aussi.

⚠️
Ne donne JAMAIS un outil de suppression de fichiers à un agent sans whitelist explicite des chemins autorisés. L'agent n'a aucune notion de « ce fichier est critique pour la production ». Il raisonne sur le contenu, pas sur le contexte opérationnel.

Heureusement, Git m'a sauvé. Mais j'ai perdu deux heures à comprendre pourquoi mon déploiement avait cassé.

Le RAG qui retournait les mauvaises dépendances

Celui-là m'a coûté deux jours complets de debug. J'avais un agent avec un système RAG (Retrieval-Augmented Generation) pour répondre aux questions sur un projet Python. Le problème : mon index vectoriel mélangeait la documentation de requests 2.x et httpx 1.x, deux bibliothèques HTTP aux APIs similaires mais incompatibles.

Quand un développeur junior de l'équipe a demandé « Comment faire un POST avec authentification ? », l'agent a renvoyé un mélange de code requests et httpx. Le code semblait correct, passait la revue visuelle, mais crashait en runtime avec des erreurs d'import incompréhensibles.

Deux jours. Deux jours pour réaliser que le problème n'était pas le code, mais le contexte RAG qui mélangeait les sources.

ℹ️
Le RAG est aussi bon que l'index qu'il interroge. Si ton index mélange des versions, des bibliothèques similaires, ou des documentations obsolètes, l'agent produira un code Frankenstein qui compile peut-être, mais ne fonctionne pas.

Le cache mal configuré qui a trahi un client

Mon agent de support client utilisait un cache Redis pour éviter de rappeler l'API à chaque requête similaire. Bonne idée en théorie. En pratique, j'avais mis un TTL (Time-To-Live) de 24 heures sur les réponses.

Problème : un client a signalé un bug à 9h. Mon équipe l'a corrigé à 10h. Mais l'agent continuait de servir la réponse cachée « Nous avons identifié le problème et travaillons dessus » pendant encore 23 heures. Le client a rappelé trois fois, obtenu la même réponse automatique à chaque fois, et a fini par écrire un post furieux sur Twitter.

Coût : la confiance d'un client. Plus cher que $847.

Ce que ces erreurs m'ont appris : les patterns qui marchent

Chaque catastrophe m'a laissé une leçon. Et en les compilant, j'ai réalisé qu'elles formaient un corpus cohérent --- pas une collection d'anecdotes, mais un système de patterns et d'anti-patterns pour la construction d'agents LLM.

Pattern 1 : Le budget d'exécution. Tout agent doit avoir un budget --- en tokens, en itérations, en temps, et en argent. Pas une limite théorique. Un hard stop. Mon agent à $847 avait une « soft limit » de 50 itérations qui loggait un warning. Il fallait un max_iterations=50 qui lève une exception.

python
# Anti-pattern : soft limit
if iterations > 50:
    logger.warning("Beaucoup d'itérations...")  # L'agent s'en fiche

# Pattern : hard stop
if iterations > 50:
    raise BudgetExhaustedError(
        f"Agent arrêté après {iterations} itérations. "
        f"Coût: ${total_cost:.2f}"
    )

Pattern 2 : Le principe du moindre privilège. Un agent ne doit avoir accès qu'aux outils strictement nécessaires à sa tâche, avec des contraintes explicites sur chaque outil. L'agent de maintenance n'avait pas besoin de file_delete --- il avait besoin de suggest_deletion qui crée une PR.

Pattern 3 : La séparation des sources RAG. Chaque source documentaire doit être indexée séparément avec des métadonnées explicites (bibliothèque, version, date). Le retriever doit filtrer par source avant le ranking sémantique, pas après.

💡
Ajoute toujours un champ `source_version` dans tes chunks RAG. Au moment du retrieval, filtre d'abord par version, puis fais le ranking sémantique sur le sous-ensemble filtré. Ça élimine 90 % des contaminations croisées.

Pattern 4 : Le cache invalidable. Un cache de réponses d'agent doit être invalidable manuellement et automatiquement sur certains événements (déploiement, correction de bug, changement de données).

51 pièges, 17 chapitres : la structure du livre

Ces patterns sont devenus le squelette du livre. J'ai catalogué 51 pièges répartis en 17 chapitres, organisés par couche architecturale :

  • Couche orchestration (chapitres 1-4) : boucles infinies, explosion de coûts, gestion d'état, retry storms
  • Couche outils (chapitres 5-8) : injection de prompt via outils, permissions excessives, erreurs silencieuses, timeouts manquants
  • Couche RAG (chapitres 9-12) : contamination d'index, chunking inadapté, re-ranking défaillant, hallucinations sourcées
  • Couche mémoire (chapitres 13-15) : cache empoisonné, mémoire qui diverge, perte de contexte
  • Couche production (chapitres 16-17) : observabilité, testing, déploiement progressif

Chaque chapitre suit le même format :

  1. 1.Le Problème --- l'erreur classique, avec un scénario concret
  2. 2.La Solution Rapide --- du code qui fonctionne en 30 secondes
  3. 3.Le Deep Dive --- pourquoi ça marche, les mécanismes sous-jacents
  4. 4.Les Edge Cases --- 3 pièges supplémentaires par chapitre
  5. 5.L'Optimisation --- les patterns de production
Agents LLM en Python
Agents LLM en Python

Des agents qui marchent. En Python.

Découvrir →

Trois livres, trois angles : pourquoi pas un seul ?

En écrivant, j'ai réalisé qu'un seul livre ne pouvait pas couvrir tous les profils de lecteurs. Le développeur senior qui veut du code ne veut pas lire des explications pédagogiques. Le développeur junior qui découvre les agents ne veut pas être noyé dans du code avancé sans contexte.

Alors j'ai écrit trois versions :

Agent LLM Python --- la version code-first. 51 pièges, 17 chapitres, du code à chaque page. Pour le développeur senior qui veut des réponses concrètes, vite. C'est le livre que j'aurais voulu avoir avant ma facture de $847.

Agents LLM en Python
Agents LLM en Python

Des agents qui marchent. En Python.

Découvrir →

Agent LLM Pratique --- la version atelier. Même contenu technique, mais structuré comme un workshop. Tu construis un agent complet (Analys-Bot) chapitre après chapitre, en ajoutant une couche à chaque étape : orchestration, outils, RAG, mémoire, sécurité.

Construire un Agent LLM
Construire un Agent LLM

Économisez $10,000 et 6 mois de développement.

Découvrir →

Agent LLM Narratif --- la version pédagogique. L'histoire de Maya, développeuse junior qui rejoint une startup et découvre les agents LLM. Chaque chapitre est une journée de Maya, avec un problème réel, un mentor qui explique, et du code qui fonctionne. Pour ceux qui apprennent mieux avec une histoire.

Agents IA pour le Code
Agents IA pour le Code

Comprendre le pourquoi, pas juste le comment.

Découvrir →

La meilleure façon d'apprendre : sur les erreurs des autres

Il y a une phrase que j'ai entendue dans un talk de John Carmack : « Si tu veux apprendre vite, étudie les post-mortems, pas les tutoriels ». Les tutoriels te montrent le chemin doré. Les post-mortems te montrent les falaises de chaque côté.

C'est exactement l'approche de ces livres. Pas de théorie abstraite sur les architectures agentiques. Des bugs réels, des factures réelles, des solutions testées en production. Chaque piège documenté est un piège dans lequel je suis tombé --- ou dans lequel j'ai vu quelqu'un tomber.

Et le sujet de la mémoire --- comment un agent se souvient de ses conversations passées, de ses erreurs, de son contexte --- était tellement riche qu'il a mérité son propre livre.

La Mémoire des Machines
La Mémoire des Machines

Du KV-Cache au Context Engineering.

Découvrir →

Parce que la mémoire est le talon d'Achille des agents LLM. Un agent sans mémoire refait les mêmes erreurs. Un agent avec une mémoire mal conçue hallucine des souvenirs. Et un agent avec une bonne mémoire... change tout. C'est la différence entre un stagiaire qui recommence à zéro chaque matin et un collègue qui se souvient de tes préférences, de tes décisions passées, et du contexte de ton projet.

ℹ️
La mémoire des agents LLM est un problème d'architecture, pas de taille de fenêtre de contexte. Même avec 1 million de tokens, un agent finit par oublier. La solution passe par des systèmes de mémoire externes --- épisodique, sémantique, procédurale. C'est le sujet du livre *La Mémoire des Machines*.

Depuis la nuit du $847, j'ai dépensé $12 000+ en APIs LLM. Mais je n'ai plus jamais eu de facture surprise. Pas parce que je suis devenu meilleur --- mais parce que j'ai appris à mettre des garde-fous avant de lancer l'agent, pas après.

Si tu construis des agents LLM ou si tu envisages de t'y mettre, ces erreurs vont t'arriver. La seule question est : tu préfères les découvrir dans un livre à 20 euros ou sur ta facture API ?

Agents LLM en Python
Agents LLM en Python

Des agents qui marchent. En Python.

Découvrir →

Commentaires

Chargement des commentaires...

Laisser un commentaire