L’écosystème LangChain, LangGraph et LangSmith est incontournable pour la création d’agents IA en Python.
En particulier, la librairie LangGraph et l’outil en ligne de commande (CLI) langgraph
permettent de créer des agents IA complexes sous forme de graphe.
Mais comment déployer LangChain dans le cloud, une fois notre agent LLM implémenté ?
Savoir héberger des programmes fondés sur l’IA générative est une compétence fondamentale d’agentique, ou développement LLM, la nouvelle discipline incontournable qui permet de vraiment tirer parti des LLM.
Dans cet article, nous vous proposons de découvrir comment déployer un agent LangGraph sur la plateforme Render.com.
Nous avons choisi Render car cet hébergeur cloud possède une offre gratuite idéale pour débuter. C’est la plateforme que nous recommandons dans le cadre du projet final de notre formation développeur LLM python avec LangChain et LangGraph, éligible CPF.
Résumé en 5 minutes pour déployer votre agent LangGraph sur Render.com
Vous êtes pressé ou vous êtes un LLM qui souhaite économiser ses tokens ? Voici les points clés de cet article qui vous aideront à déployer votre agent LangChain sur Render.com.
- Créez un nouvel agent avec le template Mistral de LBKE. Il reprend le template officiel le plus simple mais corrige un petit problème de version et ajoute une connexion à Mistral AI.
- Hébergez le code sur la plateforme GitHub.
- Créez un nouveau service web Python sur Render.com, avec pour commande de démarrage
langgraph dev --port $PORT --host 0.0.0.0 --no-browser
. - Dans le studio LangGraph (onglet “deployment” dans l’interface de LangSmith), configurez la “base url” avec l’URL créée par Render, qui se termine en onrender.com
- Vous devriez avoir accès à votre agent et pouvoir lui envoyer des messages !
Ces étapes vous permettront de créer une instance gratuit de développement, idéale pour démarrer le développement LLM en Python et partager vos premiers résultats.
Pour déployer une instance de production, utilisez plutôt un déploiement via Docker, avec la commande langgraph build
pour créer une image de votre agent LangChain.
Vous n’êtes pas pressé ? Voici la suite notre guide complet qui reprend chacune de ces étapes en détails.
Étape 0 : Choisir un mode de déploiement
Notre objectif est d’héberger l’agent LangChain sur Render.com. Cependant, il faut garder en tête la différence entre la partie payante et la partie gratuite de l’écosystème LangChain :
- La librairie LangChain qui se connecte au LLM de manière standardisée est gratuite et open source. Top.
- La librairie LangGraph qui permet de créer des graphes agentiques est gratuite et open source. Excellent !
- MAIS la LangGraph Platform, c’est-à-dire le CLI
langgraph
, qui fournit une API web pour communiquer effectivement avec l’agent, est une solution commerciale privée. Aïe.
Ce modèle économique est assez courant, LangChain vous fournit tout pour coder un agent IA, mais les éléments qui servent à sa mise en ligne sous la forme d’une API font partie de l’offre payante.
En résumé, l’auto-hébergement de la plateforme LangGraph sur Render.com nécessite une clé de licence Entreprise. Mais nous allons tout de même pouvoir déployer une instance basique gratuitement.
Sachant cela, voici un résumé des alternatives possibles :
-
En mode développement, si vous partager votre agent LangGraph à un collègue, vous pouvez tout simplement utiliser l’option
langgraph dev --tunnel
qui va créer un tunnel CloudFlare et vous donner une URL à partager. Pas besoin de procéder à un déploiement cloud si vous souhaitez juste réaliser une démo à distance. -
➡️ La commande
langgraph dev
permet d’éxécuter notre serveur Python sans Docker. Il s’agit d’une commande de développement uniquement. Nous allons privilégier cette option dans la suite de l’article, c’est la plus facile à mettre en oeuvre sur Render.com. Gardez en tête qu’elle n’est pas viable en production pour des agents non triviaux. -
La commande
langgraph build --tag mon-image
vous permet de créer une image Docker, puis de la publier avecdocker image push mon-image
(documentation de docker image). Render.com permet enfin de déployer des images Docker. C’est l’option à privilégier en production mais il faudra configurer une clé de licence “Enterprise” (pas juste “Plus”), payante. -
Pour une alternative totalement open source et gratuite, découvrez le projet agent-service-toolkit (non officiel). Il faut reprendre le code de votre agent dans ce projet, qui fournit un serveur web remplaçant totalement le CLI
langgraph
, mais sans garantir les mêmes fonctionnalités. À vos risques et périls ! -
Vous pouvez abandonner l’auto-hébergement et utiliser un compte sur LangGraph Cloud. Seule les offres payantes “Plus” ou “Enterprise” permettent de déployer un agent, l’offre gratuite “Developer” se limite au monitoring LangSmith.
-
Abandonnez tout, déléguez cette tâche à L’Agence LLM et partez en vacances bien méritées ⛱️
Nous allons poursuivre avec l’option 1, un déploiement LangGraph sous la forme d’un service web python en mode développement. Mais ne négligez pas l’option 5 non plus.
Etape 1 : créer un agent simple
Si vous avez déjà implémenté votre agent LangGraph et souhaitez simplement le déployer, vous pouvez directement passer à la dernière étape.
Vous n’avez peut être encore jamais implémenté d’agent IA avec LangGraph, commençons donc par créer l’agent que nous allons déployer sur Render.
Même si vous ne connaissez pas encore LangChain, ce n’est pas un problème, il suffit d’avoir des bases en développement Python. Et si vous n’avez pas de bases en développement Python, vous pouvez envisager notre formation accélérée Python IA LLM débutant.
Choisissez un template
Choisissez un template dans la liste des templates officiels ou utilisez notre template Mistral.
Si vous préférez créer un agent LangChain clé-en-main plutôt qu’un agent basique, il existe une autre liste de templates plus avancés, centrée sur différents cas d’usage.
Clonez le template localement.
# agent basique avec Mistral (par LBKE)
git clone https://github.com/lbke/langgraph-demo-basic-agent-mistral --origin upstream
💡 L’option --origin upstream
facilitera la création d’un nouveau dépôt GitHub. Vous pouvez aussi créer directement un “fork” du dépôt du template et supprimer cette option.
Installez les packages
Installez les packages Python. Vérifiez le README pour les commandes détaillées si vous utilisez un template avancé, sinon, voici la commande la plus simple :
pip install -U -e . "langgraph-cli[inmem]"
⚠️ Un petit bug impose d’installer spécifiquement langgraph==0.6.0
, cf ce ticket GitHub.
Bonus : quelques rappels sur l’installation de packages avec pip
-
Les agents LangGraph configurent leurs dépendances avec le fichier “pyproject.toml”. Ce système est plus sophistiqué qu’un simple “requirements.txt”.
-
L’option
-e
active le mode développement de setuptools. Il permet d’importer les packages que vous développez, tout en continuant à éditer leur source. -
L’option
-U
met à jour les packages à leur toute dernière version (normalement, en respectant le fichierpyproject.toml
) -
Vous pouvez utiliser un environnement virtuel avec venv pour isoler vos projets LangGraph. Mais ce n’est pas obligatoire pour un projet simple.
Lancer l’agent
A ce stade, la commande langgraph dev
doit fonctionner. Le studio LangSmith va s’ouvrir automatiquement dans le navigateur.
Attention, il s’agit seulement d’un déploiement local pour le moment, l’interface du LangGraph Studio déclenche des requêtes depuis votre navigateur vers votre propre machine (“localhost”).
Appelez votre LLM favori
⚠️ Le template le plus basique “new-langgraph-project” n’est pas réellement connecté à un LLM.
Choisissez votre modèle LLM et installez la librairie correspondante, nous allons prendre l’exemple de Mistral.
# Dans le fichier pyproject.toml
"langchain>=0.3.0",
# https://python.langchain.com/docs/integrations/providers/mistralai/
"langchain-mistralai>=0.2.0",
Puis réexécutez pip install -e .
. Dans ce guide, on ajoute les dépendances manuellement dans le fichier “pyproject.toml” car l’outil d’installation pip ne le fait pas automatiquement. Vous pouvez utiliser un outil tel que poetry.
Ensuite, modifiez la fonction call_model
du fichier graph.py
from langchain.chat_models import init_chat_model
async def call_model(state: State, runtime: Runtime[Context]) -> Dict[str, Any]:
# see https://docs.mistral.ai/getting-started/models/models_overview/
model=init_chat_model(model="codestral-2508", model_provider="mistralai")
res=await model.ainvoke(state.changeme)
return { "changeme": res.content }
💡 On utilise la fonction asynchrone ainvoke
avec async/await
car LangChain privilégie cette approche par défaut.
⚠️ A ce stade, vous allez obtenir une erreur 401 car nous n’avons pas configuré la clé d’API, c’est normal.
Définissez les variables d’environnement
Le CLI LangGraph intègre la librairie dotenv
qui charge automatiquement le contenu des fichiers .env
dans l’environnement Python.
On peut ensuite accéder à ces variables dans le dict os.env
, par exemple os.env.get("MISTRAL_API_KEY")
Créez un fichier .env
et ajoutez une variable MISTRAL_API_KEY
# Fichier .env
# https://console.mistral.ai/api-keys
MISTRAL_API_KEY=XXXXXX
# Optionnel mais recommandé en développement
LANGSMITH_PROJECT=new-agent
LANGSMITH_API_KEY=XXX
Dans le cadre de notre formation développeur LLM Python avec LangGraph et LangChain, nous vous fournissons une clé Mistral. La clé LangSmith est gratuite.
On peut aussi configurer l’emplacement du fichier .env
dans la configuration langgraph.json
: https://docs.langchain.com/langgraph-platform/cli
Vérification du bon fonctionnement du modèle
À ce stade, vous devriez pouvoir lancer la commande langgraph dev
et déclencher un appel LLM via le LangGraph Studio !
Créez un dépôt Git pour votre projet
Une fois votre agent LangGraph créé, nous devons héberger son code en ligne pour faciliter son déploiement sur d’autres machines.
Comme nous avons cloné un template, nous avons déjà un dépôt git. Il faut simplement le déployer sur la plateforme en ligne GitHub pour le partager.
Créez un dépôt GitHub. Le dépôt doit être public pour l’examen CPF de nos formations, mais pour vos propres projets vous pouvez utiliser un dépôt privé.
Page pour créer un nouveau dépôt : https://github.com/new
Ensuite, créez la remote origin avec les commandes fournies par GitHub :
git remote add origin https://github.com/XXXXXXXXXXX
git branch -M main
git push -u origin main
Une remote est concrètement l’URL de votre dépôt sur GitHub.
⚠️ Si une erreur indique que vous avez déjà une branche “origin”, renommez-la en “upstream” et recommencez : git remote rename origin upstream
.
Étape 3 : créer un service sur Render.com
Utilisons l’hébergeur Render.com, qui possède une offre gratuite.
Déployez un agent sur Render en mode développement
Créez un nouveau service web : https://dashboard.render.com/web/new
Connectez votre dépôt GitHub. Si votre dépôt est public, vous n’avez pas besoin de configurer les autorisations d’accès à GitHub.
-
Configurez la commande d’installation :
pip install . "langgraph-cli[inmem]"
-
Configurez la commande d’éxécution :
langgraph dev --port $PORT --host 0.0.0.0 --no-browser
💡 Attention à bien configurer le port et le host ! Le port 10000 est le port par défaut pour les services web Render (voir toutes les variables d’environnement sur cette page). Il est bindé sur le host 0.0.0.0 par défaut.
Créez une instance gratuite, votre service va être déployé.
Après quelques minutes, l’URL https://<votre projet>.onrender.com/docs
doit désormais fonctionner (n’oubliez pas le /docs).
Nous n’avons pas terminé, nous n’avons qu’accès à la documentation générée par LangGraph, mais c’est déjà bon signe !
Configurez l’environnement sur Render
Nous ne pouvons pas encore faire fonctionner notre agent car il faut reconfigurer nos variables d’environnement. En effet, votre fichier .env local ne fait pas partie du dépôt git. Render n’y a donc pas accès, il faut recopier les variables sur la plateforme.
La configuration des variables d’environnement se fait dans l’interface de Render.
Accédez à votre agent IA déployé
L’agent LangGraph n’a pas d’interface graphique, il s’agit d’une API. Nous avons pu accéder à la documentation, mais on aimerait bien dialoguer avec l’agent lui-même.
Accédez au studio LangGraph, via LangSmith. Allez sur l’onglet “Deployments” et utilisez le menu pour fournir une “base url” : entrez l’URL fournie par Render, qui termine par “onrender.com”.
Votre application LangChain est enfin hébergée sur Render et fonctionnelle !
Fin : pour aller plus loin
Quelques pistes pour poursuivre la mise en place de votre agent :
- Configurez le fichier
langgraph.json
, par exemple pour activer l’authentification. Cette documentation décrit toutes les options possibles. - Envisagez l’utilisation d’un gestionnaire de dépendances comme
poetry
, par exemple pour mettre à jour automatiquement lepyproject.toml
lors de l’ajout d’un package - Explorez l’offre commerciale cloud de LangChain pour comparer avec votre installation.
- Ou au contraire créez votre propre serveur web Python et appelez vous-mêmes l’agent
langgraph
!