Résumé de la sortie de LangChain et LangGraph 1.0
(blog.langchain.com)Nous annonçons la sortie 1.0, la première version majeure stable de LangChain et LangGraph. LangChain fournit des abstractions de haut niveau pour développer rapidement des agents IA, tandis que LangGraph prend en charge des agents de niveau production personnalisables grâce à un runtime basé sur des graphes. Cette sortie met l’accent sur la stabilité, et aucun changement n’est prévu jusqu’à la version 2.0. Le site de documentation unifié (https://docs.langchain.com/) a été repensé, et la stack est déjà utilisée en production par de grandes entreprises comme Uber, LinkedIn et Klarna. Elle enregistre actuellement 90 millions de téléchargements par mois.
Principales annonces
LangChain 1.0 et LangGraph 1.0 sont publiés comme des versions stables intégrant les retours de la communauté. LangChain affine la boucle d’agent, renforce la personnalisation via le middleware et modernise l’intégration des modèles pour les types de contenu actuels. LangGraph fournit un runtime robuste pour la persistance, l’observabilité et le contrôle avec intervention humaine des agents longue durée. Les deux prennent en charge Python et JavaScript, avec compatibilité ascendante garantie.
LangChain 1.0 : nouveautés et améliorations
LangChain 1.0 simplifie le développement d’agents en résolvant les problèmes d’abstractions trop lourdes et de périmètre des packages. Les principaux axes sont l’abstraction create_agent, les blocs de contenu standardisés et la simplification des packages.
Abstraction create_agent
Fonctionnalité centrale permettant de construire rapidement des agents quel que soit le fournisseur de modèle, en s’appuyant sur LangGraph pour garantir une exécution stable. La boucle d’agent standard est la suivante :
- Configuration : choix du modèle, fourniture des outils, définition du prompt.
- Boucle d’exécution :
- Envoi d’une requête au modèle.
- Réponse du modèle : en cas d’appel d’outil, exécution puis ajout à la conversation ; en cas de réponse finale, retour du résultat.
- Répéter à partir de l’étape 1.
Exemple de code :
from langchain.agents import create_agent
weather_agent = create_agent(
model="openai:gpt-5",
tools=[get_weather],
system_prompt="Help the user by fetching the weather in their city.",
)
result = agent.invoke({"role": "user", "what's the weather in SF?"})
Middleware : personnalisation en ajoutant des hooks à différents points de la boucle d’agent (avant/après l’appel au modèle, exécution d’outils, etc.). Middleware intégré :
- Intervention humaine (Human-in-the-loop) : interruption lors des appels d’outils pour permettre à l’utilisateur d’approuver, modifier ou refuser ; utile pour les interactions sensibles (accès à des systèmes externes, transactions).
- Résumé (Summarization) : compression de l’historique des messages pour éviter les limites de contexte, tout en conservant les messages récents.
- Masquage des PII : identification et masquage des données sensibles comme les e-mails et numéros de téléphone afin de respecter la confidentialité.
Le middleware personnalisé est également pris en charge.
Génération de sorties structurées : intégrée à la boucle d’agent pour réduire la latence et les coûts. Contrôle de la sortie via des modèles Pydantic, par exemple. Exemple :
from langchain.agents import create_agent
from langchain.agents.structured_output import ToolStrategy
from pydantic import BaseModel
class WeatherReport(BaseModel):
temperature: float
condition: str
agent = create_agent(
"openai:gpt-4o-mini",
tools=[weather_tool],
response_format=ToolStrategy(WeatherReport),
prompt="Help the user by fetching the weather in their city.",
)
L’ancien create_react_agent a été marqué comme obsolète dans langgraph.prebuilt.
Blocs de contenu standardisés
Fonctionnalité promue dans langchain-core 1.0, fournissant une spécification neutre vis-à-vis des fournisseurs pour la sortie des modèles. La propriété .content_blocks des messages permet de gérer de manière cohérente les types de contenu comme les traces de raisonnement, les citations et les appels d’outils. Cela facilite le changement de modèle entre OpenAI, Anthropic et d’autres, et reste compatible avec le streaming, les UI et les magasins de mémoire.
Simplification des packages
Seules les abstractions centrales sont conservées, tandis que les fonctionnalités legacy sont déplacées vers langchain-classic. Le support de Python 3.9 est abandonné (3.10+ requis). Installation : uv pip install --upgrade langchain et langchain-classic. Guide de migration : https://docs.langchain.com/oss/python/releases/langchain-v1.
LangGraph 1.0 : nouveautés et améliorations
LangGraph 1.0 est un framework de bas niveau pour des agents hautement personnalisables, adapté aux systèmes longue durée en environnement de production. Il utilise un modèle d’exécution basé sur des graphes.
Fonctionnalités clés
- État durable (Durable State) : persistance automatique de l’état d’exécution des agents, avec possibilité de reprise après redémarrage du serveur.
- Persistance intégrée : enregistrement/reprise des workflows sans code base de données, avec prise en charge des processus sur plusieurs jours ou des tâches en arrière-plan.
- Patterns d’intervention humaine : API permettant d’interrompre l’exécution pour revue, modification ou approbation humaine, adaptée aux scénarios à haut risque.
Le module langgraph.prebuilt a été déplacé vers langchain.agents. Installation : uv pip install --upgrade langgraph. Migration : compatibilité maintenue.
Concepts : agents avec état, workflows multi-agents, intégration avec LangChain
Agents avec état (Stateful Agents)
Conservation d’un état persistant entre les interactions. Le runtime de LangGraph préserve l’historique de conversation, les résultats d’outils et l’avancement du workflow. Dans LangChain 1.0, le middleware de résumé aide à gérer les limites de contexte. Utile pour les workflows multi-sessions, par exemple des processus d’approbation s’étalant sur plusieurs jours.
Workflows multi-agents (Multi-Agent Workflows)
Le modèle en graphe de LangGraph permet de composer des systèmes multi-agents. Il combine des nœuds déterministes (logique fixe) et des composants agentiques (décisions basées sur des LLM), avec supervision via intervention humaine. Les agents LangChain peuvent être embarqués comme nœuds du graphe pour étendre le système. Adapté à l’automatisation métier (recherche de données, analyse, approbation).
Intégration avec LangChain
LangChain repose sur le runtime LangGraph via des abstractions de haut niveau, ce qui rend les agents robustes et durables. Les graphes sont composables pour évoluer vers des systèmes complexes. Cela permet d’éviter le vendor lock-in. Vidéo sur les détails d’ingénierie : https://youtu.be/r5Z_gYZb4Ns.
Cas d’usage
- LangChain 1.0 : prototypage rapide de patterns standard, comme des requêtes météo ou des assistants basés sur des outils. Le middleware permet d’implémenter des chatbots respectueux de la confidentialité ou des agents transactionnels avec approbation humaine.
- LangGraph 1.0 : automatisations longue durée (approbations sur plusieurs jours), supervision humaine de workflows sensibles, systèmes hybrides (agents + logique déterministe). Cas d’usage entreprise chez Uber ou Klarna.
- Utilisation conjointe : démarrer avec LangChain puis étendre avec LangGraph, notamment pour l’automatisation métier multi-agents.
Documentation et ressources
Le site de documentation unifié (https://docs.langchain.com/) inclut une navigation intuitive, des guides, des tutoriels et des références API. Retours de la communauté : forum LangChain (https://forum.langchain.com/). Inscription à la newsletter disponible.
3 commentaires
Oh, la version 1.0 est sortie.
À partir de la 1.0, l’API va peut-être enfin se stabiliser...
J’espère qu’une 2.0 ne sortira pas aussitôt, avec encore la nécessité d’aller fouiller dans le guide de migration.
Je n’ai pas vraiment de reproches à faire aux fonctionnalités de LangChain, mais le fait qu’ils cassent régulièrement la rétrocompatibilité est toujours source d’inquiétude et de contraintes.
Bon… côté IA, comme il est souvent plus simple de tout réécrire depuis le début, ça passe encore, mais ce qui me frustre le plus, c’est que les LLM ne maîtrisent pas vraiment la syntaxe la plus récente haha (même si on peut en partie contourner le problème avec des choses comme MCP).