Tutto.Praxis · deck parlé
Praxis : construit à partir de « Claude with the Anthropic API » d'Anthropic

Construire avec
l'API sous
la fenêtre de chat.

Onze idées, une par écran. C'est la couche sur laquelle reposent Claude Code et toutes les autres applications. Chaque slide est un point d'appui pendant que vous expliquez : prenez les silences.

01
Tutto.Le plan du cours
Où nous allons

Tout le cours sur un seul écran

Quatre mouvements : faire l'appel, le rendre fiable, étendre sa portée, puis composer les pièces en systèmes.

Faire l'appel

  1. 1 Anatomie d'une requête
  2. 2 Cadrer la sortie

Le rendre fiable

  1. 3 Évaluation des prompts
  2. 4 Ingénierie des prompts

Étendre sa portée

  1. 5 L'usage d'outils
  2. 6 Les outils d'Anthropic
  3. 7 RAG
  4. 8 Au-delà du texte
  5. 9 Mise en cache des prompts

Construire des systèmes

  1. 10 MCP
  2. 11 Workflows et agents
02
Tutto.Leçon 1 · Passer l'appel
Leçon 1

Une requête, et l'API vous oublie

Vous envoyez un modèle, une ligne système facultative, et toute la liste des messages. Elle répond une fois. Aucune mémoire : pour continuer, vous ajoutez la réponse et vous renvoyez le tout.

requête model · quel Claude max_tokens · limite de longueur system · qui il doit être messages[] · la conversation Anthropic API réponse un message assistant + stop_reason · pourquoi ça s'est arrêté sans état : ajoutez la réponse à messages[] et renvoyez le tout

Une « conversation multi-tours » n'est que cette boucle faite à la main : le modèle ne retient rien entre deux appels, donc la liste messages[] qui s'allonge est la mémoire. Même clé, même structure, quel que soit le langage d'appel.

Concept cléRequête minimale = model + messages + max_tokens dans le corps, clé API dans les en-têtes. Gardez la clé dans une variable d'environnement / .env, jamais en dur. → notes formateur (dont web-app : la clé reste côté serveur).

03
Tutto.Leçon 2 · Lancer l'appel
Leçon 2

Quatre réglages sur la même requête

On ne change pas de modèle pour changer le comportement. On tourne ces boutons.

system fixe le rôle, les règles et le ton qui il doit être temperature 0 = stable, plus haut = plus libre le degré de hasard streaming les tokens arrivent au fur et à mesure sans attendre la fin structured force du JSON propre, pas de la prose des sorties que vous pouvez analyser

Le system prompt fait le gros du travail : c'est là que vivent le rôle et les règles. La température échange la fiabilité contre la variété ; le streaming, c'est une question de ressenti ; la sortie structurée, c'est ainsi qu'on obtient des données qu'un programme peut vraiment utiliser.

Notion cléPour du JSON propre, sans prose à retirer, utilisez l'usage d'outil forcé (tool_choice) : définissez un outil dont le schéma est la forme voulue, puis relisez l'objet validé. → notes du formateur (préremplissage + séquences d'arrêt : l'alternative plus légère, pour du JSON plat).

04
Tutto.Leçon 3 · Rendez-le fiable
Leçon 3

Arrêtez de deviner si un prompt est bon

Une eval, c'est une suite de tests pour vos prompts : un jeu de cas, exécuté automatiquement, noté, chiffré. Vous changez le prompt, vous relancez, vous regardez le chiffre bouger.

Jeu de données cas de test Exécution le prompt sur chaque cas Notation noter chaque réponse Score un seul chiffre par code par modèle améliorez le prompt et relancez

Deux façons de noter : par code pour tout ce qui est exact (est-ce du JSON valide ? contient-il la réponse ?), par modèle pour le jugement (est-ce diplomate ? est-ce dans le sujet ?) : vous demandez à un autre appel Claude de le noter selon une grille.

Concept cléLa boucle d'éval : construire des cas de test → Claude génère des réponses → les noter → score → affiner et relancer. L'étape après la génération, c'est la notation ; la notation par modèle utilise une autre IA pour juger. → notes du formateur.

Qu'est-ce qu'un « correcteur modèle » ? La moitié « par modèle » : un autre appel Claude qui note une sortie selon une grille. La solution quand « juste » relève du jugement (ton, pertinence, utilité), ce que le code ne peut pas vérifier exactement.

Jusqu'où lui faire confiance ? Écrivez une grille claire, faites-lui rendre une justification d'une ligne avec la note, et comparez-la à des notes humaines sur un échantillon avant de vous y fier sur des centaines de cas.

05
Tutto.Leçon 4 · Rendre le résultat fiable
Leçon 4

Quatre techniques, par ordre de levier

