Langflow : construire des agents IA en reliant des blocs
Ce que permet l'éditeur visuel de Langflow, comment transformer un flow en API ou en serveur MCP, et pourquoi sa sécurité mérite une attention particulière.

Un chatbot qui répond à partir de la documentation interne, c'est en théorie trente lignes de Python : découper les documents, calculer des embeddings, les ranger dans une base vectorielle, interroger, passer le contexte au modèle. En pratique, c'est trois jours à régler la taille des morceaux, à changer de modèle, à comprendre pourquoi la réponse ignore le document le plus pertinent.
Langflow transforme ce travail en schéma. C'est un éditeur visuel open source où chaque étape d'une application IA est un bloc, un « composant » : un modèle, un prompt, un découpeur de texte, une base vectorielle, un outil, un agent. On les relie sur un canevas, on teste dans un terrain de jeu intégré, et le résultat s'expose en API ou en serveur MCP.
D'où vient Langflow
Le projet a été lancé début 2023 par Logspace, une start-up brésilienne, au moment où LangChain devenait la bibliothèque de référence pour les applications LLM. Langflow était alors une interface graphique pour LangChain. DataStax l'a racheté en 2024, puis IBM a racheté DataStax en 2025.
Le dépôt langflow-ai/langflow dépasse les 155 000 étoiles en octobre 2026, sous licence MIT, écrit en Python avec un frontend React. La version 1.12.6 est sortie le 13 octobre. Langflow n'est plus limité à LangChain : le moteur d'exécution a été extrait dans un paquet séparé, lfx, et les composants couvrent la plupart des fournisseurs de modèles et des bases vectorielles du marché.
Le canevas
Un flow se lit de gauche à droite. Pour un RAG simple :
Fichier → Découpage → Embeddings → Base vectorielle
↓
Entrée chat → Recherche ─────────→ Prompt → Modèle → Sortie chatChaque composant expose ses paramètres dans un panneau : taille des morceaux, nombre de résultats, température, modèle. Le terrain de jeu permet de lancer le flow pas à pas et d'inspecter ce qui passe entre deux blocs. C'est ce qui fait gagner le plus de temps : quand une réponse est mauvaise, on voit tout de suite si la recherche a ramené les bons passages ou si le prompt les a mal utilisés.
Le composant Agent fonctionne de la même façon. On lui branche un modèle et des outils, une recherche web, une calculatrice, un autre flow, une API, et il décide lui-même lesquels appeler. Plusieurs agents peuvent se passer la main dans un même flow.
Du canevas au code
La force de Langflow face à d'autres outils visuels, c'est qu'on ne reste jamais bloqué par l'interface. Chaque composant est une classe Python, et le bouton « Code » permet de modifier son source directement dans l'éditeur. Pour un composant entièrement personnalisé :
from lfx.custom.custom_component.component import Component
from lfx.io import MessageTextInput, Output
from lfx.schema.message import Message
class Majuscules(Component):
display_name = "Majuscules"
description = "Met un texte en majuscules."
name = "majuscules"
inputs = [MessageTextInput(name="texte", display_name="Texte")]
outputs = [Output(display_name="Résultat", name="resultat", method="transformer")]
def transformer(self) -> Message:
return Message(text=self.texte.upper())Le dossier est déclaré avec la variable LANGFLOW_COMPONENTS_PATH, et chaque composant doit être rangé dans un sous-dossier de catégorie. Depuis la version 1.7, les imports passent par lfx au lieu de langflow, même si l'ancienne forme fonctionne encore.
Exposer un flow
Un flow terminé est immédiatement disponible par l'API REST :
curl -X POST "http://localhost:7860/api/v1/run/<flow-id>" \
-H "Content-Type: application/json" \
-H "x-api-key: $LANGFLOW_API_KEY" \
-d '{"input_value": "Comment réinitialiser mon mot de passe ?", "input_type": "chat", "output_type": "chat"}'Chaque projet peut aussi être servi comme serveur MCP : ses flows deviennent des outils qu'un client comme Claude Desktop, Cursor ou Claude Code appelle directement. Si vous avez lu le guide du Model Context Protocol, c'est la manière la plus rapide de transformer un pipeline RAG en outil pour votre agent de code, sans écrire le serveur.
Enfin, un flow s'exporte en JSON, se versionne dans git et se réimporte ailleurs.
Installer
Trois options. Langflow Desktop, pour Windows et macOS, embarque toutes les dépendances. En Python, avec uv et Python 3.10 à 3.14 :
uv pip install langflow -U
export LANGFLOW_SUPERUSER_PASSWORD="un-mot-de-passe-solide"
uv run langflow runOu avec Docker :
read -rsp "Mot de passe administrateur Langflow : " LANGFLOW_SUPERUSER_PASSWORD; echo
export LANGFLOW_SUPERUSER_PASSWORD
docker run -p 127.0.0.1:7860:7860 -e LANGFLOW_SUPERUSER_PASSWORD langflowai/langflow:latestL'interface répond sur http://localhost:7860, avec l'utilisateur langflow. Pour les modèles, on peut brancher OpenAI, Anthropic ou Mistral, mais aussi Ollama pour faire tourner un modèle en local : tout le pipeline, embeddings compris, reste alors sur votre machine.
La sécurité, le vrai sujet
Le mot de passe obligatoire n'est pas un détail. Pendant longtemps, Langflow démarrait en « auto-login » : pas d'écran de connexion, accès direct. Les versions officielles l'ont désactivé par défaut, et le README demande désormais de définir un mot de passe avant le premier lancement.
Ce changement a une histoire. Au printemps 2025, une faille critique, la CVE-2025-3248, permettait à n'importe qui d'exécuter du code sur un serveur Langflow sans s'authentifier, via un point d'API de validation de code. Elle a été corrigée en version 1.3.0, mais des milliers d'instances exposées sur Internet n'avaient pas été mises à jour, et elle a été exploitée massivement, au point d'entrer dans le catalogue des vulnérabilités activement exploitées de l'agence américaine CISA.
Le fond du problème ne disparaît pas avec le correctif. Langflow est conçu pour exécuter du code Python arbitraire : c'est ce que fait l'éditeur de composants. Un compte sur votre instance équivaut à un accès au serveur. J'en tire trois règles :
- Jamais d'instance Langflow exposée directement sur Internet. Accès par VPN ou tunnel, ou derrière une authentification en amont.
- Mises à jour suivies de près : la 1.12.6 contient encore des correctifs de sécurité rétroportés.
- Des clés d'API de modèles dédiées à Langflow, avec un plafond de dépenses, puisqu'elles sont lisibles par quiconque contrôle l'instance.
Langflow, Dify ou n8n ?
Les trois outils se ressemblent sur une capture d'écran. Ils ne visent pas le même public.
| Outil | Pensé pour | Point fort |
|---|---|---|
| Langflow | Développeurs Python | Composants modifiables en code, flows exposés en API et MCP |
| Dify | Équipes produit | Applications prêtes à l'emploi, gestion des connaissances, journaux |
| n8n | Automatisation métier | Centaines d'intégrations, l'IA comme un nœud parmi d'autres |
Si vous voulez livrer une application de chat à une équipe non technique, Dify et ses applications LLM auto-hébergées va plus loin sur l'interface et la gestion des utilisateurs. Si l'IA n'est qu'une étape dans un processus, recevoir un email, le classer, créer un ticket, n8n et ses workflows open source est plus adapté. Langflow brille entre les deux : quand on veut comprendre et contrôler chaque étape du pipeline, sans renoncer au code.
Langflow est l'outil que j'aurais aimé avoir la première fois que j'ai monté un RAG à la main. Voir ce qui circule entre la recherche et le modèle règle la moitié des problèmes avant qu'ils deviennent des heures de débogage. Il faut seulement le traiter pour ce qu'il est : un environnement qui exécute du code, à installer derrière une porte fermée et à mettre à jour sans traîner.