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
Naviguez avec les flèches ← → du clavier, les boutons en bas à droite, ou en glissant (swipe) sur mobile.

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).
📌 Analogie : un autocomplete surpuissant qui a lu une grande partie d'Internet.

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
La température règle le hasard : basse = réponses sûres et répétables, haute = plus créatives et variées.

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.

⚠️ Hallucinations : un LLM peut produire une réponse fausse mais plausible. Toujours vérifier les faits critiques et fournir les sources.

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…
Règle d'or : sois explicite. Le modèle ne devine pas votre intention implicite.

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
Idéal pour : doc interne, base de connaissances, support client, recherche dans un code.

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
C'est ce qui transforme un « chatbot » en assistant capable d'agir sur le monde réel.

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.
📌 Analogie : MCP est « l'USB-C » des intégrations IA — une prise universelle outils ↔ modèle.

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)
⚠️ Autonomie = pouvoir : encadrer les actions sensibles (suppression, paiement, prod) avec des garde-fous.

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.

Avantages : contextes isolés, spécialisation, parallélisme. Coût : coordination et tokens supplémentaires.

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.

FichierOutilRôle
CLAUDE.mdClaude CodeContexte & règles du projet
AGENTS.mdStandard ouvertContexte agent, multi-outils
.github/copilot-instructions.mdGitHub CopilotConsignes globales du dépôt
.github/instructions/*.instructions.mdGitHub CopilotInstructions ciblées (scope via applyTo)
.github/prompts/*.prompt.mdGitHub CopilotPrompt réutilisable (slash-command)
SKILL.mdClaudeCapacité réutilisable
.claude/agents/*.mdClaude CodeSous-agent : tâche déléguée en contexte isolé
.github/agents/*.agent.mdGitHub CopilotAgent personnalisé (persona/mode Copilot)
Idée commune : donner à l'IA le contexte stable du projet pour ne pas le répéter à chaque prompt.

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.

💡 Astuce : 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
Bonne pratique : une source de vérité (ex. 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
Le plan aligne l'humain et l'IA avant l'implémentation → moins d'allers-retours, moins de code jeté.

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.
L'orchestrateur délègue à ces agents selon leur 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]],
  ],
]);
Côté Salesforce : Apex callout + Named Credential. Même principe partout : clé API + endpoint + messages.

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
🔒 Sécurité & RGPD : maîtrisez ce qui sort de votre SI et où vont les données.

Pour aller plus loin

Merci !

Des questions sur l'intégration de l'IA dans vos projets ? Parlons-en.

1 / 29