langchain-dependencies

Par langchain-ai · langchain-skills

INVOQUER CETTE COMPÉTENCE lors de la mise en place d'un nouveau projet ou en cas de questions sur les versions de packages, l'installation ou la gestion des dépendances pour LangChain, LangGraph, LangSmith ou Deep Agents. Couvre les packages requis, les versions minimales, les prérequis d'environnement, les bonnes pratiques de versionnage et les packages d'outils communautaires courants, aussi bien pour Python que pour TypeScript.

npx skills add https://github.com/langchain-ai/langchain-skills --skill langchain-dependencies

<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/core doit ê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

Skills similaires