Quand le résultat est mauvais, il faut rarement un modèle plus puissant. Il faut un prompt plus clair. Utilisez ces leviers dans cet ordre.

Clair et direct dites exactement ce que vous voulez Précis détaillez tout Balises XML étiquetez proprement chaque partie Exemples montrez, ne faites pas que dire ↑ plus de levier

Ce sont les exemples (few-shot) qui font le plus bouger la qualité : deux ou trois paires entrée→sortie traitées enseignent le format et les cas limites que des paragraphes de consignes n'atteignent pas. Les balises XML comptent parce que Claude est entraîné à les respecter : <document>…</document> se lit mieux que des guillemets.

06
Tutto.Leçon 5 · Étendre sa portée
Leçon 5 : si vous ne retenez qu'une chose

L'usage d'outils est un aller-retour que vous complétez

Claude ne peut rien exécuter. Il peut seulement demander. Vous décrivez les outils ; il répond « appelle ceci, avec ces arguments » ; vous l'exécutez et lui rendez le résultat ; il continue.

Claude décide qu'il lui faut un outil Votre code exécute la vraie fonction (API, base de données, calcul) Réponse ancré dans des données réelles stop_reason : tool_use vous renvoyez un tool_result quand il en a assez Vous définissez chaque tool avec un nom, une description et un schéma JSON pour ses entrées.

La boucle peut se répéter : Claude peut appeler plusieurs tools sur plusieurs tours avant de répondre. C'est ce seul mécanisme qui sert de base à tous les agents : le modèle propose, votre environnement exécute, le résultat revient.

Donc un tool, c'est un endpoint Anthropic particulier ? Non. Il n'y a qu'un seul endpoint Messages. Un tool est une simple fonction dans votre propre code; Claude renvoie seulement une demande d'appel (nom + arguments) et attend votre résultat.

Est-ce un fichier de configuration qui règle le comportement de Claude ? Non. Un tool, c'est votre code, plus une déclaration (nom, description, schéma d'entrée) qui indique à Claude que la fonction est disponible , pas comment il doit se comporter.

07
Tutto.Leçon 6 · Étendre sa portée
Leçon 6

Certains tools, vous n'avez pas à les construire

La plupart des tools, c'est à vous de les implémenter. Quelques-uns sont livrés avec l'API : vous les activez et Anthropic les exécute côté serveur.

Vos tools vous écrivez et exécutez le code tout ce que vous pouvez appeler : vos API, votre base de données, votre logique métier les outils d'Anthropic vous activez ; le serveur fait le travail éditeur de texte édite le fichier sur place recherche web résultats en direct, cités exécution de code exécute Python en bac à sable L'appel d'outils à granularité fine transmet les arguments au fur et à mesure : vous pouvez agir avant la fin de la requête.

L'éditeur de texte et l'exécution de code sont exactement ce qui fait tourner Claude Code et les fonctions d'analyse. L'API Files permet à une requête de référencer des fichiers déjà envoyés (PDF, jeux de données) sans les renvoyer à chaque appel.

Notion cléLa limite principale de l'outil d'exécution de code : il exécute du Python dans un bac à sable isolé, sans accès réseau. L'API Files, c'est le stockage « on envoie une fois, on référence autant qu'on veut » qui fait aussi entrer les données et ressortir les résultats (graphiques). → notes du formateur.

08
Tutto.Leçon 7 · Étendre sa portée
Leçon 7

RAG : lui donner des connaissances qu'il n'a jamais apprises

Une base de connaissances entière ne tient pas dans un prompt. On l'indexe donc une fois, puis on ne récupère que les quelques passages utiles à chaque question et on les insère.

Une fois : construire l'index documents découper vectoriser indexer À chaque question : retrouver et répondre question retrouver enrichir coller les extraits Claude répond Meilleure recherche combinez deux index : embeddings sens et synonymes BM25 mots-clés et codes exacts

