Créer un agent de recherche personnalisé avec Langflow à l’aide de l’ADK watsonx Orchestrate et d’IBM Cloud

Face à l’évolution du paysage des agents d’IA, certaines entreprises se montrent réticentes à adopter massivement ces agents autonomes.1 Les difficultés rencontrées concernent notamment la gouvernance, l’éthique, la collaboration entre les humains et l’IA, le déploiement et l’évolutivité. La création d’agents d’IA dignes de confiance ne doit toutefois pas nécessairement être complexe. IBM watsonx Orchestrate permet de répondre à toutes ces préoccupations sur une seule et même plateforme. Dans ce tutoriel, vous apprendrez à utiliser Langflow et watsonx Orchestrate afin de créer des agents fiables, évolutifs et adaptés aux entreprises.

Qu’est-ce que Langflow ?

Langflow est un framework Python open source destiné à créer des agents d’IA et d’autres applications d’IA. À l’origine, Langflow a été créé à partir de son framework parent, LangChainLangGraph, une autre plateforme de la même famille, est également utilisé pour créer des systèmes agentiques reposant sur des architectures fondées sur des graphes. Langflow se distingue par son interface glisser-déposer facile à utiliser, dans laquelle les utilisateurs peuvent connecter les composants des agents afin de concevoir des workflows personnalisés ou partir de modèles prédéfinis. Comme alternative à cette approche low-code ou no-code, les développeurs peuvent créer des composants personnalisés et intégrer des flux d’agents détaillés dans le code d’applications existantes à l’aide de l’API Langflow. Dans ce tutoriel Langflow, nous allons découvrir comment créer et déployer des agents :

  1. en important des flux Langflow agentiques sous forme de serveurs MCP à l’aide d’IBM watsonx Orchestrate en tant que logiciel sous forme de service (SaaS), conjointement avec IBM Cloud ;
  2. en important localement des flux Langflow simples à l’aide de l’Agent Development Kit (ADK) d’IBM watsonx Orchestrate.

Chacune de ces approches fait l’objet d’une section de ce tutoriel. Notez que ce tutoriel est également accessible sur GitHub.

Commençons !

Prérequis

Ce tutoriel nécessite les éléments suivants :

  • La dernière version de Python.
  • Un compte IBM Cloud permettant de créer un ID de projet et une clé d’API watsonx.ai. Des offres de services Lite et Free sont disponibles.
    • Vous pouvez obtenir l’ID de votre projet depuis le projet lui-même. Cliquez sur l’onglet Manage (Gérer). Copiez ensuite l’ID du projet dans la section Details (Détails) de la page General (Général). Cet ID sera nécessaire pour la partie du tutoriel consacrée à l’ADK.
  • Un compte watsonx Orchestrate (qui peut être un compte d’essai). Si vous ne possédez pas encore de compte, cliquez ici pour vous inscrire à un essai gratuit de 30 jours. Consultez la documentation pour obtenir des instructions détaillées sur l’accès à la version d’essai dans IBM Cloud.
  • L’ADK IBM watsonx Orchestrate doit être installé. Suivez les instructions de la documentation officielle pour configurer et installer l’ADK.
    • Remarque : si vous aviez installé watsonx Orchestrate Developer Edition avant la version 2.0 de l’ADK, commencez par supprimer tous les conteneurs en exécutant orchestrate server reset avant d’effectuer la mise à niveau. watsonx Orchestrate Developer Edition ne dépend plus d’un moteur de conteneur externe. Si vous n’effectuez pas cette réinitialisation avant la mise à niveau, plusieurs installations de l’application risquent de consommer inutilement les ressources du système et de provoquer des conflits de ports.
  • La CLI IBM Cloud doit être installée. Les commandes d’installation pour macOS, Linux et Windows sont disponibles dans le guide de prise en main.

Sans ces prérequis, vous ne pourrez pas reproduire ce tutoriel.

Étapes : approche IBM Cloud

Étape 1. Configurer votre environnement IBM Cloud

Exécutez la commande suivante dans votre terminal. Vous serez invité à vous connecter à votre compte IBM Cloud à l’aide de votre IBMid. Si vous disposez de plusieurs comptes, vous devrez en sélectionner un.

ibmcloud login

Remarque : vos identifiants ont-ils été refusés ? Vous utilisez peut-être un compte fédéré. Reconnectez-vous à l’aide de l’option --sso afin d’utiliser un identifiant d’authentification unique d’entreprise. Pour plus d’informations sur la connexion à l’aide d’identifiants fédérés, consultez la documentation. En bref, lorsque vous y êtes invité, autorisez l’ouverture de l’URL dans votre navigateur par défaut, puis copiez le code à usage unique qui s’affiche dans votre terminal.

Une sortie semblable à celle de l’exemple vous indiquera que la connexion a réussi.

Sortie :

