<overview> L'écosystème LangChain est divisé en packages autonomes avec des versions indépendantes. Comprendre quels packages vous avez besoin — et leurs contraintes de version — évite les incompatibilités et rend les mises à jour prévisibles.
Principes clés :
- LangChain 1.0 est la version LTS actuelle. Commencez toujours les nouveaux projets sur 1.0+. LangChain 0.3 est en maintenance uniquement — ne l'utilisez pas pour les nouveaux travaux.
- langchain-core est la fondation partagée : installez-le toujours explicitement aux côtés de tout autre package.
- langchain-community (Python uniquement) ne suit PAS le versioning sémantique ; épinglez-le conservativement.
- LangGraph vs Deep Agents : choisissez une approche d'orchestration en fonction de votre cas d'usage — ce sont des alternatives, pas une pile obligatoire (voir Choix du framework ci-dessous).
- Les intégrations de fournisseurs (modèle, magasin vectoriel, outils) sont installées séparément afin que vous ne récupériez que ce que vous utilisez. </overview>
Exigences d'environnement
| Exigence | Python | TypeScript / Node |
|---|---|---|
| Runtime minimum | Python 3.10+ | Node.js 20+ |
| LangChain | 1.0+ (LTS) | 1.0+ (LTS) |
| LangSmith SDK | >= 0.3.0 | >= 0.3.0 |
Choix du framework
Choisissez un seul orchestrateur d'agents. Vous n'avez besoin d'aucun des deux.
| Framework | Quand l'utiliser | Package extra cœur |
|---|---|---|
| LangGraph | Besoin d'un contrôle de graphe fin, de workflows personnalisés, de boucles ou de branches | langgraph / @langchain/langgraph |
| Deep Agents | Vous voulez la planification complète, la mémoire, le contexte de fichier et les compétences prêts à l'emploi | deepagents (dépend de LangGraph ; l'installe comme une dépendance transitive) |
Les deux reposent sur langchain + langchain-core + langsmith.
Packages cœur
Python — toujours requis
| Package | Rôle | Version min |
|---|---|---|
langchain |
Agents, chaînes, récupération | 1.0 |
langchain-core |
Types de base et interfaces (dépendance de pair) | 1.0 |
langsmith |
Tracing, évaluation, datasets | 0.3.0 |
Python — orchestration (en choisir une)
| Package | Utiliser quand | Version min |
|---|---|---|
langgraph |
Construction de graphes personnalisés directement | 1.0 |
deepagents |
Utilisation du framework Deep Agents | latest |
Python — fournisseurs de modèles (en choisir un ou plusieurs)
| Package | Fournisseur |
|---|---|
langchain-openai |
OpenAI (GPT-4o, o3, …) |
langchain-anthropic |
Anthropic (Claude) |
langchain-google-genai |
Google (Gemini) |
langchain-mistralai |
Mistral |
langchain-groq |
Groq (inférence rapide) |
langchain-cohere |
Cohere |
langchain-fireworks |
Fireworks AI |
langchain-together |
Together AI |
langchain-huggingface |
Hugging Face Hub |
langchain-ollama |
Ollama (modèles locaux) |
langchain-aws |
AWS Bedrock |
langchain-azure-ai |
Azure AI Foundry |
Python — packages d'outils et récupération courants
Ces packages ont des exigences de compatibilité plus strictes — utilisez la dernière version disponible sauf si vous avez une raison spécifique de ne pas le faire.
| Package | Ajoute | Notes |
|---|---|---|
langchain-tavily |
Recherche web Tavily (TavilySearch) |
Package d'intégration dédié ; préférez la dernière version |
langchain-text-splitters |
Utilitaires de chunking de texte | Semver, gardez la version actuelle |
langchain-community |
1000+ intégrations (secours) | Pas de semver — épinglez à la série mineure |
faiss-cpu |
Magasin vectoriel FAISS (local) | Via langchain-community ; utilisez la dernière |
langchain-chroma |
Magasin vectoriel Chroma | Package d'intégration dédié ; préférez la dernière version |
langchain-pinecone |
Magasin vectoriel Pinecone | Package d'intégration dédié ; préférez la dernière version |
langchain-qdrant |
Magasin vectoriel Qdrant | Package d'intégration dédié ; préférez la dernière version |
langchain-weaviate |
Magasin vectoriel Weaviate | Package d'intégration dédié ; préférez la dernière version |
langsmith[pytest] |
Plugin pytest pour LangSmith | Nécessite langsmith >= 0.3.4 |
Note de stabilité langchain-community : Ce package ne suit pas le versioning sémantique. Les versions mineures peuvent contenir des changements cassants. Préférez les packages d'intégration dédiés (p. ex.
langchain-chroma,langchain-tavily) quand ils existent — ils sont versionnés indépendamment et plus stables.
TypeScript — toujours requis
| Package | Rôle | Version min |
|---|---|---|
@langchain/core |
Types de base et interfaces (dépendance de pair) | 1.0 |
langchain |
Agents, chaînes, récupération | 1.0 |
langsmith |
Tracing, évaluation, datasets | 0.3.0 |
TypeScript — orchestration (en choisir une)
| Package | Utiliser quand | Version min |
|---|---|---|
@langchain/langgraph |
Construction de graphes personnalisés directement | 1.0 |
deepagents |
Utilisation du framework Deep Agents | latest |
TypeScript — fournisseurs de modèles (en choisir un ou plusieurs)
| Package | Fournisseur |
|---|---|
@langchain/openai |
OpenAI (GPT-4o, o3, …) |
@langchain/anthropic |
Anthropic (Claude) |
@langchain/google-genai |
Google (Gemini) |
@langchain/mistralai |
Mistral |
@langchain/groq |
Groq (inférence rapide) |
@langchain/cohere |
Cohere |
@langchain/aws |
AWS Bedrock |
@langchain/azure-openai |
Azure OpenAI |
@langchain/ollama |
Ollama (modèles locaux) |
TypeScript — packages d'outils et récupération courants
| Package | Ajoute | Notes |
|---|---|---|
@langchain/tavily |
Recherche web Tavily (TavilySearch) |
Package d'intégration dédié ; préférez la dernière version |
@langchain/community |
Large ensemble d'intégrations communautaires | À utiliser avec parcimonie ; préférez les packages dédiés |
@langchain/pinecone |
Magasin vectoriel Pinecone | Package d'intégration dédié ; préférez la dernière version |
@langchain/qdrant |
Magasin vectoriel Qdrant | Package d'intégration dédié ; préférez la dernière version |
@langchain/weaviate |
Magasin vectoriel Weaviate | Package d'intégration dédié ; préférez la dernière version |
@langchain/coredoit être installé explicitement dans les espaces de travail yarn et les monorepos — c'est une dépendance de pair et ne sera pas toujours hissée automatiquement.
Modèles de projet minimal
Ensemble minimal de dépendances pour un projet LangGraph (agnostique du fournisseur).
# requirements.txt
langchain>=1.0,<2.0
langchain-core>=1.0,<2.0
langgraph>=1.0,<2.0
langsmith>=0.3.0
# Ajoutez votre fournisseur de modèle, p. ex. :
# langchain-openai
# langchain-anthropic
# langchain-google-genai
Dépendances minimales package.json pour un projet LangGraph (agnostique du fournisseur).
{
"dependencies": {
"@langchain/core": "^1.0.0",
"langchain": "^1.0.0",
"@langchain/langgraph": "^1.0.0",
"langsmith": "^0.3.0"
}
}
Ensemble minimal de dépendances pour un projet Deep Agents (agnostique du fournisseur).
# requirements.txt
deepagents # inclut langgraph en interne
langchain>=1.0,<2.0
langchain-core>=1.0,<2.0
langsmith>=0.3.0
# Ajoutez votre fournisseur de modèle, p. ex. :
# langchain-anthropic
# langchain-openai
Dépendances minimales package.json pour un projet Deep Agents (agnostique du fournisseur).
{
"dependencies": {
"deepagents": "latest",
"@langchain/core": "^1.0.0",
"langchain": "^1.0.0",
"langsmith": "^0.3.0"
}
}
Ajout de recherche Tavily et d'un magasin vectoriel à un projet LangGraph.
# requirements.txt
langchain>=1.0,<2.0
langchain-core>=1.0,<2.0
langgraph>=1.0,<2.0
langsmith>=0.3.0
# Recherche web
langchain-tavily # utilisez la dernière ; package partenaire, semver
# Magasin vectoriel — en choisir un :
langchain-chroma # utilisez la dernière ; package partenaire, semver
# langchain-pinecone # utilisez la dernière ; package partenaire, semver
# langchain-qdrant # utilisez la dernière ; package partenaire, semver
# Traitement de texte
langchain-text-splitters # utilisez la dernière ; semver
# Votre fournisseur de modèle :
# langchain-openai / langchain-anthropic / etc.
Ajout de recherche Tavily et d'un magasin vectoriel à un projet LangGraph.
{
"dependencies": {
"@langchain/core": "^1.0.0",
"langchain": "^1.0.0",
"@langchain/langgraph": "^1.0.0",
"langsmith": "^0.3.0",
"@langchain/tavily": "latest",
"@langchain/pinecone": "latest"
}
}
Politique de versioning et stratégie de mise à niveau
| Groupe de packages | Versioning | Stratégie de mise à niveau sûre |
|---|---|---|
langchain, langchain-core |
Semver strict (LTS 1.0) | Autoriser mineur : >=1.0,<2.0 |
langgraph / @langchain/langgraph |
Semver strict (LTS v1) | Autoriser mineur : >=1.0,<2.0 |
langsmith |
Semver strict | Autoriser mineur : >=0.3.0 |
Packages d'intégration dédiés (p. ex. langchain-tavily, langchain-chroma) |
Versionnés indépendamment | Autoriser les mises à jour mineures ; utilisez la dernière |
langchain-community |
Pas de semver | Épinglez exact mineur : >=0.4.0,<0.5.0 |
deepagents |
Suivez les versions du projet | Épinglez à la version testée en production |
Les changements cassants ne surviennent que dans les versions majeures (1.x → 2.x) pour tous les packages conformes à semver. Les fonctionnalités dépréciées restent fonctionnelles dans toute la série 1.x avec des avertissements.
Préférez les packages d'intégration dédiés à langchain-community. Quand un package dédié existe (p. ex. langchain-chroma au lieu de l'intégration Chroma de langchain-community), utilisez-le — les packages dédiés sont versionnés indépendamment et mieux testés.
Les packages d'outils communautaires (Tavily, magasins vectoriels, etc.) doivent être maintenus à la dernière version sauf si votre projet nécessite un environnement verrouillé. Ces packages sortent fréquemment des correctifs de compatibilité aux côtés des mises à jour LangChain/LangGraph.
Variables d'environnement
Toutes les clés sont lues depuis l'environnement à l'exécution. Définissez uniquement les clés pour les services que vous utilisez réellement.
# LangSmith (toujours recommandé pour l'observabilité)
LANGSMITH_API_KEY=<your-key>
LANGSMITH_PROJECT=<project-name> # optionnel, par défaut "default"
# Fournisseur de modèle — définissez ceux que vous utilisez
OPENAI_API_KEY=<your-key>
ANTHROPIC_API_KEY=<your-key>
GOOGLE_API_KEY=<your-key>
MISTRAL_API_KEY=<your-key>
GROQ_API_KEY=<your-key>
COHERE_API_KEY=<your-key>
FIREWORKS_API_KEY=<your-key>
TOGETHER_API_KEY=<your-key>
HUGGINGFACEHUB_API_TOKEN=<your-key>
# Services d'outils/récupération courants
TAVILY_API_KEY=<your-key> # pour la recherche Tavily
PINECONE_API_KEY=<your-key> # pour Pinecone
Erreurs courantes
Ne commencez jamais un nouveau projet sur LangChain 0.3. C'est uniquement en maintenance jusqu'en décembre 2026.
# WRONG : hérité, pas de nouvelles fonctionnalités, correctifs de sécurité uniquement
langchain>=0.3,<0.4
# CORRECT : LangChain 1.0 LTS
langchain>=1.0,<2.0
langchain-community peut se casser lors des mises à jour de version mineure — elle ne suit pas semver.
# WRONG : autorise les mises à jour de version mineure qui peuvent être cassantes
langchain-community>=0.4
# CORRECT : épinglez à la série mineure exacte
langchain-community>=0.4.0,<0.5.0
Envisagez aussi de passer au package d'intégration dédié équivalent s'il existe (p. ex. langchain-chroma au lieu de l'intégration Chroma communautaire).
Les packages d'outils communautaires comme langchain-tavily et les intégrations de magasins vectoriels sortent des correctifs de compatibilité aux côtés des mises à jour LangChain. Utiliser une ancienne version épinglée peut causer des erreurs d'import ou des schémas d'outils cassés.
# RISKY : ancienne épingle peut être incompatible avec LangChain 1.0
langchain-tavily==0.0.1
# BETTER : autoriser la dernière dans la majeure actuelle
langchain-tavily>=0.1
De nombreux outils qui vivaient autrefois dans langchain-community ont maintenant des packages dédiés avec des chemins d'import mis à jour. Préférez toujours l'import du package dédié.
# WRONG — chemin d'import communautaire déprécié
from langchain_community.tools.tavily_search import TavilySearchResults
from langchain_community.tools import WikipediaQueryRun
from langchain_community.vectorstores import Chroma
from langchain_community.vectorstores import Pinecone
# CORRECT — utilisez les imports de package dédiés
from langchain_tavily import TavilySearch # pip: langchain-tavily (TavilySearchResults est déprécié)
from langchain_community.tools import WikipediaQueryRun # pas de package dédié pour l'instant
from langchain_chroma import Chroma # pip: langchain-chroma
from langchain_pinecone import PineconeVectorStore # pip: langchain-pinecone
Pour trouver l'import canonique actuel pour toute intégration, consultez le répertoire des intégrations : https://python.langchain.com/docs/integrations/tools/
Chaque entrée affiche le package correct et le chemin d'import. Si un package dédié existe, utilisez-le — le chemin communautaire peut toujours fonctionner mais est considéré comme hérité.
@langchain/core est une dépendance de pair — elle doit être dans votre package.json, surtout dans les monorepos.
// WRONG : @langchain/core manquant (casse dans les espaces de travail yarn / hoisting strict)
{
"dependencies": {
"@langchain/langgraph": "^1.0.0"
}
}
// CORRECT : listez toujours @langchain/core explicitement
{
"dependencies": {
"@langchain/core": "^1.0.0",
"@langchain/langgraph": "^1.0.0"
}
}
Python 3.9 et les versions antérieures ne sont pas supportés par LangChain 1.0.
# Vérifiez avant l'installation
import sys
assert sys.version_info >= (3, 10), "Python 3.10+ requis pour LangChain 1.0"
Node.js inférieur à 20 n'est pas officiellement supporté.
# Vérifiez avant l'installation
node --version # doit être v20.x ou supérieur