Présentation
L'IA pour les développeurs
Comment fonctionnent les LLM, les tokens, les agents — et l'écosystème des fichiers d'instructions Markdown.
Saïd Latrach — Lead développeur
Au programme
Les fondamentaux
- Comment fonctionne un LLM
- Tokens & fenêtre de contexte
- Entraînement → inférence
- Prompt engineering
- RAG, tool use, MCP
Agentic & outillage
- Les agents et leur boucle
- Systèmes multi-agents
- CLAUDE.md, AGENTS.md
- copilot-instructions, skills
- plans & sous-agents
Partie 1
Comment fonctionne un LLM
C'est quoi un LLM ?
Un Large Language Model est un réseau de neurones (architecture Transformer) entraîné sur d'immenses corpus de texte.
- Sa seule compétence de base : prédire le prochain token.
- Répétée des milliards de fois, cette prédiction fait émerger rédaction, traduction, résumé, code.
- Il ne « comprend » pas comme un humain : il calcule des probabilités.
- Exemples : Claude (Anthropic), GPT (OpenAI), Llama (Meta), Mistral, Gemini (Google).
La prédiction, token par token
Le modèle génère le texte un token à la fois, en réinjectant à chaque étape ce qu'il vient d'écrire.
# Entrée : "Le ciel est" "Le ciel est" → bleu (87 %) gris (6 %) dégagé (3 %) # Il choisit, puis recommence : "Le ciel est bleu" → aujourd'hui …
C'est quoi un token ?
Le texte est découpé en tokens : des morceaux de mots, plus petits qu'un mot, plus grands qu'une lettre.
# Découpage approximatif "développeur" → dévelo | ppeur (2 tokens) "latrach.net" → lat | rach | .net (3 tokens) # Règle de pouce : 1 token ≈ ¾ d'un mot en français # 1 000 tokens ≈ 750 mots ≈ une page et demie
- On facture et on mesure tout en tokens (entrée + sortie).
- Optimiser le coût = optimiser le nombre de tokens envoyés.
Fenêtre de contexte & limites
Fenêtre de contexte
La quantité maximale de tokens que le modèle « voit » d'un coup (prompt + historique + réponse). Au-delà, il faut résumer ou découper.
Pas de mémoire
Le modèle ne retient rien entre deux appels : tout le contexte utile doit être renvoyé à chaque requête.
Partie 2
Bien dialoguer avec un LLM
Prompt engineering — les bases
La qualité de la sortie dépend directement de la qualité de l'instruction.
- Rôle : « Tu es un développeur Symfony senior… »
- Contexte : la stack, les contraintes, des exemples.
- Tâche claire : une demande précise, non ambiguë.
- Format de sortie : JSON, liste, code uniquement…
Patterns de prompting
Few-shot
Donner 2-3 exemples entrée → sortie pour cadrer le format attendu.
Chain-of-thought
Demander de « raisonner étape par étape » pour les tâches complexes.
Découpage de tâches
Scinder un gros problème en sous-étapes plutôt qu'un prompt monolithique.
Auto-vérification
Faire relire/critiquer sa propre réponse par le modèle avant la version finale.
RAG — contexte augmenté
Retrieval-Augmented Generation : injecter vos propres données dans le prompt pour des réponses fondées sur VOS sources.
# Pipeline RAG simplifié 1. Indexer → documents découpés en chunks + embeddings 2. Rechercher → chunks les plus proches de la question 3. Augmenter → on ajoute ces chunks au prompt 4. Générer → le LLM répond à partir du contexte fourni
Tool use / function calling
Le modèle peut demander d'exécuter une fonction que vous lui décrivez, puis exploiter le résultat.
// On déclare un outil au modèle { "name": "get_compte_salesforce", "description": "Récupère un compte Salesforce via une requête SOQL", "input_schema": { "nom_compte": "string" } } // → Le modèle répond : appelle get_compte_salesforce(nom_compte="Acme") // → Votre service Symfony exécute le SOQL (API REST Salesforce / Apex), // renvoie le JSON ; le composant LWC affiche la réponse rédigée
MCP — Model Context Protocol
Un standard ouvert (Anthropic) pour connecter les modèles à des outils et des données, sans réinventer l'intégration à chaque fois.
- Serveur MCP : expose des outils/ressources (BDD, API, fichiers…).
- Client MCP : l'app IA (Claude Code, Claude Desktop…) qui les consomme.
- Un même serveur MCP fonctionne avec n'importe quel client compatible.
Partie 3
L'IA agentique
Les agents — la boucle agentique
Un agent est un LLM placé dans une boucle où il choisit des actions (outils) jusqu'à atteindre un objectif.
# Boucle agentique Observer → état actuel / résultat précédent ↓ Décider → le LLM choisit la prochaine action / outil ↓ Agir → exécution de l'outil (lecture, écriture, commande…) ↺ (on recommence jusqu'à la fin)
Systèmes multi-agents
Plutôt qu'un agent unique, on orchestre plusieurs agents spécialisés.
Orchestrateur
Un agent « chef » découpe la tâche et délègue à des sous-agents.
Sous-agents
Chacun a un rôle précis (recherche, code, revue, doc) et un contexte propre.
Partie 4
Les fichiers d'instructions Markdown
Configurer l'IA avec du Markdown
Les assistants de code se pilotent avec de simples fichiers .md versionnés dans le dépôt. Chacun a son rôle.
| Fichier | Outil | Rôle |
|---|---|---|
CLAUDE.md | Claude Code | Contexte & règles du projet |
AGENTS.md | Standard ouvert | Contexte agent, multi-outils |
.github/copilot-instructions.md | GitHub Copilot | Consignes globales du dépôt |
.github/instructions/*.instructions.md | GitHub Copilot | Instructions ciblées (scope via applyTo) |
.github/prompts/*.prompt.md | GitHub Copilot | Prompt réutilisable (slash-command) |
SKILL.md | Claude | Capacité réutilisable |
.claude/agents/*.md | Claude Code | Sous-agent : tâche déléguée en contexte isolé |
.github/agents/*.agent.md | GitHub Copilot | Agent personnalisé (persona/mode Copilot) |
CLAUDE.md
Le fichier de contexte projet lu automatiquement par Claude Code à chaque session.
# CLAUDE.md ## Stack Symfony 7 / PHP 8.2 / MySQL ## Conventions - Tests obligatoires pour toute nouvelle fonctionnalité - Ne jamais modifier les migrations existantes - Utiliser `make` si un Makefile est présent ## Commandes make test · make deploy
- On y met : stack, conventions, commandes, ce que l'IA doit éviter.
- Peut exister à la racine, par dossier, ou au niveau utilisateur.
AGENTS.md
Un standard ouvert et neutre, adopté par plusieurs outils IA pour décrire un projet aux agents.
Pourquoi
Un seul fichier compris par plusieurs assistants, plutôt qu'un format propriétaire par outil.
Contenu
Build & test, conventions de code, structure du projet, consignes de contribution.
CLAUDE.md peut simplement importer AGENTS.md pour éviter la duplication.copilot-instructions & autres outils
Chaque assistant a son emplacement de consignes, mais le principe est le même.
# Où vit le contexte selon l'outil .github/copilot-instructions.md # GitHub Copilot CLAUDE.md # Claude Code AGENTS.md # standard multi-outils .cursor/rules/ # Cursor .windsurfrules # Windsurf
AGENTS.md) et des fichiers fins qui l'importent.Skills — des capacités réutilisables
Un skill package un savoir-faire (procédure, convention, outil) que l'IA charge à la demande.
# skills/deploy-ovh/SKILL.md --- name: deploy-ovh description: Déployer sur OVH mutualisé via git push --- 1. `make bump-version` 2. `make git-commit m="..."` 3. `git push prod main` # hook post-receive
- Chargé seulement quand c'est pertinent → contexte économe.
- Réutilisable entre projets, versionnable, partageable.
Plans — penser avant de coder
Avant une tâche non triviale, l'IA rédige un plan en Markdown, validé par l'humain.
# plans/page-slides-ia.md ## Contexte → pourquoi ce changement ## Fichiers → ce qui sera créé / modifié ## Étapes → la marche à suivre ## Vérification → comment tester le résultat
Agents — des spécialistes définis en .md
On décrit un sous-agent dans un fichier Markdown à frontmatter : rôle, déclencheurs, outils autorisés.
# agents/code-reviewer.agent.md --- name: code-reviewer description: Revue de code qualité & sécurité tools: Read, Grep, Bash --- Tu es un relecteur exigeant. Vérifie bugs, sécurité, et propose des simplifications.
description → spécialisation + contexte isolé.Partie 5
En pratique
L'IA dans le workflow dev
Génération
Scaffolding, tests, migrations, doc — pour aller plus vite sur le répétitif.
Revue de code
Détection de bugs, de problèmes de sécurité et de simplifications avant la PR.
Compréhension
Explorer un gros codebase, expliquer une fonction, retrouver un pattern.
Outils agentiques
Claude Code & co : l'IA lit, écrit et exécute directement dans le repo.
Intégrer l'IA dans son code
Un appel à l'API Anthropic depuis n'importe quelle stack.
// PHP / Symfony — via HttpClient $response = $client->request('POST', 'https://api.anthropic.com/v1/messages', [ 'headers' => [ 'x-api-key' => $apiKey, 'anthropic-version' => '2023-06-01', ], 'json' => [ 'model' => 'claude-opus-4-8', 'max_tokens' => 1024, 'messages' => [['role' => 'user', 'content' => $prompt]], ], ]);
Bonnes pratiques & pièges
✅ À faire
- Valider les sorties critiques
- Garder un humain dans la boucle
- Surveiller les coûts (tokens)
- Versionner prompts & fichiers .md
⚠️ À éviter
- Envoyer des données sensibles sans contrôle
- Faire confiance aveuglément (hallucinations)
- Laisser un agent agir sans garde-fous
- Hardcoder ses clés API
Pour aller plus loin
Merci !
Des questions sur l'intégration de l'IA dans vos projets ? Parlons-en.