API endpoint: https://cloud.ibm.com
Region: us-south
User: your.email@email.com
Account: itz-watsonx-event-001 (f1zzz9a2e11b432ea5316227cb901888) <-> 3021952
Resource group: No resource group targeted, use ‘ibmcloud target -g RESOURCE_GROUP’

Remarque : si la région indiquée n’est pas correcte, exécutez ibmcloud target -r, suivi de la région appropriée. Par exemple, si votre point de terminaison de service régional est us-east, exécutez ibmcloud target -r us-east.

Pour afficher vos ressources Cloud, exécutez ibmcloud resource groups. Cette commande devrait récupérer vos groupes de ressources et produire une sortie semblable à celle de l’exemple (les noms et les ID de vos ressources seront différents).

Sortie :

Retrieving all resource groups under account f1zzz9a2e11b432ea5316227cb901888 as your.email@email.com...
OK
Name ID Default Group State
watsonx 93018fa55c342de104afb8jje20c222c false ACTIVE
itz-wxo-69305f32086a49ee3736ff 48bbeb07ec5a4994b2fd39beb6027090 false ACTIVE

Ciblez ensuite la ressource concernée en exécutant ibmcloud target -g RESOURCE_GROUP. Dans cet exemple, la commande serait ibmcloud target -g itz-wxo-69305f32086a49ee3736ff.

Le résultat doit ressembler à cette sortie.

Sortie :

Targeted resource group itz-wxo-69305f32086a49ee3736ff
API endpoint: https://cloud.ibm.com
Region: us-south
User: your.email@email.com
Account: itz-watsonx-event-001 (f1zzz9a2e11b432ea5316227cb901888) <-> 3021952
Resource group: itz-wxo-69305f32086a49ee3736ff

Étape 2. Installer l’interface de ligne de commande IBM Cloud Code Engine

IBM Cloud Code Engine permet d’exécuter pratiquement n’importe quelle workload conteneurisée sans avoir à gérer de serveurs ni d’infrastructure. La plateforme prend en charge aussi bien les microservices et les applications web que les traitements par lots et les fonctions déclenchées par des événements. Elle propose également une fonctionnalité intégrée de création d’images à partir du code source. Toutes les workloads partageant le même environnement Kubernetes, elles s’intègrent naturellement les unes aux autres. Code Engine est conçu pour vous libérer des contraintes liées à l’infrastructure afin que vous puissiez vous concentrer sur la création d’applications. L’étape suivante consiste à installer l’interface de ligne de commande Code Engine. Exécutez la commande suivante dans votre terminal.

ibmcloud plugin install code-engine -f

Sortie :

Looking up ‘code-engine’ from repository ‘IBM Cloud’...
Plug-in ‘code-engine[ce] 1.57.0’ found in repository ‘IBM Cloud’
Attempting to download the binary file...
74.08 MiB / 74.08 MiB [============================================] 100.00% 1s
77680050 bytes downloaded
Installing binary...
OK
Plug-in ‘code-engine 1.57.0’ was successfully installed into /your/path/to/code-engine. Use ‘ibmcloud plugin show code-engine’ to show its details.

Parfait ! Ciblons maintenant un projet dans Code Engine. Commencez par afficher la liste des projets en exécutant ibmcloud ce project list.

Sortie :

Getting projects...
OK

Name ID Status Enabled Selected Tags Region Resource Group Age
ce-itz-wxo-69305f32086a49ee3736ff 8991a30c-944f-422d-9e00-00789043e90e active true false us-south itz-wxo-69305f32086a49ee3736ff 7m32s

Un projet Code Engine regroupe des entités telles que les applications, les travaux et les générations. Il sert d’unité de gestion des ressources et de contrôle des accès à ces entités. Si vous ne disposez d’aucun projet Code Engine actif, exécutez ibmcloud ce project create --name PROJECT_NAME et remplacez CE_PROJECT_NAME par le nom de projet de votre choix (par exemple « code-engine-project »).

Pour cibler le projet concerné, exécutez ibmcloud ce project select --name CE_PROJECT_NAME. Dans cet exemple, la commande serait ibmcloud ce project select --name ce-itz-wxo-69305f32086a49ee3736ff.

Sortie :

Selecting project ‘ce-itz-wxo-69305f32086a49ee3736ff’...
OK

Remarque : si une erreur se produit à cette étape, vérifiez que vous avez ciblé l’environnement approprié à l’aide de ibmcloud target -c ACCOUNT_ID -r REGION_NAME -g RESOURCE_GROUP_NAME.

Étape 3. Configurer Langflow à l’aide de l’interface de ligne de commande Code Engine

Pour utiliser Langflow conjointement avec l’interface de ligne de commande Code Engine, exécutez la commande suivante.

ibmcloud ce app create \
--name langflow \
--image langflowai/langflow:latest \
--port 7860

