De la recherche Stanford au framework de production
Stanford NLP a commencé à développer DSPy en décembre 2022, et le dépôt GitHub stanfordnlp/dspy le décrit comme "le framework pour programmer — plutôt que prompter — les modèles de langage". Le projet est né de recherches académiques sur la compilation de pipelines LLM déclaratifs, plutôt que l'écriture manuelle de chaînes de prompt.
Le framework a introduit tôt Signatures et Modules comme abstractions principales, puis a étendu ses algorithmes d'optimisation au fil du temps : BootstrapFewShot pour une sélection rapide d'exemples few-shot, suivi de MIPROv2, qui recherche conjointement instructions et exemples few-shot par optimisation bayésienne, puis plus récemment GEPA, décrit dans la documentation comme ajustant automatiquement les prompts "jusqu'à convergence de la qualité" à partir d'exemples et d'une fonction de score.
DSPy fait l'objet d'un développement actif au moment de cette évaluation : le paquet dspy sur PyPI en était à la version 3.3.1, publiée le 21 août 2026. Le site du projet annonce plus de 454 contributeurs et documente un usage en production chez des entreprises comme Shopify, Databricks et AWS.
Contrairement à plusieurs autres frameworks de cette série, DSPy n'a pas été archivé, n'est pas passé en mode maintenance déclaré, et n'a pas de projet successeur annoncé — c'est l'implémentation canonique, activement développée, des idées qu'il a introduites.
Développement démarré à Stanford NLP
- Date:
- 2022-12
- What it means:
- Le dépôt stanfordnlp/dspy et les abstractions Signature/Module voient le jour
Optimiseur BootstrapFewShot
- Date:
- Premières versions
- What it means:
- Un optimiseur de référence rapide génère des exemples few-shot à partir d'un jeu d'entraînement
Optimiseur MIPROv2
- Date:
- Versions ultérieures
- What it means:
- Recherche conjointe d'instructions et d'exemples few-shot par optimisation bayésienne
Optimiseur GEPA
- Date:
- Versions récentes
- What it means:
- Un optimiseur plus récent pour l'ajustement automatique de prompts selon une fonction de score
dspy 3.3.1 sur PyPI
- Date:
- 2026-08-21
- What it means:
- Dernière version vérifiée au moment de cette évaluation — le développement actif se poursuit
📌Remarque: Le nom du paquet PyPI de DSPy a une histoire intéressante : le nom dspy était déjà pris sur PyPI, donc le projet a d'abord été distribué sous dspy-ai. Le nom canonique est désormais dspy — utilisez pip install dspy pour les installations actuelles.
Qu'est-ce que DSPy ?
DSPy est un framework Python open source (licence MIT, activement maintenu, github.com/stanfordnlp/dspy) créé par Stanford NLP pour programmer des tâches de modèle de langage de façon déclarative, puis compiler ces déclarations en prompts optimisés — et en option en poids optimisés — au lieu qu'une personne itère manuellement sur du texte de prompt.
- Signature : une définition typée des entrées et sorties d'une tâche, écrite comme une courte classe ou une chaîne (par exemple
"question -> answer"), portable entre différents LLM sous-jacents et stratégies de prompt - Module : un composant qui implémente une stratégie d'exécution autour d'une Signature —
Predictpour une complétion directe,ChainOfThoughtpour un raisonnement pas à pas,ReActpour des boucles de raisonnement utilisant des outils, entre autres - Optimizer (anciennement appelé teleprompter) : un algorithme qui ajuste automatiquement les prompts et exemples few-shot d'un programme DSPy selon une métrique, plutôt qu'à la main — les optimiseurs nommés incluent
BootstrapFewShot,MIPROv2etGEPA - Compiler un programme : exécuter un optimiseur sur un jeu d'entraînement et une fonction de score produit un programme compilé avec des instructions et exemples ajustés intégrés, que vous exécutez ensuite comme n'importe quel autre programme DSPy
- Agnostique au modèle : DSPy se connecte au fournisseur LLM que vous configurez plutôt que d'embarquer un modèle intégré, et le même code de Signature/Module peut être réoptimisé pour un autre modèle sous-jacent
- Pas un orchestrateur multi-agents : DSPy n'a pas de concept intégré de plusieurs agents communicants comme CrewAI ou AutoGen — un programme DSPy est typiquement un pipeline unique de Modules, même si des modules
ReActpeuvent appeler des outils dans une boucle de raisonnement
Programmer, pas prompter — ce que cette expression signifie en pratique
Avec DSPy, vous n'écrivez pas une chaîne de prompt dont vous ajustez le texte à la main. Vous décrivez la forme de la tâche avec une Signature et choisissez un Module définissant la stratégie de raisonnement ; le texte de prompt réellement envoyé au LLM est généré et, lors de la compilation avec un Optimizer, ajusté automatiquement. C'est la différence de positionnement centrale de ce framework par rapport aux bibliothèques de prompts et frameworks d'orchestration qui traitent la chaîne de prompt elle-même comme l'unité que l'on rédige.
pip install dspy
# Exemple minimal : Signature + Module + Optimizer
import dspy
class AnswerQuestion(dspy.Signature):
"""Answer a question factually."""
question: str = dspy.InputField()
answer: str = dspy.OutputField()
qa = dspy.ChainOfThought(AnswerQuestion)
result = qa(question="What is the capital of France?")
print(result.answer)Combien coûte DSPy ?
DSPy lui-même est gratuit sous licence MIT — il n'y a ni abonnement, ni palier payant, ni service hébergé par Stanford à payer. Vous payez votre propre puissance de calcul ainsi que les frais d'API éventuels du fournisseur LLM que vous configurez.
- DSPy (le framework open source) : gratuit pour toujours sous licence MIT, auto-hébergé, sans plafond d'usage, sans compte requis pour l'exécuter
- Aucun produit hébergé ni abonnement : DSPy est une bibliothèque que vous importez et exécutez vous-même, pas un service géré — il n'y a rien à souscrire
- Coût optionnel : frais d'API du fournisseur LLM configuré (par exemple tarification au token d'un fournisseur cloud), si vous connectez un modèle cloud plutôt qu'un modèle local
- Coût lié aux optimiseurs : exécuter un optimiseur comme MIPROv2 génère plusieurs appels LLM pour rechercher la meilleure configuration de prompt, donc compiler un programme a son propre coût d'appels d'API en plus de l'exécution du programme compilé ensuite
Comment installer et démarrer avec DSPy ?
Installez DSPy depuis PyPI avec pip install dspy. Aucun clonage, aucun Docker et aucun binaire CLI séparé ne sont requis — DSPy s'utilise comme un import Python classique.
- 1Installez le paquet :
pip install dspy. - 2Configurez un fournisseur LLM — par exemple
dspy.configure(lm=dspy.LM('openai/gpt-4o-mini', api_key='your-key'))pour un modèle hébergé, ou pointez vers un endpoint local compatible OpenAI. - 3Définissez une Signature décrivant les entrées et sorties de votre tâche, soit sous forme de courte chaîne (
"question -> answer"), soit sous forme de classe typée avecdspy.InputField()/dspy.OutputField(). - 4Enveloppez la Signature dans un Module —
dspy.Predict(...)pour un appel direct, oudspy.ChainOfThought(...)pour un raisonnement pas à pas — et appelez-le comme une fonction. - 5Optionnel : constituez un petit jeu d'entraînement et une fonction de score, puis exécutez un optimiseur comme
dspy.BootstrapFewShotoudspy.MIPROv2pour compiler une version ajustée de votre programme. - 6Consultez la documentation DSPy pour l'ensemble des tutoriels, y compris les pipelines RAG, les boucles d'agent avec
ReActet la configuration des optimiseurs.
Ancien nom de paquet
Des tutoriels plus anciens et certaines bases de code existantes font référence à pip install dspy-ai — c'était le nom PyPI d'origine avant que le projet ne récupère le nom plus court dspy. Les nouvelles installations doivent utiliser pip install dspy.
Faut-il Docker ou un GPU pour exécuter DSPy ?
Non. DSPy est une bibliothèque Python qui appelle un fournisseur LLM que vous configurez — Docker ou un GPU local ne sont pas requis, sauf si vous exécutez séparément un serveur de modèle local.
DSPy fonctionne-t-il avec des modèles locaux ?
Oui, si le modèle local est servi via un endpoint compatible OpenAI ou autrement pris en charge, vers lequel vous configurez le LM de DSPy — DSPy lui-même n'embarque pas de modèle intégré.
Qui devrait utiliser DSPy ?
DSPy convient aux développeurs qui écrivent déjà des pipelines LLM en Python et veulent que les prompts à l'intérieur soient ajustés selon des résultats mesurables plutôt que par essais-erreurs manuels. Il convient moins aux équipes qui ont surtout besoin de coordination multi-agents ou d'une interface sans code.
Utilisez DSPy si
- Vous avez un pipeline LLM en Python et un moyen de noter ses sorties — les optimiseurs de DSPy ont besoin d'une métrique et d'un jeu d'entraînement pour effectuer leur recherche
- Vous voulez que les prompts et exemples few-shot soient générés et ajustés de façon programmatique, reproductible, et réoptimisables si vous changez de modèle sous-jacent
- Vous êtes à l'aise pour définir des tâches sous forme de Signatures typées et composer des Modules en code, plutôt que dans un constructeur visuel sans code
- Votre tâche bénéficie de stratégies de raisonnement structurées comme
ChainOfThoughtou de boucles utilisant des outils commeReAct, et vous voulez que ces stratégies soient ajustées plutôt que promptées à la main
Évitez DSPy si
- Vous avez besoin d'orchestration multi-agents — plusieurs agents LLM qui communiquent, délèguent et coordonnent des tâches — c'est le cœur de métier de CrewAI, AutoGen ou LangGraph, pas de DSPy
- Vous avez besoin d'une interface sans code ou low-code — DSPy est une bibliothèque Python sans constructeur visuel, contrairement à des outils comme Langflow ou Flowise
- Vous n'avez pas d'exemples étiquetés ni de fonction de score pour votre tâche — les optimiseurs de DSPy ont besoin d'un critère de mesure ; sans cela, vous revenez de toute façon à écrire des prompts à la main
- Vous avez besoin du plus large écosystème possible d'intégrations prêtes à l'emploi (chargeurs de documents, connecteurs de bases vectorielles, outils d'agents) — LangChain offre une surface d'intégration plus large pour cela
Quand ne devriez-vous PAS utiliser DSPy ?
Évitez DSPy lorsque votre tâche relève en réalité de la coordination de plusieurs agents ou de l'intégration d'outils tiers, plutôt que de l'optimisation du prompt à l'intérieur d'un pipeline unique.
- Une équipe qui a besoin d'un constructeur de workflow visuel, sans code — DSPy est code-first, sans interface glisser-déposer
- Un projet qui relève fondamentalement de la coordination multi-agents (des agents qui se délèguent des sous-tâches entre eux) — un framework conçu pour ce schéma, comme CrewAI ou AutoGen, est structurellement mieux adapté
- Un script ponctuel où un prompt unique écrit à la main fonctionne déjà suffisamment bien — introduire Signatures, Modules et une boucle d'optimisation ajoute une charge d'ingénierie qui ne se justifie que si une amélioration mesurable et reproductible du prompt est nécessaire
- Une tâche sans moyen d'évaluer la justesse — les optimiseurs de DSPy nécessitent une fonction métrique, donc les tâches purement subjectives sans exemples étiquetés tirent peu de bénéfice de l'étape d'optimisation
- Utilisez plutôt DSPy précisément lorsque vous avez un pipeline, une métrique et un jeu d'entraînement, et que vous voulez automatiser et rendre reproductible l'étape de prompt engineering
DSPy vs alternatives
DSPy occupe une catégorie différente de la plupart des frameworks d'orchestration d'agents : il optimise les prompts et exemples few-shot à l'intérieur d'un pipeline plutôt que de coordonner plusieurs agents. Les points de comparaison les plus proches sont d'autres frameworks Python de construction de pipelines LLM, même si leur métier principal diffère de celui de DSPy.
Outil | Métier principal | Licence | Statut | Idéal pour |
|---|---|---|---|---|
| DSPy | Optimisation de prompts/poids | MIT | Actif | Ajuster les prompts selon une métrique |
| LangChain | Construction générale de pipelines LLM | MIT | Actif | Écosystème d'intégrations le plus large |
| LlamaIndex | Framework de données axé RAG | MIT | Actif | Pipelines de génération augmentée par récupération |
| Semantic Kernel | Composition structurée de prompts/compétences | MIT | Actif (converge vers MAF) | SDK entreprise .NET/Python/Java |
Ce tableau compare DSPy à des frameworks de pipelines Python avec le chevauchement conceptuel le plus proche, pas à des orchestrateurs multi-agents — DSPy ne concurrence pas directement CrewAI ou AutoGen, qui résolvent la coordination d'agents plutôt que l'optimisation de prompts.
Erreurs courantes lors de l'évaluation de DSPy
Ces erreurs viennent du fait de traiter DSPy comme un framework multi-agents, ou d'ignorer l'étape d'optimisation qui constitue l'intérêt réel du framework.
Erreur 1 : attendre de DSPy qu'il orchestre plusieurs agents
Les Modules de DSPy se composent en un pipeline unique, pas en une équipe d'agents communicants. Les équipes ayant besoin d'agents se délégant des sous-tâches devraient plutôt évaluer CrewAI, AutoGen ou LangGraph — DSPy peut optimiser les prompts à l'intérieur d'une étape de l'un de ces pipelines, mais ne remplace pas la couche d'orchestration elle-même.
Erreur 2 : ne jamais exécuter d'optimiseur
Écrire des Signatures et des Modules sans jamais compiler le programme avec un optimiseur comme BootstrapFewShot ou MIPROv2 fait l'impasse sur la partie de DSPy qui améliore réellement les prompts écrits à la main — un Module exécuté avec un prompting par défaut, non optimisé, peut sous-performer un prompt soigneusement ajusté à la main dans un workflow classique.
Erreur 3 : confondre dspy-ai et dspy sur PyPI
D'anciens tutoriels font référence à pip install dspy-ai, le nom de paquet PyPI d'origine du projet avant qu'il ne récupère le nom plus court dspy. Les installations actuelles doivent utiliser pip install dspy pour obtenir le paquet maintenu et à jour.
Questions fréquemment posées
DSPy est-il encore maintenu ?
Oui. Le dépôt stanfordnlp/dspy fait l'objet d'un développement actif ; le paquet dspy sur PyPI en était à la version 3.3.1, publiée le 21 août 2026, au moment de cette évaluation.
DSPy est-il gratuit ?
Oui. DSPy est sous licence MIT et gratuit pour un usage commercial, la modification et l'auto-hébergement. Il n'y a ni abonnement ni produit hébergé à payer.
Quelle est la différence entre DSPy et LangChain ?
LangChain est un framework généraliste pour construire des pipelines LLM avec un large écosystème d'intégrations ; DSPy se concentre spécifiquement sur la programmation de tâches avec des Signatures et Modules typés, puis optimise automatiquement les prompts et exemples few-shot selon une métrique. Ils résolvent des problèmes différents et complémentaires.
Que sont les Signatures et Modules de DSPy ?
Une Signature est une définition typée des entrées et sorties d'une tâche (par exemple "question -> answer"). Un Module implémente une stratégie d'exécution autour d'une Signature — Predict pour une complétion directe, ChainOfThought pour un raisonnement pas à pas, ReAct pour des boucles de raisonnement utilisant des outils.
Que sont les optimiseurs de DSPy ?
Les optimiseurs, anciennement appelés teleprompters, sont des algorithmes qui ajustent automatiquement les prompts et exemples few-shot d'un programme DSPy selon une métrique et un jeu d'entraînement — les optimiseurs nommés incluent BootstrapFewShot, MIPROv2 et GEPA.
Comment installer DSPy ?
Exécutez pip install dspy. C'est le nom de paquet PyPI canonique actuel ; un ancien paquet dspy-ai l'a précédé.
DSPy remplace-t-il les frameworks multi-agents comme CrewAI ou AutoGen ?
Non. DSPy optimise les prompts à l'intérieur d'un pipeline ; il n'orchestre pas plusieurs agents communicants comme le font CrewAI ou AutoGen. Les deux catégories sont complémentaires plutôt que concurrentes.
Sous quelle licence DSPy est-il publié ?
MIT, qui autorise un usage commercial gratuit, la modification et l'auto-hébergement.
Qui a créé DSPy ?
DSPy a été créé à Stanford NLP, le développement ayant débuté en décembre 2022. Le projet annonce plus de 454 contributeurs et un usage en production documenté chez des entreprises comme Shopify, Databricks et AWS.
Combien d'étoiles GitHub DSPy a-t-il ?
Le dépôt stanfordnlp/dspy a dépassé 37 900 étoiles GitHub et 3 300 forks, à jour en septembre 2026.