Les embeddings captent le sens (« voiture » trouve « véhicule ») ; BM25 capte les termes exacts (un code d'erreur, une référence pièce). Un pipeline multi-index fait tourner les deux et fusionne les résultats : c'est ce que fait un vrai RAG en production.

09
Tutto.Leçon 8 · Étendre sa portée
Leçon 8

La même API accepte plus que du texte

Quatre capacités s'ajoutent à la requête que vous connaissez déjà : deux changent ce qui entre, deux changent ce qui sort.

Entrées enrichies Images lire des graphiques, captures d'écran, photos PDF texte et mise en page, page par page Des sorties plus riches Raisonnement raisonne d'abord, répond ensuite Citations indique la source d'où vient l'affirmation

Le raisonnement étendu donne au modèle la place de traiter les problèmes difficiles avant de s'engager sur une réponse. Les citations transforment le « croyez-moi » en « voici le passage » : la colonne vertébrale de toute réponse qu'une entreprise doit assumer.

Notion cléPDF ou image : un PDF est lu comme texte et images (un bloc document , compatible avec les citations) ; une image passe par la vision seule. Le PDF coûte plus cher à la page, mais donne une compréhension plus riche et citable. → notes du formateur.

10
Tutto.Leçon 9 · Étendre sa portée
Leçon 9

Payez la partie longue une seule fois

La plupart des prompts commencent par le même gros bloc : un system prompt, des définitions d'outils, un document. Mettez ce préfixe en cache et les appels suivants le lisent au lieu de le repayer.

Premier appel · écrit le cache préfixe stable : system, outils, documents (mis en cache ici) la question du jour point de coupure du cache Appels suivants · lisent le cache même préfixe : lu depuis le cache, bien moins cher et plus rapide question suivante coût ↓↓

La règle : seul un préfixe exact et inchangé est réutilisé. Mettez donc tout ce qui est stable en premier et la partie variable en dernier. La durée de vie du cache est courte (quelques minutes) : le gain se fait sur une série d'appels rapprochés, le cœur de toute application réactive à contexte répété.

Concept cléLe cache demande deux choses : marquer le bloc cache_control: ephemeral et atteindre la longueur minimale (~1 024 tokens sur Sonnet 4.x, ~4 096 sur Opus 4.5+). En dessous du minimum, l'appel passe sans cache, sans erreur. → notes du formateur.

11
Tutto.Leçon 10 · Construire des systèmes
Leçon 10

MCP : une prise standard pour les outils et les données

Sans lui, chaque application câble chaque intégration à la main. Avec lui, un serveur expose ses capacités une fois et n'importe quel client s'y connecte.

Claude Code votre application clients MCP un protocole commun Un serveur expose des tools : actions à appeler des resources : données à lire des prompts : flux tout prêts

Un serveur publie trois choses (tools, resources, prompts) et l'inspecteur vous permet de le tester avant de le brancher à un client. Vous construisez l'intégration une fois ; vous la branchez à Claude Code, à votre propre client, ou à celui de n'importe qui d'autre.

Exposer le contenu de documents ? C'est une resource : des données en lecture seule que Claude peut récupérer. Les actions qu'il effectue sont des tools ; les instructions pré-testées (un formateur, par exemple) sont des prompts.

Définir un tool en Python ? Le plus simple, c'est le décorateur @mcp.tool() (FastMCP). Le nom de la fonction, sa docstring et ses annotations de type deviennent le tool : aucun schéma à écrire à la main.

Comment client et serveur se parlent-ils en
développement ?
Presque toujours en stdio : le client lance le serveur comme sous-processus via stdin/stdout. Pas de ports, pas d'authentification. HTTP, c'est pour le distant.

Pourquoi trois primitives, et pas une seule ? Des propriétaires différents. Le modèle choisit les outils, l' application charge les ressources, l' utilisateur invoque les prompts. Chacun est donc proposé de la bonne façon.

12
Tutto.Leçon 11 · Construire des systèmes
Leçon 11

Workflows ou agents : qui décide du chemin

Les deux enchaînent des appels au LLM. La différence, c'est le contrôle : dans un workflow, vous câblez les étapes ; dans un agent, le modèle les choisit au fur et à mesure.

Workflows : vous fixez le chemin chaîne · une étape après l'autre aiguillage · choisir une branche parallèle · lancer en même temps, fusionner Agent : le modèle décide du chemin penser agir observer boucle avec son environnement

Choisissez selon la prévisibilité. Si vous pouvez dessiner les étapes à l'avance, un workflow coûte moins cher et reste plus fiable. Si le chemin dépend de ce que l'on trouve en route, il vous faut un agent ; Claude Code en est un. La plupart des systèmes en production mélangent les deux.

Vous voulez qu'il gère l'imprévu ? Donnez à l'agent quelques outils généraux et laissez-le choisir, pas un outil étroit par cas que vous aviez prévu. Les outils généraux se recombinent en chemins que vous n'avez jamais écrits.

Un long prompt qu'il n'applique qu'à moitié ? Enchaînez -le. Répartissez les règles sur quelques petites étapes, pour que chaque appel en porte moins, et vérifiez le résultat entre chacune.

13
Tutto.Praxis
Tout, en une ligne

Lancez l'appel. Faites-lui confiance.
Donnez-lui de la portée.
Composez-le en systèmes.

L'unité, c'est une requête sans mémoire. Les évaluations et le prompting la rendent fiable ; les outils, le RAG et les capacités propres du modèle lui donnent de la portée ; MCP et le choix entre workflow et agent, c'est ainsi que vous construisez quelque chose de réel.

tutto.one/praxis · daniel@tutto.one

14
← → ou espace · F11 plein écran