L’exécution de cette commande peut prendre plusieurs minutes. N’intervenez pas et laissez-la s’exécuter.

Sortie :

Creating application ‘langflow’...
Configuration ‘langflow’ is waiting for a Revision to become ready.
Ingress has not yet been reconciled.
Waiting for load balancer to be ready.
Run ‘ibmcloud ce application get -n langflow’ to check the application status.
OK

https://langflow.23h82g3y09cp.us-south.codeengine.appdomain.cloud

Étape 4. Connecter wxO et activer Langflow

Pendant l’exécution de la commande de configuration de Langflow, nous pouvons ajouter un environnement afin d’établir une interface entre notre machine locale et notre solution SaaS hébergée.

Dans une nouvelle fenêtre de terminal, activez un environnement virtuel dans le répertoire de votre choix. Vous pouvez remplacer my-env par le nom d’environnement de votre choix.

python -m venv my-env

Activez l’environnement virtuel à l’aide de la commande suivante et remplacez my-env par le nom de votre environnement si vous en avez utilisé un autre :

macOS/Linux :

source my-env/bin/activate

Windows :

my-env\Scripts\activate

Dans votre navigateur, accédez à la liste de vos ressources IBM Cloud, développez la liste déroulante AI/Machine Learning, puis sélectionnez la ressource wxO active. Son nom doit ressembler, par exemple, à « Watson Orchestrate-itz ». Copiez ensuite l’URL indiquée dans la fenêtre Credentials (Identifiants). Gardez cette page ouverte dans votre navigateur, car vous en aurez de nouveau besoin dans quelques instants. Dans la commande suivante, remplacez YOUR_WXO_RESOURCE_URL par l’URL récupérée, puis exécutez la commande dans l’environnement virtuel activé de votre terminal.

orchestrate env add \
-n langflow \
-u YOUR_WXO_RESOURCE_URL \
--type ibm_iam \
--activate

Sortie :

[INFO] - Environment ‘langflow’ has been created
Please enter WXO API key:

Lorsque vous êtes invité à saisir la clé d’API wxO, revenez à la page de la ressource ouverte dans votre navigateur. Ne saisissez pas la clé d’API située au-dessus de l’URL que vous avez copiée. Cliquez plutôt sur le bouton Launch watsonx Orchestrate (Lancer watsonx Orchestrate). Cliquez ensuite sur l’icône circulaire comportant vos initiales en haut à droite de l’écran et ouvrez les Settings (Paramètres). Sélectionnez l’onglet API details (Détails de l’API) et cliquez sur le bouton Generate API key (Générer une clé d’API). Saisissez ensuite le nom et la description de votre choix pour la clé d’API, puis sélectionnez « Disable the leaked key » (Désactiver la clé exposée) dans la section « Leaked action » (Action en cas de fuite). Surtout, sélectionnez « Yes » (Oui) dans la section « Session management » (Gestion des sessions) afin d’activer la gestion des sessions pour les connexions effectuées depuis l’interface de ligne de commande, puis cliquez sur « Create » (Créer). Votre clé d’API devrait s’afficher. Copiez-la et collez-la dans le terminal que vous utilisiez précédemment afin de répondre à l’invite demandant la clé d’API wxO.

Sortie :

[INFO] - Environment ‘langflow’ is now active

Parfait ! Langflow est maintenant actif.

Étape 5. Configurer vos ressources Code Engine

Afin de créer un environnement Code Engine stable qui ne supprime pas notre application Langflow après un délai fixe, ouvrez de nouveau votre navigateur. Accédez à la vue d’ensemble de vos conteneurs IBM Cloud. Le projet Code Engine que vous venez de créer devrait s’afficher. Ouvrez le projet. Ouvrez ensuite votre application Langflow. Dans l’onglet Configuration, ouvrez le composant Resources and scaling (Ressources et mise à l’échelle). La seule modification à effectuer consiste à faire passer le nombre minimal d’instances de 0 à 1. Cliquez ensuite sur le bouton Deploy (Déployer) afin d’appliquer cette révision de la configuration.

Une fois cette étape terminée, cliquez sur le bouton Test application (Tester l’application), puis sur le lien hypertexte Application URL (URL de l’application). Notre instance Langflow dans IBM Cloud s’ouvre.

Personnalisation des configurations Code Engine

Étape 6. Créer votre flux

