LangChain.js
LangChain.js est la version TypeScript/JavaScript du framework LangChain, permettant de construire des agents IA et des applications LLM dans l’écosystème JavaScript : Node.js, Next.js, Deno, Bun, Cloudflare Workers, Supabase Edge Functions, et navigateurs.
Si vous êtes développeur JavaScript/TypeScript et que vous voulez construire un agent IA qui appelle des APIs, interroge une base de données vectorielle, ou orchestre des workflows complexes, LangChain.js est votre point d’entrée. Il porte les mêmes abstractions que la version Python (modèles, outils, agents, chaînes, RAG) dans un package npm natif, avec un typage TypeScript complet et un support multi-environnement unique dans l’écosystème IA.
- Catégorie
- Framework open source pour agents IA (TypeScript/JavaScript)
- Mainteneur
- LangChain Inc. (même équipe que LangChain Python)
- Langage
- TypeScript (compatible JavaScript)
- Version actuelle
- langchain 1.2.35 (mars 2026)
- npm
- 1 126+ projets dépendants sur le registre npm
- Environnements
- Node.js (18+), Next.js, Deno, Bun, Cloudflare Workers, Supabase Edge Functions, Browser
- Licence
- MIT
- Écosystème
- LangChain.js + LangGraph.js + LangSmith (tracing via SDK TypeScript)
- Verdict
- Le seul framework IA TypeScript complet pour la construction d’agents, avec un support multi-environnement inégalé
- URL
- js.langchain.com
Pourquoi LangChain.js existe
La version Python de LangChain domine l’écosystème IA avec 118 000+ GitHub stars. Mais une grande partie des applications web modernes sont construites en JavaScript/TypeScript : Next.js, React, Vue, APIs serverless, edge functions. LangChain.js permet à ces développeurs de construire des agents IA sans quitter leur stack technique habituelle.
Le projet a été lancé début 2023 par l’équipe LangChain pour porter les mêmes abstractions en TypeScript natif. Toutes les primitives de la version Python sont présentes : modèles de chat, outils, prompts, agents, chaînes, document loaders, embeddings, vector stores, et retrievers. L’interopérabilité entre les deux versions est un objectif de conception : les objets sérialisés (prompts, chaînes, agents) peuvent être partagés entre Python et JavaScript.
Le point fort distinctif de LangChain.js est son support multi-environnement. Contrairement à la version Python (limitée à des serveurs ou des notebooks), LangChain.js tourne partout où JavaScript tourne : serveurs Node.js classiques, fonctions serverless (Vercel, AWS Lambda), edge functions (Cloudflare Workers, Supabase Edge), runtimes alternatifs (Deno, Bun), et même directement dans le navigateur pour certains cas d’usage.
Architecture et composants
Organisation des packages
LangChain.js est organisé en packages modulaires pour garder la taille du bundle minimale :
langchain : le package principal. Il contient les abstractions de haut niveau (agents, chaînes, document loaders) et réexporte les fonctionnalités de @langchain/core.
@langchain/core : les primitives fondamentales (messages, prompts, output parsers, interfaces). C’est le cœur du framework, léger et indépendant.
@langchain/openai, @langchain/anthropic, @langchain/google-genai, etc. : packages d’intégration séparés pour chaque fournisseur. Vous n’installez que ce dont vous avez besoin, ce qui réduit la taille du bundle. Cette architecture modulaire est particulièrement importante pour les déploiements edge et browser où chaque Ko compte.
@langchain/langgraph : LangGraph.js, le framework d’orchestration d’agents avec graphes d’état, persistance, et human-in-the-loop. Depuis janvier 2026, LangGraph.js supporte StateSchema avec Standard JSON Schema, compatible Zod 4, Valibot, ArkType et d’autres bibliothèques de validation.
Modèles de chat
L’interface unifiée de modèles permet de passer d’un fournisseur à un autre en changeant une seule ligne :
Les fournisseurs supportés incluent OpenAI, Anthropic (Sonnet 4.6, Opus 4.6), Google (Gemini 3.1), Mistral, Cohere, Ollama (modèles locaux), et bien d’autres. Chaque fournisseur est dans son propre package npm, installé séparément.
Outils et function calling
LangChain.js utilise Zod pour définir les schémas d’outils avec typage complet :
Le pattern function calling / tool use est natif. L’agent décide automatiquement quand utiliser un outil, l’appelle, observe le résultat, et continue son raisonnement (pattern ReAct). Les outils typés avec Zod garantissent la validation des entrées et des sorties à la compilation et à l’exécution.
Middleware
Le système de middleware de LangChain.js (aligné avec la version Python 1.0) permet d’empiler des comportements sur vos agents sans modifier leur logique centrale :
Summarization middleware : résume automatiquement l’historique de conversation quand les limites de tokens approchent. Tool call limiter : impose un nombre maximum d’appels d’outils par exécution. Tool emulation : émule des outils via un LLM au lieu de les exécuter réellement (utile pour les tests). Retry middleware : retry automatique des appels échoués avec backoff configurable. Structured output : stratégies native (provider) et via function calling pour obtenir des sorties structurées.
Les middleware sont composables : vous les empilez dans l’ordre qui convient à votre cas d’usage, et ils s’exécutent séquentiellement autour de chaque appel au modèle.
Environnements supportés
C’est l’avantage compétitif principal de LangChain.js par rapport à la version Python. Votre code d’agent IA peut tourner dans tous ces environnements :
| Environnement | Cas d’usage | Notes |
|---|---|---|
| Node.js (18+) | Serveurs, scripts, APIs | ESM et CommonJS supportés |
| Next.js (Vercel) | Apps full-stack, API routes, edge | Template officiel disponible |
| Cloudflare Workers | Edge computing, APIs à faible latence | Bundle compact nécessaire |
| Supabase Edge Functions | Backend serverless, webhooks | Intégration native Supabase |
| Deno | Runtime sécurisé, scripts | Support natif des modules ESM |
| Bun | Runtime haute performance | Compatible npm packages |
| Browser | Apps client-side, prototypage | Certaines intégrations limitées (pas d’accès filesystem) |
Chaque environnement est testé dans le CI de LangChain.js via des projets starter isolés dans des conteneurs Docker. Cela garantit que les mises à jour ne cassent pas la compatibilité avec un environnement spécifique.
langchain-nextjs-template avec chatbot, RAG, et agent de retrieval pré-configurés, déployable en un clic sur Vercel. C’est le point de départ recommandé pour une app full-stack IA avec interface React et backend edge.
LangGraph.js
LangGraph.js est le pendant JavaScript de LangGraph. Il fournit l’orchestration d’agents via des graphes d’état, avec persistance, checkpointing, human-in-the-loop, et exécution durable. C’est LangGraph.js qui fait tourner les agents LangChain.js dans des environnements de production.
Depuis janvier 2026, LangGraph.js supporte StateSchema, une manière propre et agnostique de définir l’état du graphe compatible avec n’importe quelle bibliothèque de validation implémentant Standard JSON Schema (Zod 4, Valibot, ArkType). Plus de lock-in sur une bibliothèque de validation spécifique.
LangGraph.js est utilisé en production par des entreprises comme LinkedIn, Uber, Klarna et GitLab pour des agents complexes nécessitant une gestion d’état robuste, une mémoire persistante, et des workflows avec intervention humaine.
Deep Agents en JavaScript
LangChain.js supporte les Deep Agents, des agents sophistiqués qui vont au-delà des boucles simples d’appels d’outils. Les Deep Agents combinent des outils de planification, la création de sous-agents, l’accès au système de fichiers, et des prompts détaillés pour gérer des tâches multi-étapes complexes. L’architecture est inspirée d’applications comme Claude Code et Deep Research.
Tests et qualité
LangChain.js v1.2.35 introduit des custom Vitest matchers pour simplifier les tests d’agents IA :
Ces matchers couvrent les assertions sur les messages (Human, AI, System, Tool), les appels d’outils (nombre, contenu, présence), les interruptions, et les sorties structurées. Combinés avec LangSmith pour le tracing des tests, ils forment un pipeline de qualité robuste pour les agents en production.
Intégration LangSmith
LangSmith s’intègre nativement avec LangChain.js. Le SDK TypeScript de LangSmith est l’un des quatre SDKs officiels (avec Python, Go, et Java). Configurez une variable d’environnement LANGSMITH_API_KEY, et toutes vos exécutions sont automatiquement tracées. Vous pouvez ensuite :
Visualiser le parcours complet de chaque exécution d’agent (appels LLM, outils, décisions). Comparer des expériences côte à côte pour détecter les régressions. Transformer des traces de production en cas de test. Évaluer les performances avec des scorers automatisés et humains.
Pour les déploiements serverless et edge, veillez à configurer LANGCHAIN_CALLBACKS_BACKGROUND=false pour garantir que le tracing se termine avant la fin de la fonction (les edge functions ont un cycle de vie court).
LangChain Python vs. LangChain.js
| Critère | LangChain Python | LangChain.js |
|---|---|---|
| Langage | Python | TypeScript/JavaScript |
| Version | 1.0.3 (mars 2026) | 1.2.35 (mars 2026) |
| GitHub Stars | 118 000+ (repo principal) | Inclus dans le même écosystème (~13 000 sur langchainjs) |
| Environnements | Serveurs, notebooks, containers | Node.js, Next.js, Deno, Bun, Edge, Browser |
| Intégrations | 1 000+ (plus complètes) | Légèrement moins de connecteurs natifs |
| ML/Data Science | Meilleur support (numpy, pandas, transformers) | Limité (pas d’écosystème ML natif en JS) |
| Frontend | Pas de support navigateur | Support navigateur et edge natif |
| Typage | Type hints (optionnels) | TypeScript (typage strict, inférence complète) |
| Validation | Pydantic | Zod (+ Standard Schema depuis LangGraph.js) |
Les deux versions partagent les mêmes concepts et la même architecture, mais la version Python a généralement plus d’intégrations et une communauté ML plus large. La version JavaScript excelle sur le déploiement edge, le frontend, et l’intégration dans les stacks web modernes (Next.js, Vercel, Cloudflare). Pour les équipes full-stack JavaScript, LangChain.js élimine le besoin de maintenir un service Python séparé pour la partie IA.
Cas d’usage typiques
Chatbots augmentés avec Next.js : Le cas d’usage phare. Un chatbot React en frontend, une API route Next.js en backend, LangChain.js pour la logique d’agent (RAG, function calling, mémoire), déployé sur Vercel en mode edge. Le streaming de la réponse est natif et performant.
APIs d’agents serverless : Construire une API REST qui expose un agent IA capable de rechercher dans une base documentaire, résumer des contenus, et exécuter des actions. Déployable sur Vercel, AWS Lambda, ou Cloudflare Workers.
Automatisation edge : Agents IA tournant dans des Cloudflare Workers ou Supabase Edge Functions pour des cas nécessitant une latence minimale (triage de tickets, enrichissement de données en temps réel, classification de contenu).
Extensions navigateur : LangChain.js peut tourner dans le navigateur pour des extensions Chrome ou des applications client-side qui interagissent avec des LLMs sans backend dédié (les clés API restent côté client, donc uniquement pour le prototypage ou les outils internes).
Pipelines RAG full-stack : Ingestion de documents (PDF, HTML, CSV), vectorisation, stockage dans Supabase, Pinecone ou Chroma, et recherche augmentée, le tout en TypeScript de bout en bout.
Prise en main rapide
Installation :
Agent minimal :
Template Next.js : Pour une application complète, utilisez le template officiel :
Ce template inclut un chatbot avec streaming, un pipeline RAG avec Supabase, et un agent de retrieval, le tout déployable sur Vercel en un clic.
Forces et faiblesses
| Forces | Faiblesses |
|---|---|
| Support multi-environnement unique (Node, Edge, Browser, Deno, Bun) | Moins d’intégrations que la version Python |
| TypeScript natif avec typage complet et inférence | Pas d’écosystème ML natif (pas de numpy/pandas en JS) |
| Validation Zod + Standard Schema (pas de lock-in) | Communauté plus petite que la version Python |
| Bundle compact (37 Ko pour RAG sur Edge) | Certaines fonctionnalités arrivent après la version Python |
| Intégration native LangSmith et LangGraph.js | Documentation parfois en retard sur les releases |
| Template Next.js officiel prêt à déployer | Debugging des agents plus complexe en serverless (lifecycle court) |
| Custom Vitest matchers pour les tests d’agents | Certaines intégrations vector store moins matures qu’en Python |
Verdict
LangChain.js est le framework IA le plus complet disponible pour l’écosystème JavaScript/TypeScript. Son support multi-environnement (Node.js, Next.js, Deno, Bun, Edge, Browser) est inégalé. Le typage TypeScript natif, la validation Zod, les custom Vitest matchers, et l’intégration LangSmith en font un outil de qualité production, pas juste un portage de convenance.
Pour les équipes full-stack JavaScript qui construisent des applications IA, LangChain.js élimine la nécessité d’un service Python séparé. Vous restez dans votre stack, avec votre outillage, vos outils de test, et vos pipelines de déploiement habituels.
Si votre cas d’usage est principalement data science ou ML (analyse de données, fine-tuning, traitement de datasets massifs), la version Python reste le meilleur choix grâce à l’écosystème numpy/pandas/transformers. Pour tout le reste, en particulier les applications web, les APIs, les chatbots, et les agents déployés en edge, LangChain.js est le choix naturel.
Questions fréquentes sur LangChain.js
Quelle est la différence entre LangChain.js et LangChain Python ?
Les deux partagent les mêmes abstractions et la même architecture (modèles, outils, agents, chaînes, RAG). LangChain Python a plus d’intégrations (1 000+ vs un peu moins en JS) et un meilleur support pour le ML/data science (numpy, pandas, transformers). LangChain.js excelle sur le déploiement multi-environnement (Node.js, Next.js, Edge, Browser, Deno, Bun), le typage TypeScript strict, et l’intégration dans les stacks web modernes. Les objets sérialisés sont interopérables entre les deux versions.
LangChain.js fonctionne-t-il dans le navigateur ?
Oui, LangChain.js supporte l’exécution dans le navigateur. Cependant, certaines intégrations ne fonctionnent pas côté client (accès filesystem, bases de données locales). L’usage principal en browser est le prototypage, les outils internes, ou les extensions. Pour la production, le pattern recommandé est de faire tourner LangChain.js côté serveur (API route Next.js, Edge function) et de streamer les résultats vers le client React.
LangChain.js est-il compatible avec Next.js ?
Oui, c’est l’un des cas d’usage les plus populaires. LangChain fournit un template officiel langchain-nextjs-template avec chatbot, RAG, et agent pré-configurés, déployable sur Vercel en un clic. LangChain.js fonctionne à la fois dans les API routes (server-side) et les edge functions (edge runtime). Le streaming des réponses LLM vers le client est natif et performant. Pour le tracing LangSmith en edge, configurez LANGCHAIN_CALLBACKS_BACKGROUND=false.
Peut-on utiliser LangChain.js avec Cloudflare Workers ?
Oui. LangChain.js est testé et compatible avec Cloudflare Workers. Le bundle compressé est suffisamment compact (environ 37 Ko pour un cas RAG) pour respecter les limites de taille des Workers. Utilisez les packages d’intégration séparés (@langchain/openai, @langchain/anthropic) pour minimiser la taille du bundle. Les limitations habituelles des Workers s’appliquent (pas de filesystem, durée d’exécution limitée).
Quel est le niveau de parité avec la version Python ?
La parité est élevée mais pas complète. Les abstractions fondamentales (modèles, outils, agents, chaînes, RAG, embeddings, vector stores) sont toutes présentes. Les middleware (summarization, retry, tool limiter, structured output) sont disponibles. Les Deep Agents sont supportés. Certaines intégrations spécifiques existent en Python mais pas encore en JavaScript, et inversement. Les nouvelles fonctionnalités arrivent parfois en Python d’abord, avec un délai de quelques semaines à quelques mois pour la version JavaScript. La version 1.2.x de LangChain.js est activement maintenue avec des releases quasi hebdomadaires.