Module 1
Agents IA et fondations des modèles
3 leçons · 0 min · quiz 6 questions (seuil 5/6) · lab 8 étapes
Leçons
- Leçon 1 — Qu'est-ce qu'un agent IA, et pourquoi ce bootcamp0 min
- Leçon 2 — Un environnement reproductible et sans clé0 min
- Leçon 3 — Ce qu'un modèle de langage fait réellement0 min
Lire l'aperçu gratuit : leçon 1 — Qu'est-ce qu'un agent IA, et pourquoi ce bootcamp
Durée conseillée : 40 min
Le contexte
Vous avez déjà vu des démonstrations d'agents qui impressionnent, et des produits lancés qui déçoivent. L'écart entre les deux n'est presque jamais une question de modèle : c'est une question d'ingénierie autour du modèle. Avant d'écrire la moindre ligne de code d'agent, il faut donc une image mentale juste de ce qu'est un agent, à quoi il sert, et comment ce cours va vous y conduire.
Idée centrale
Un agent IA est un modèle de langage en boucle, avec des outils et un arrêt. Le modèle lit la situation et propose l'étape suivante ; un outil l'exécute ; le résultat revient ; le modèle décide à nouveau ; et la boucle s'arrête quand le travail est fait, quand un plafond est atteint, ou quand une personne doit dire « oui » avant une action irréversible. Si vous retenez cette phrase, vous comprenez déjà mieux les agents que la majorité de ce qui s'écrit à leur sujet. Tout le reste du cours sert à rendre cette boucle assez fiable pour qu'une entreprise accepte qu'elle touche des clients, des comptes et de l'argent.
Développement 1 — La phrase-clé : un modèle en boucle, des outils, un arrêt
Décomposons la phrase en quatre mots. Le modèle lit les messages et propose soit une réponse, soit un appel d'outil. Les outils sont des fonctions dotées d'un nom et d'une description que le modèle peut demander. La boucle est le code qui appelle le modèle, exécute l'outil demandé, ajoute le résultat et rappelle le modèle. L'arrêt est la condition qui termine la boucle : le modèle a répondu en mots, un plafond de tours a été atteint, ou une règle a exigé l'accord d'un humain.
Un simple appel de modèle répond à une question. Il ne peut pas réinitialiser un mot de passe, car cela demande d'abord un appel à une fonction, puis une phrase qui explique ce qui s'est passé — deux tours avec le monde réel entre les deux. La boucle, elle, permet au modèle de faire quelque chose, de voir le résultat et de décider de la suite. Un ticket qui exige une recherche puis une réinitialisation représente trois tours de boucle, et le modèle décide à chaque tour à partir de ce qu'il a déjà vu.
L'arrêt est la partie que l'on oublie jusqu'à ce qu'elle fasse mal. Une boucle sans arrêt est un modèle qui appelle des outils jusqu'à épuisement de l'argent ou de la patience. Un bon agent s'arrête pour trois raisons : il a produit une réponse finale sans appel d'outil, un plafond de tours a été atteint, ou une règle a décidé que cette étape exige une personne. La troisième raison s'appelle la barrière humaine.
Développement 2 — Les trois mondes : TechCorp, Dataflow et TalentFlow
Chaque lab du bootcamp travaille sur l'une de trois petites entreprises qui vivent dans le dépôt sous forme de données réelles : fichiers, tables et tickets, pas trois phrases qui prétendent être une base de connaissances. Elles sont assez petites pour être lues intégralement et assez riches pour casser des choses.
| Monde | Métier | Données | Forme d'agent apprise |
|---|---|---|---|
| TechCorp | Desk informatique interne | 12 tickets employés, annuaire, outils de recherche, réinitialisation et attribution d'accès | Boucle simple avec un droit protégé (type create_agent) |
| Dataflow | Desk de support client | 50 commandes, 30 tickets, base de 20 fichiers, wiki des politiques de retour et d'expédition | Graphe dessiné avec branches, mémoire, remboursement parqué, récupérateur |
| TalentFlow | Équipe de recrutement | Pile de CV de longueurs et de qualités diverses, fiche de poste, trois modèles d'e-mail | Diffusion parallèle (fan-out) puis map-reduce |
TechCorp est le monde où l'on apprend à brancher un modèle sur des outils. Dataflow est le monde où l'on apprend le contrôle et la récupération ; c'est la colonne vertébrale du cours. TalentFlow est le monde où l'on apprend à diffuser en parallèle sur une multitude d'éléments. Trois mondes, trois dépôts dans votre portfolio, trois formes d'agent différentes : un seul monde ne peut pas enseigner trois formes.
Pourquoi trois entreprises plutôt qu'une ? Parce qu'apprendre les trois formes sur une seule entreprise les brouillerait. Apprendre chaque forme sur l'entreprise qui la porte naturellement rend la forme évidente. Et parce que les données sont honnêtes : la base de connaissances de Dataflow contient un manuel employé à côté d'une politique de retour client, et une recherche naïve répond à une question de retour avec la règle d'équipement du manuel. Ce n'est pas un piège planté, c'est ce qu'une vraie pile de documents fait à une recherche naïve.
Le monde porteur enseigne aussi la bonne forme. Un desk informatique est une seule boucle avec un droit
protégé : la forme create_agent. Un desk de support est un flux de travail avec des branches, de la
mémoire, un remboursement parqué et un récupérateur : la forme du graphe dessiné. Une pile de CV est une
opération map sur de nombreux éléments avec une seule réduction : la forme de la diffusion parallèle.
Développement 3 — Comment fonctionne le bootcamp
Chaque section du cours a la même forme, si bien qu'après la première vous savez toujours ce qui arrive. Une leçon de concept explique une idée : ce qu'elle est, pourquoi elle existe, comment elle fonctionne sur le desk, en quoi elle aide à livrer, et quand ne pas l'utiliser. Puis un lab vous fait taper le code, l'exécuter, le casser et le réparer. Puis le concept suivant. La section se termine par un court quiz, et certaines par un exercice de code vérifié par un test.
En une phrase : on explique avant de taper, on tape avant de faire confiance, et on casse avant de livrer.
Il n'y a qu'un seul dépôt d'élève pour tout le cours. Vous le clonez au premier lab, et chaque lab
suivant est un fichier dedans, nommé labs/<numéro de section>/<numéro de lab>_<nom>. Chaque fichier de lab
possède un jumeau notebook, généré automatiquement, que vous n'éditez jamais à la main.
La clé de correction, c'est le dépôt lui-même : le code terminé de chaque lab est committé sur la branche du cours. Quand vous êtes bloqué, vous pouvez lire le fichier. Quand vous ne l'êtes pas, tapez-le quand même, car c'est en tapant que l'on apprend. Chaque lab demande quatre choses : ouvrir le fichier nommé par la leçon et suivre l'ordre, lire la sortie réelle et la comparer avec ce que la leçon annonçait, faire l'étape « casser exprès » puis remettre la correction, et terminer par un « dire à voix haute » : un paragraphe que vous expliquez avec vos propres mots, car ce que vous savez expliquer, vous le maîtrisez.
Tout le cours tourne sur un modèle local gratuit, servi par Ollama, appelé à travers un seul fichier de configuration. Le coût d'exécution du cours est donc nul et rien ne quitte votre machine. Si vous possédez une clé de modèle hébergé, la configuration l'utilisera dès que vous définirez une variable — et la leçon 2 montre les deux chemins. Les sorties montrées dans les leçons ont été capturées sur ce même modèle local, erreurs comprises, car ce sont les erreurs qui enseignent.
Deux rythmes honnêtes sont possibles : une section à la fois, dans l'ordre, au rythme que votre semaine permet ; ou le sprint de 24 jours, environ deux sections par jour, intense mais faisable si vous avez le temps. Dans les deux cas, ne sautez pas les fondations sur les modèles, et ne sautez pas le bloc LangGraph, car c'est là que le desk devient un produit. Pour demander de l'aide, indiquez le nom du lab, collez la sortie obtenue, la sortie attendue par la leçon et le modèle utilisé : la plupart des problèmes sont soit une installation manquante, soit un modèle non lancé, soit un chemin de fichier incorrect.
Exemple concret / mise en pratique
Voici la boucle d'agent en dix lignes, sans aucune bibliothèque. Elle illustre exactement la phrase-clé : un modèle qui propose, un code qui exécute, un arrêt qui ferme la boucle.
# La phrase-clé du module, réduite à une fonction exécutable.
def agent_loop(model, tools, ticket, max_turns=8):
"""Le modèle propose, le code exécute, la boucle s'arrête."""
messages = [{"role": "user", "content": ticket}]
for _ in range(max_turns):
reply = model(messages, tools) # le modèle propose
if reply.get("tool_calls"):
for call in reply["tool_calls"]: # le code exécute
result = tools[call["name"]](**call["arguments"])
messages.append(
{"role": "tool", "content": result, "id": call["id"]}
)
else:
return reply["content"] # arrêt : réponse finale
return "Le desk n’a pas pu terminer dans le budget de tours."
La fonction ci-dessus ne fait rien d'autre que la description en prose. Le modèle ne lance jamais l'outil ; il demande un nom et des arguments. Votre code exécute, décide, et arrête. Le schéma suivant fixe cette boucle une fois pour toutes.
┌───────────────────────────┐
│ messages (le contexte) │
└─────────────┬─────────────┘
▼
┌────────────┐ propose un appel d'outil
│ MODÈLE │───────────────┐
└────────────┘ │
▲ ▼
│ ┌────────────┐
│ résultat │ OUTILS │
└──────────────└────────────┘
│
▼ arrêt : réponse finale, plafond, ou « non » d'un humain
Exercice guidé (10–15 min)
La suite (leçons 2 à 3, quiz, lab et livrable) est accessible après une inscription gratuite.