Il existe de nombreuses façons de créer un flux Langflow. Vous pouvez utiliser des modèles prédéfinis ou en créer un intégralement. Dans ce tutoriel, nous allons choisir la deuxième solution. Pour commencer, cliquez sur + Blank Flow (Flux vierge). Cet exemple présente un flux que vous pouvez créer, mais n’hésitez pas à explorer les nombreux composants et les nombreuses intégrations disponibles dans Langflow.

  1. Ajoutez les nœuds de composants intégrés suivants depuis le menu :
  • Chat Input : reçoit l’entrée de l’utilisateur dans le chat.

  • Chat Output : renvoie la sortie du flux à l’utilisateur dans le chat.

  • Agent : utilise une intégration à un grand modèle de langage (LLM) pour répondre aux entrées de l’utilisateur et peut être connecté à plusieurs outils.2

  • MCP Tools : se connecte à un serveur Model Context Protocol (MCP) et présente les fonctions de ce serveur sous forme d’outils que les agents peuvent utiliser pour répondre aux entrées.2

  • IBM watsonx.ai : donne accès aux modèles IBM watsonx.ai pour la génération de texte.3

  • News Search : récupère du contenu dans Google Actualités et produit un DataFrame structuré contenant le titre, le lien, la date de publication et le résumé de chaque article.4

  • arXiv : recherche des articles pertinents sur arXiv.org et renvoie les résultats sous forme de DataFrame.5

    Enfin, sélectionnez + New Custom Component (Nouveau composant personnalisé) en bas du menu.

    Pour faciliter la visualisation, organisez votre flux de la manière suivante.

Capture d’écran du flux Langflow final

2.    Connectez le composant Chat Input (Entrée de chat) au champ « Input » (Entrée) du composant Agent.

3.    Connectez le composant Chat Output (Sortie de chat) au champ « Response » (Réponse) du composant Agent.

4.    Dans le composant Agent, sélectionnez « Custom » (Personnalisé) dans la liste déroulante « Model Provider » (Fournisseur de modèles). Selon la version de Langflow que vous utilisez, l’option « Connect other models » (Connecter d’autres modèles) peut s’afficher à la place. Ces deux options conviennent.

5. Dans le composant IBM watsonx.ai, sélectionnez le point de terminaison d’API watsonx.ai correspondant à vos identifiants d’API. Collez ensuite l’ID de votre projet watsonx.ai et votre clé d’API dans les champs appropriés. Sélectionnez ensuite le grand modèle de langage de votre choix. Dans ce tutoriel, nous pouvons sélectionner openai/gpt-oss-120b. Vérifiez que le composant est configuré sur « Language Model » (Modèle de langage) et non sur « Model Response » (Réponse du modèle). Ce paramètre est important, car nous souhaitons utiliser ce modèle comme modèle de langage pour notre agent. Nous pouvons donc maintenant connecter le composant IBM watsonx.ai au champ « Language Model » (Modèle de langage) du composant Agent

  • Remarque : si vous préférez utiliser des variables globales plutôt que de coller directement vos identifiants d’API, cliquez sur l’icône de votre profil dans le coin supérieur droit de l’écran, puis sélectionnez Settings (Paramètres). Dans la section Global Variables (Variables globales), ajoutez les valeurs WATSONX_PROJECT_ID et WATSONX_APIKEY de votre connexion watsonx.ai, générées parmi les prérequis de ce tutoriel. Lorsque vous reviendrez dans votre flux, une icône en forme de globe devrait s’afficher dans les champs de texte « watsonx.ai Project ID » (ID de projet watsonx.ai) et « API key » (Clé d’API). Cliquez sur l’icône, puis sélectionnez la clé appropriée dans la liste déroulante.

6.    Activez Tools Mode (Mode Outils) à l’aide du bouton bascule des composants arXiv, News Search (Recherche dans les actualités) et Custom Component (Composant personnalisé). Ce bouton s’affiche dans le menu d’en-tête lorsque vous cliquez n’importe où dans chacun de ces composants. Une fois ce mode activé, vous pouvez connecter ces composants au champ « Tools » (Outils) du composant Agent. Les composants arXiv et News Search (Recherche dans les actualités) sont configurés et prêts à être utilisés. Nous pouvons maintenant nous concentrer sur la configuration des autres composants.

7.    Dans le menu d’en-tête du Custom Component (Composant personnalisé), sélectionnez <> Code. Vous pouvez alors personnaliser le comportement du composant en modifiant le code Python qui le définit.6 À titre d’exemple simple, nous pouvons créer un outil qui renvoie la date du jour, une information à laquelle un LLM n’aurait autrement pas accès. Remplacez le code standard par le code suivant :

from langflow.custom.custom_component.component import Component
from langflow.io import MessageTextInput, Output
from langflow.schema.data import Data
from datetime import date

class CustomComponent(Component):
    display_name = “Date”
    description = “Returns today’s date.”
    documentation: str = “https://docs.langflow.org/components-custom-components”
    icon = “calendar-check”
    name = “CustomDateComponent”

    inputs = [] # No input needed

    outputs = [
        Output(display_name=”Today’s Date”, name=”output”, method=”build_output”),
    ]

def build_output(self) -> Data:
    today = date.today()
    data = Data(value=today)
    self.status = data
    return data

Enregistrez vos modifications. Le composant devrait maintenant afficher son nouveau nom, sa nouvelle description et sa nouvelle icône.

8.    Vous pouvez fournir autant d’outils que vous le souhaitez à votre agent. Veillez toutefois à ne pas le surcharger avec un nombre excessif d’outils, car cela pourrait nuire à ses performances et à son exactitude. Le dernier outil que nous allons activer est un serveur MCP. Vous pouvez vous connecter au serveur de votre choix. Dans ce tutoriel, nous pouvons nous connecter au serveur MCP Alpha Vantage.7 Le serveur MCP Alpha Vantage officiel permet aux LLM et aux agents de récupérer facilement des données boursières en temps réel et historiques à l’aide du Model Context Protocol. Pour vous connecter à ce serveur, ouvrez la liste déroulante « MCP Server » (Serveur MCP) dans votre composant MCP Tools (Outils MCP), puis cliquez sur + Add MCP Server (Ajouter un serveur MCP). Dans l’onglet STDIO, attribuez le nom de votre choix au serveur, par exemple « av_mcp », puis collez la commande suivante : uvx av-mcp YOUR_API_KEY. Pour générer gratuitement une clé d’API Alpha Vantage, accédez au site web officiel d’Alpha Vantage, puis collez la clé dans la commande à la place de l’espace réservé YOUR_API_KEY. Une fois le serveur ajouté, activez le bouton Tools Mode (Mode Outils) dans le menu d’en-tête du nœud de composant. Une longue liste d’outils apparaît alors sous forme d’« Actions ». Ce résultat indique que la connexion au serveur MCP a réussi. Vous pouvez maintenant connecter ce dernier composant au champ « Tools » (Outils) du composant Agent.

Ajout du serveur MCP Alpha Vantage

Bravo ! Votre flux est terminé et doit ressembler à la capture d’écran suivante.

Capture d’écran du flux Langflow final

Pour vérifier que le pipeline de recherche fonctionne comme prévu, ouvrez le Playground (Environnement de test) et discutez avec l’agent que vous venez de créer ! Posez à l’agent des questions nécessitant l’invocation de l’un des outils connectés. Voici quelques exemples d’entrées :

  • Simple :
    • « Quelle est la date d’aujourd’hui ? »
    • « Trouve-moi 5 articles de recherche sur l’informatique quantique. »
  • Intermédiaire :
    • « Analyse le cours de l’action IBM au cours des 30 derniers jours. »
  • Complexe :
    • « Des actualités récentes indiquent-elles que l’action IBM suit une tendance haussière ou baissière ? »

L’agent doit invoquer les outils disponibles et produire le résultat approprié. Si vous rencontrez des problèmes à cette étape, revenez à votre flux et vérifiez que vos identifiants sont corrects et que vous avez bien suivi chacune des étapes.

Étape 7. Importer votre flux dans wxO sous forme de serveur MCP

L’une des méthodes permettant de connecter ce flux à watsonx Orchestrate consiste à l’utiliser comme serveur MCP. Cliquez sur la liste déroulante Share (Partager) dans le coin supérieur droit, puis sélectionnez « MCP Server » (Serveur MCP). Ouvrez l’onglet « JSON ». Un code semblable à l’exemple suivant devrait s’afficher :

{
    “mcpServers”: {
    “lf-starter_project”: {
    “command”: “uvx”,
    “args”: [
        “mcp-proxy”,
        “https://langflow.23h82g3y09cp.us-south.codeengine.appdomain.cloud/api/v1/mcp/project/b797fbc9-cd21-46e9-bc23-8fa813f94810/sse”
            ]
        }    
    }    
}

Copiez l’URL contenue dans votre fragment JSON. Elle sera différente de celle de l’exemple précédent. Retournez dans votre terminal et collez l’URL de votre serveur MCP à la place de l’espace réservé MCP_SERVER_URL. L’exécution de la commande suivante dans l’interface de ligne de commande watsonx Orchestrate permet d’importer ce serveur MCP dans la plateforme sous forme d’ensemble d’outils.

orchestrate toolkits add \
--kind mcp \
--name langflow_mcp \
--description “LangFlow MCP Server” \
--command “uvx mcp-proxy MCP_SERVER_URL” \
--tools “*”

Sortie :

[INFO] - Successfully imported tool kit langflow_mcp

Étape 8 : créer un agent et tester les appels d’outils

Dans votre navigateur, accédez à watsonx Orchestrate et créez intégralement un agent. Saisissez le nom et la description de votre choix. Une fois l’agent créé, ouvrez l’onglet Toolset (Ensemble d’outils), puis cliquez sur le bouton Add tool (Ajouter un outil). Sélectionnez l’option permettant d’importer des outils depuis un serveur MCP. Dans la liste déroulante Select MCP server (Sélectionner un serveur MCP), sélectionnez le serveur que nous avons importé, activez les outils à l’aide du bouton bascule correspondant, puis fermez la fenêtre. Cliquez ensuite sur Déployer. Une fois l’agent déployé, vous pouvez discuter avec lui depuis la fenêtre de chat d’aperçu ou depuis l’interface de chat accessible dans le menu latéral réduit.

Interrogeons notre agent ! Saisissez par exemple : « Trouve-moi 5 articles de recherche sur l’informatique quantique. »

Résultat d’une requête portant sur des articles de recherche

Formidable ! Le chatbot agentique se comporte comme prévu : non seulement il produit la réponse correcte, mais il invoque également l’outil arXiv approprié. N’hésitez pas à expérimenter avec différents prompts.

Étapes : approche ADK en local

Cette approche ne nécessite pas Code Engine. Elle permet de configurer un environnement de développement local à l’aide du SDK watsonx Orchestrate Developer Edition, une version légère de watsonx Orchestrate qui fonctionne comme un serveur de développement local.

Prérequis

  • Caractéristiques de la machine :
    • 16 Go de RAM
    • 8 cœurs
    • 25 Go d’espace disque

Étape 1. Installer le SDK wxO Developer Edition

Avant de commencer à créer localement avec Langflow, installez la version Developer Edition de l’ADK wxO. Notez que cette version Developer Edition n’était pas nécessaire pour la première approche présentée dans ce tutoriel.

  1. Dans l’IDE de votre choix, configurez votre environnement. Créez un dossier nommé wxo-langflow-agent pour stocker tous les agents et tous les outils. Vous pouvez consulter ce projet sur GitHub à titre de référence. La structure du dossier doit être la suivante :

    wxo-langflow-agent/
    ├── .env
    ├── tools/
    └── agents/
    

2. Ouvrez le terminal et activez un environnement virtuel. Vous pouvez remplacer my-env par le nom d’environnement de votre choix.

python -m venv my-env

Activez l’environnement virtuel à l’aide de la commande suivante et remplacez my-env par le nom de votre environnement si vous en avez utilisé un autre :

macOS/Linux :

source my-env/bin/activate

Windows :

my-env\Scripts\activate

3. Dans le fichier .env, définissez les variables d’environnement suivantes. Pour plus d’informations, consultez le guide de configuration.

WO_DEVELOPER_EDITION_SOURCE=orchestrate
WO_INSTANCE=<service_instance_url>
WO_API_KEY=<wxo_api_key>

4. Exécutez la commande suivante pour installer le serveur watsonx Orchestrate Developer Edition. Il n’est pas nécessaire d’installer Langflow, car il est inclus dans l’ADK Developer Edition. L’option de commande --with-langflow active la prise en charge de Langflow en extrayant les images de conteneur nécessaires et en effectuant la configuration initiale permettant d’accéder à Langflow localement.

orchestrate server start -e <path-.env-file> --with-langflow

La première activation d’un serveur à l’aide de cette commande peut prendre plusieurs minutes.

Dépannage : si vous aviez installé watsonx Orchestrate Developer Edition avant la version 2.0 de l’ADK et que vous rencontrez des erreurs lors du démarrage des conteneurs, exécutez la commande suivante :

orchestrate server reset
orchestrate server purge
pip install --upgrade ibm-watsonx-orchestrate

La fin de la sortie doit ressembler à l’exemple suivant.

Sortie :

[INFO] - Migration ran successfully.
[INFO] - Waiting for orchestrate server to be fully initialized and ready...
[INFO] - Orchestrate services initialized successfully
[INFO] - no local tenant found. A default tenant is created
[INFO] - You can run `orchestrate env activate local` to set your environment or `orchestrate chat start` to start the UI service and begin chatting.
[INFO] - Langflow has been enabled, the Langflow UI is available at http://localhost:7861

Étape 2. Activer l’interface de chat wxO locale

  1. L’ADK watsonx Orchestrate définit les environnements comme les instances watsonx Orchestrate auxquelles vous pouvez vous connecter. Votre environnement sera une instance Developer Edition exécutée sur votre ordinateur portable. Vous pouvez utiliser la commande orchestrate env list afin de répertorier tous les environnements actuellement accessibles à votre interface de ligne de commande. Par défaut, vous disposez d’un environnement local. Vous pouvez exécuter la commande suivante afin d’activer l’environnement local.

    orchestrate env activate local
    

    Sortie :

    [INFO] - local tenant found
     [INFO] - Environment 'local' is now active
    
  2. Exécutez ensuite la commande suivante afin d’ouvrir l’interface de chat dans votre navigateur par défaut.

    orchestrate chat start
    

    Sortie :

    [INFO] - Chat UI Service started successfully.
    [INFO] - Waiting for UI component to be initialized...
     [INFO] - Opening chat interface at http://localhost:3000/chat-lite
    

Étape 3. Créer un flux Langflow

Comme l’indique la sortie précédente, l’éditeur Langflow est accessible par l’intermédiaire de watsonx Orchestrate Developer Edition sur le port 7861.

  1. Dans votre navigateur web, accédez à http://localhost:7861.
  2. Créez votre flux. Vous pouvez réutiliser le flux créé dans la première partie du tutoriel ou en créer un nouveau. Il pourra être utile, plus tard dans ce tutoriel, d’attribuer à votre flux un nom et une description personnalisés plutôt que de conserver les valeurs par défaut. Pour cela, placez le pointeur sur le nom du flux en haut de l’écran, puis cliquez sur l’icône en forme de crayon.
  • Exemple de nom de flux : Agent de recherche
  • Exemple de description du flux : accès à la recherche d’actualités, à arXiv, à la date du jour et à l’API Alpha Vantage.

Étape 4. Importer le flux dans wxO

Nous allons examiner deux méthodes permettant d’importer des flux Langflow dans notre serveur watsonx Orchestrate local :

a) Importer le flux sous forme de serveur MCP local.

b) Importer le flux au format JSON.

Option 1 : importer le flux sous forme de serveur MCP local

Cette étape ressemble à l’étape 7 de la première partie du tutoriel, à quelques différences mineures près. 

  1. Cliquez sur la liste déroulante Share (Partager) dans le coin supérieur droit de Langflow, puis sélectionnez « MCP Server » (Serveur MCP). Ouvrez l’onglet « JSON ». Un code semblable à l’exemple suivant devrait s’afficher :

    {
        "mcpServers": {
            "lf-starter_project": {
            "command": "uvx",
            "args": [
                "mcp-proxy",
                "http://localhost:7861/api/v1/mcp/project/41c9434f-67bf-439e-8dac-b7bb09b1d1ca/sse"
                ]
            }
        }
    }
    
  2. Copiez l’URL contenue dans votre fragment JSON. Elle sera différente de celle de l’exemple précédent. Retournez dans votre terminal et collez la commande suivante en remplaçant l’URL de l’exemple par la vôtre. Contrairement à la commande exécutée avec IBM Cloud, vous devez ici remplacer localhost par host.docker.internal. Voici un exemple :

    orchestrate toolkits add \
        --kind mcp \
        --name langflow_research_mcp \
        --description "LangFlow MCP Server" \
        --command "uvx mcp-proxy http://host.docker.internal:7861/api/v1/mcp/project/41c9434f-67bf-439e-8dac-b7bb09b1d1ca/sse" \
        --tools "*"
    

    Sortie :

    [INFO] - Successfully imported tool kit langflow_research_mcp
    
  3. Dans l’instance locale de watsonx Orchestrate ouverte dans votre navigateur, cliquez sur « Create new agent » (Créer un agent), puis saisissez un nom et une description pour votre nouvel agent. Cliquez ensuite sur le bouton Create (Créer).

Capture d’écran de watsonx Orchestrate exécutant la création locale d’un agent

4.    Dans l’onglet Toolset (Ensemble d’outils), cliquez sur le bouton Add tool (Ajouter un outil). Sélectionnez « local instance » (instance locale) afin d’ajouter le serveur MCP déjà importé, cochez la case correspondant à ce serveur, puis cliquez sur Add to agent (Ajouter à l’agent).

Capture d’écran montrant comment ajouter un serveur MCP sous forme d’outil

5.    Commencez à discuter !

Chat avec un agent utilisant un serveur MCP sous forme d’outil

Option 2 : importer le flux au format JSON

Au lieu d’importer les flux sous forme de serveurs MCP, nous pouvons utiliser l’ADK pour importer des flux à partir de fichiers JSON exportés.

1. Cette approche convient davantage aux flux simples. À des fins de démonstration, utilisons le flux suivant :

Outil arXiv dans Langflow

Exportez le flux au format JSON en cliquant sur le bouton Share (Partager), puis en sélectionnant Export (Exporter). Saisissez le nom et la description de votre choix pour l’outil ou le flux. Le nom de l’outil doit contenir uniquement des caractères alphanumériques et des traits de soulignement. Il ne doit pas commencer par un chiffre ni par un trait de soulignement.

2. Ajoutez le fichier JSON que vous venez d’exporter au dossier tools

3. Exécutez la commande suivante pour importer votre flux dans watsonx Orchestrate.

orchestrate tools import -k langflow -f tools/arxiv.json

4. Après avoir importé le flux Langflow sous forme d’outil, l’étape suivante consiste à le connecter à un système d’agents. Pour ce faire, vous pouvez créer un agent dans l’interface utilisateur de watsonx Orchestrate ou copier la définition d’agent suivante dans un nouveau fichier arxiv_agent.yml du dossier agents.

kind: native
name: arxiv_agent
display_name: ArXiv Agent
description: Access to arXiv tool.
context_access_enabled: true
context_variables: []
llm: watsonx/ibm/granite-4-h-small
style: default
instructions: ‘’
guidelines: []
collaborators: []
tools:
- arxiv
knowledge_base: []
spec_version: v1

Importez ensuite l’agent simple en exécutant la commande suivante :

orchestrate agents import -f agents/arxiv_agent.yml

5. Actualisez la page de l’interface de chat watsonx Orchestrate exécutée localement afin d’afficher les modifications. Dans la liste déroulante Agents, sélectionnez « ArXiv Agent », puis posez des questions nécessitant l’utilisation de l’outil arXiv !

Exemple de prompt : « Trouve-moi 5 articles de recherche sur l’informatique quantique. »

Sortie :

Conversation avec l’agent arXiv local

Parfait ! L’agent a déterminé qu’il devait invoquer l’outil arxiv pour répondre à cette requête utilisateur. La sortie de l’outil est affichée dans le flux de raisonnement réduit ainsi que dans la fenêtre de chat sous forme de réponse.

Conclusion

Ce tutoriel vous a permis d’acquérir les compétences essentielles nécessaires pour utiliser Langflow et watsonx Orchestrate afin de créer des agents robustes, évolutifs et adaptés aux entreprises. Vous avez appris à importer des flux Langflow agentiques sous forme de serveurs MCP en utilisant watsonx Orchestrate comme logiciel sous forme de service (SaaS), conjointement avec IBM Cloud. Vous savez également comment importer des flux Langflow simples lorsque vous utilisez localement l’Agent Development Kit (ADK) d’IBM watsonx Orchestrate. En suivant les instructions détaillées, vous avez appris à concevoir, développer et déployer des agents qui invoquent des outils personnalisés ou prédéfinis afin de répondre aux requêtes des utilisateurs. Grâce à l’interface visuelle intuitive de Langflow, vous avez créé des workflows complexes, tandis que watsonx Orchestrate vous a permis de gérer ces agents et de les faire évoluer efficacement. Pour poursuivre, appliquez les connaissances acquises dans ce tutoriel à un cas d’utilisation réel. Choisissez un problème ou un processus métier précis susceptible de bénéficier de l’automatisation dans votre entreprise, puis concevez une solution fondée sur Langflow et watsonx Orchestrate afin d’y répondre. Cette expérience pratique consolidera vos connaissances et vous aidera à identifier les aspects à améliorer ou à approfondir.

Si vous rencontrez des difficultés ou avez des questions, consultez la documentation. La plupart des problèmes courants sont abordés dans le guide de dépannage. Vous pouvez également consulter les problèmes signalés sur GitHub afin de déterminer si d’autres personnes ont rencontré des difficultés similaires.

Auteur

Anna Gutowska

AI Engineer, Developer Advocate

IBM

Solutions connexes
Développement des agents IA IBM 

Donnez aux développeurs les moyens de créer, de déployer et de surveiller des agents d’IA avec le studio IBM watsonx.ai.

Découvrir watsonx.ai
Solutions d’intelligence artificielle

Mettez l’IA au service de votre entreprise en vous appuyant sur l’expertise de pointe d’IBM dans le domaine de l’IA et sur son portefeuille de solutions.

Découvrir les solutions d’IA
Conseils et services en matière d’IA

Réinventez les workflows et les opérations critiques en ajoutant l’IA pour optimiser les expériences, la prise de décision et la valeur métier en temps réel.

Découvrir les services d’IA
Passez à l’étape suivante

Que vous choisissiez de personnaliser des applications et des compétences prédéfinies ou de créer et de déployer des services agentiques personnalisés à l’aide d’un studio d’IA, la plateforme IBM watsonx est là pour vous.

  1. Explorez watsonx Orchestrate
  2. Découvrir watsonx.ai
Notes de bas de page

1 Satyadhar Joshi. « Review of Autonomous Systems and Collaborative AI Agent Frameworks. » International Journal of Science and Research Archive, vol. 14, n° 2, 28 février 2025, pp. 961–972, https://ijsra.net/content/review-autonomous-systems-and-collaborative-ai-agent-frameworks.

2 « Agents | Langflow Documentation. » Langflow.org, 2025, docs.langflow.org/components-agents.

3 « IBM | Langflow Documentation. » Langflow.org, 2025, docs.langflow.org/bundles-ibm.

4 « Data | Langflow Documentation. » Langflow.org, 2025, docs.langflow.org/components-data.

5 « ArXiv | Langflow Documentation. » Langflow.org, 2025, docs.langflow.org/bundles-arxiv.

6 « Components Overview | Langflow Documentation. » Langflow.org, 2025, docs.langflow.org/concepts-components.

7 « Alpha Vantage MCP for Stock Market Data. » Alphavantage.co, 2025, mcp.alphavantage.co/.