Crea un agente di ricerca personalizzato con Langflow usando watsonx Orchestrate ADK e IBM Cloud

Con l'evoluzione dell'ecosistema degli agenti AI, alcune aziende segnalano esitazioni riguardo all'adozione su larga scala di questi agenti autonomi.1 Tra le principali sfide figurano governance, aspetti etici, collaborazione tra esseri umani e AI, nonché distribuzione e scalabilità. Tuttavia, creare agenti AI affidabili non deve essere complicato. Con IBM watsonx Orchestrate, queste preoccupazioni possono essere affrontate in un'unica piattaforma. In questo tutorial imparerai a utilizzare Langflow e watsonx Orchestrate per creare agenti AI affidabili, scalabili e pronti per l'uso in ambito aziendale.

Cos'è Langflow?

Langflow è un framework open source basato su Python per la creazione di agenti AI e altre applicazioni di AI. Langflow è stato originariamente costruito su LangChain, il suo framework di riferimento. Anche LangGraph, un'altra piattaforma della stessa famiglia, viene utilizzata per sviluppare sistemi agentici basati su architetture a grafo. Ciò che distingue Langflow è la sua interfaccia intuitiva drag and drop, con cui gli utenti possono collegare i componenti degli agenti AI per progettare workflow personalizzati oppure iniziare da modelli predefiniti. In alternativa a questo approccio low-code o no-code, gli sviluppatori possono creare componenti personalizzati e integrare flussi di agenti, definiti passo dopo passo, nel codice delle applicazioni esistenti utilizzando l'API Langflow. In questo tutorial su Langflow, esploriamo come costruire e distribuire agenti nei seguenti modi:

  1. Importando i flussi agentici di Langflow come server MCP utilizzando IBM watsonx Orchestrate come Software as a Service (SaaS) insieme a IBM Cloud.
  2. Importando flussi di base di Langflow utilizzando localmente l'IBM watsonx Orchestrate Agent Development Kit (ADK).

Entrambi gli approcci corrispondono a una sezione di questo tutorial. Nota: puoi accedere a questo tutorial anche su GitHub.

Iniziamo!

Prerequisiti

Questo tutorial richiede:

  • L'ultima versione di Python installata.
  • Un account IBM Cloud per creare un'istanza watsonx.ai ID del progetto e chiave API. Sono disponibili i piani di servizio Lite e Free.
    • Puoi ottenere l'ID del progetto direttamente dal progetto. Clicca sulla scheda Gestisci. Quindi, copia l'ID del progetto dalla sezione Dettagli della pagina Generale. Questo ID è necessario per la parte dell'esercitazione dedicata all'ADK.
  • Un account watsonx Orchestrate (può essere un account di prova). Se non disponi già di un account, fai clic qui per avviare una prova gratuita di 30 giorni. Consulta la documentazione per istruzioni dettagliate su come ottenere l'accesso di prova su IBM Cloud.
  • L'IBM watsonx Orchestrate ADK installato. Segui la documentazione ufficiale qui per configurare e installare l'ADK.
    • Nota: se hai installato una versione di watsonx Orchestrate Developer Edition precedente alla versione 2.0 dell'ADK, prima di eseguire l'upgrade rimuovi tutti i container eseguendo orchestrate server reset . watsonx Orchestrate Developer Edition non dipende più da un motore di container esterno. Il mancato ripristino prima dell'upgrade potrebbe generare più installazioni dell'applicazione che consumano inutilmente risorse di sistema e causano conflitti sulle porte.
  • L'IBM Cloud CLI installata. I comandi di installazione per macOS, Linux e Windows sono disponibili nella guida introduttiva.

Attenzione: senza questi prerequisiti, non sarà possibile riprodurre questo tutorial.

Passaggi: approccio IBM Cloud

Passaggio 1. Configura il tuo ambiente IBM Cloud

Nel terminale, esegui il seguente comando. Ti verrà chiesto di accedere al tuo account IBM Cloud utilizzando il tuo IBMid. Se possiedi più account, dovrai selezionarne uno.

ibmcloud login

Nota: credenziali rifiutate? Potresti essere un utente federato. Accedi di nuovo utilizzando il flag --sso per usare un ID single sign-on aziendale o enterprise. Per maggiori informazioni sull'accesso con ID federati, consulta la documentazione. In breve, quando richiesto, consenti l'apertura dell'URL nel browser predefinito e incolla nel terminale il codice monouso visualizzato.

Saprai che l'accesso è andato a buon fine quando verrà visualizzato un output simile al seguente.

Output

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’

Nota: se noti che la regione non è corretta, esegui ibmcloud target -r seguito dalla regione corretta. Ad esempio, se il tuo endpoint del servizio regionale è us-east , esegui ibmcloud target -r us-east .

Per vedere le tue risorse Cloud, esegui ibmcloud resource groups . Questo comando dovrebbe recuperare i gruppi di risorse e produrre un output simile (i nomi e gli ID delle tue risorse saranno diversi).

Output

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

Successivamente, seleziona la risorsa specifica eseguendo ibmcloud target -g RESOURCE_GROUP . In questo esempio, il comando sarebbe ibmcloud target -g itz-wxo-69305f32086a49ee3736ff .

Il risultato dovrebbe essere simile al seguente output.

Output

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

Passaggio 2. Installa la CLI di IBM Cloud Code Engine

Con IBM Cloud Code Engine, puoi eseguire praticamente qualsiasi workload basato su container senza dover gestire server o infrastrutture. La piattaforma supporta tutto, dai microservizi e dalle applicazioni web, fino ai processi batch e le funzioni basate su eventi. Offre inoltre la creazione integrata delle immagini a partire dal codice sorgente. Poiché tutti i workload condividono lo stesso ambiente Kubernetes, si integrano in modo naturale. Code Engine è progettato per eliminare la complessità dell'infrastruttura, consentendo di concentrarsi sullo sviluppo delle applicazioni. Il passaggio successivo consiste nell'installazione della CLI di Code Engine. Esegui il seguente comando nel terminale.

ibmcloud plugin install code-engine -f

Output

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.

Fantastico! Ora concentriamoci su un progetto in Code Engine. Per prima cosa, visualizza l'elenco dei progetti eseguendo ibmcloud ce project list .

Output

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 progetto Code Engine raggruppa entità come applicazioni, job e build. Funge da unità per la gestione delle risorse e per il controllo degli accessi a tali entità. Se non hai progetti Code Engine attivi, esegui ibmcloud ce project create --name PROJECT_NAME e sostituisci CE_PROJECT_NAME con un nome di progetto a tua scelta (ad esempio, "code-engine-project").

Per selezionare il progetto specifico, esegui il comando ibmcloud ce project select --name CE_PROJECT_NAME . In questo esempio, il comando sarebbe ibmcloud ce project select --name ce-itz-wxo-69305f32086a49ee3736ff .

Output

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

Nota: se riscontri un errore in questo passaggio, assicurati di avere selezionato l'ambiente corretto con il comando ibmcloud target -c ACCOUNT_ID -r REGION_NAME -g RESOURCE_GROUP_NAME .

Passaggio 3. Configura Langflow con la CLI di Code Engine

Per utilizzare Langflow con la CLI di Code Engine, esegui il seguente comando.

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

Questo comando può essere eseguito per diversi minuti. Non interrompere il processo e lascia che venga completato.

Output

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

Passaggio 4. Collega wxO e attiva Langflow

Mentre viene eseguito il comando di configurazione di Langflow, possiamo aggiungere un ambiente per consentire l'interazione tra il computer locale e la soluzione SaaS in hosting.

In una nuova finestra del terminale, attiva un ambiente virtuale nella directory prescelta. Puoi modificare my-env  con qualsiasi nome di ambiente a tua scelta.

python -m venv my-env

Attiva l'ambiente virtuale con il seguente comando e sostituisci my-env  con il nome del tuo ambiente, se ne hai usato uno diverso:

MacOS/Linux:

source my-env/bin/activate

Windows:

my-env\Scripts\activate

Ora, nel browser che preferisci, accedi all'elenco delle risorse, espandi il menu a discesa AI/Machine Learning e seleziona la risorsa wxO attiva. Il nome dovrebbe essere simile a "watsonx Orchestrate-itz", ad esempio. Quindi copia l'URL riportato nella finestra Credentials. Tieni aperta questa pagina nel tuo browser, perché ti servirà a breve. Nel comando seguente, sostituisci YOUR_WXO_RESOURCE_URL  con l'URL recuperato ed esegui il comando nell'ambiente virtuale attivato nel tuo terminale.

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

Output

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

Quando viene richiesta la chiave API di wxO, torna alla pagina della risorsa già aperta nel browser. Non inserire la chiave API visualizzata sopra l'URL che hai copiato. Clicca invece sul pulsante Launch watsonx Orchestrate. Quindi, fai clic sull'icona circolare con le tue iniziali nell'angolo in alto a destra dello schermo e apri Settings. Seleziona la scheda API details e fai clic sul pulsante Generate API key. Successivamente, inserisci un nome e una descrizione a tua scelta per la chiave API e seleziona "Disable the leaked key" nella sezione "Leaked action". Soprattutto, seleziona "Yes" nella sezione "Session Management" per abilitare la gestione delle sessioni per gli accessi tramite CLI, quindi fai clic su "Create". Dovrebbe apparire la tua chiave API. Copia e incolla la chiave nel terminale che stavi utilizzando poco fa, in risposta alla richiesta di inserimento della chiave API di wxO.

Output

[INFO] - Environment ‘langflow’ is now active

Fantastico! Langflow è ora attivo.

Passaggio 5. Configura le risorse di Code Engine

Per creare un ambiente Code Engine stabile che non elimini l'applicazione Langflow dopo un periodo di inattività prestabilito, apri nuovamente il browser. Accedi alla panoramica dei container di IBM Cloud. Nell'elenco dei progetti, dovresti vedere il tuo progetto Code Engine creato più di recente. Apri il progetto. Apri quindi la tua applicazione Langflow. Nella scheda Configuration, apri il componente Resources and scaling. L'unica modifica da apportare consiste nell'aumentare il numero minimo di istanze da 0 a 1. Infine, fai clic sul pulsante Deploy per applicare questa revisione della configurazione.

Una volta completato questo passaggio, fai clic sul pulsante Test application e sul link Application URL. Questa azione aprirà la nostra istanza di Langflow su IBM Cloud.

Personalizzare le configurazioni Code Engine

Passaggio 6. Crea il tuo flusso

Esistono molti modi per creare un flusso Langflow. Puoi utilizzare i modelli predefiniti oppure crearne uno da zero. In questo tutorial esploreremo la seconda opzione. Per iniziare, fai clic su + Blank Flow. Questo esempio mostra un flusso che puoi creare, ma puoi esplorare liberamente la vasta gamma di componenti e integrazioni disponibili in Langflow.

  1. Aggiungi i seguenti nodi dei componenti integrati dal menu:
  • Chat Input - Riceve l'input dell'utente dalla chat.

  • Chat Output - Restituisce l'output all'utente nella chat.

  • Agent - Utilizza un'integrazione con un modello linguistico di grandi dimensioni (LLM) per rispondere all'input dell'utente e può essere collegato a diversi strumenti. 2

  • MCP Tools - Si collega a un server Model Context Protocol (MCP) ed espone le funzioni del server MCP come strumenti che gli agenti possono utilizzare per rispondere all'input.2

  • IBM watsonx.ai - Fornisce l'accesso ai modelli IBM watsonx.ai per la generazione di testo.3

  • News Search - Recupera contenuti da Google News e genera un DataFrame strutturato contenente il titolo, il link, la data di pubblicazione e un riassunto di ciascun articolo.4

  • arXiv - Cerca articoli pertinenti su arXiv.org e restituisce i risultati in formato DataFrame. 5

    Per finire, seleziona + New Custom Component nella parte inferiore del menu.

    Per facilitare la visualizzazione, disponi il flusso nel modo seguente.

Screenshot di Final Langflow

2.    Collega il componente Chat Input al campo "Input" nel componente Agent.

3.    Collega il componente Chat Output al campo "Response" del componente Agent.

4.    Nel componente Agent, imposta "Model Provider" su "Custom" dal menu a discesa. A seconda della versione di Langflow che stai utilizzando, potresti visualizzare invece "Connect other models". Entrambe le opzioni sono accettabili.

5.    Nel componente IBM watsonx.ai,seleziona l'endpoint API di watsonx.ai corretto per le tue credenziali API. Successivamente, incolla l'ID del progetto watsonx.ai e la chiave API nei campi appropriati. Quindi, seleziona il nome del modello linguistico di grandi dimensioni (LLM) che preferisci. In questo tutorial, possiamo selezionare openai/gpt-oss-120b . Assicurati che il componente sia impostato su "Language Model" e non su "Model Response". Questa impostazione è importante perché vogliamo utilizzare questo modello come modello linguistico per il nostro agente. Ora possiamo collegare quindi il componente IBM watsonx.ai al campo "Language Model" del componente Agent.

  • Nota: se preferisci utilizzare variabili globali invece di incollare direttamente le tue credenziali API, fai clic sull'icona del tuo profilo nell'angolo in alto a destra dello schermo e seleziona Settings. Nella sezione Global Variables, aggiungi il tuo WATSONX_PROJECT_ID e WATSONX_APIKEY per la connessione a watsonx.ai che hai generato come prerequisito per questo tutorial. Una volta tornato al tuo flusso, dovresti vedere un'icona a forma di globo nei campi di testo "watsonx.ai Project ID" e "API key". Fai clic sull'icona e seleziona la chiave appropriata dal menu a discesa.

6.    Abilita Tools Mode utilizzando il toggle per arXivNews Search e Custom Component. Puoi visualizzare questo interruttore nella barra superiore facendo clic in un punto qualsiasi di ciascuno di questi componenti. Con questa modalità abilitata, puoi ora collegare questi componenti al campo "Tools" del componente Agent. I componenti arXiv e News Search sono configurati e pronti per l'uso. Ora possiamo concentrarci sulla configurazione degli altri componenti.

7.    Nel menu superiore di Custom Component, seleziona <> Code. Qui possiamo personalizzare il comportamento del componente modificando il codice Python che lo definisce.6 Come semplice esempio, possiamo creare uno strumento che restituisce la data odierna, un'informazione altrimenti non accessibile a un LLM. Sostituisci il codice boilerplate con il seguente:

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

Procedi e salva le modifiche. Ora dovresti vedere il componente aggiornato con il nuovo nome, la nuova descrizione e la nuova icona.

8.    Il numero di strumenti che fornisci al tuo agente dipende da te. Tuttavia, ricorda di non sovraccaricare il tuo agente con troppi strumenti in quanto potrebbero ostacolare le prestazioni e la precisione. L'ultimo strumento che abiliteremo è un server MCP. Puoi connetterti a qualsiasi server di tua scelta. In questo tutorial, possiamo connetterci al server MCP di Alpha Vantage.7 Il server MCP ufficiale di Alpha Vantage consente agli LLM e agli agenti di recuperare facilmente dati azionari in tempo reale e storici utilizzando il Model Context Protocol. Per connetterti a questo server, apri il menu a discesa "MCP Server" nel componente MCP Tools e fai clic su + Add MCP Server. Nella scheda STDIO, assegna un nome al server, ad esempio "av_mcp", quindi incolla il seguente comando: uvx av-mcp YOUR_API_KEY . Per generare una chiave API gratuita di Alpha Vantage, visita il sito di Alpha Vantage e incolla la chiave nel comando, sostituendo il segnaposto YOUR_API_KEY . Dopo avere aggiunto il server, attiva l'opzione Tools Mode nel menu dell'intestazione del nodo del componente. Vedrai comparire un lungo elenco di strumenti nella sezione "Actions". Questo risultato indica che la connessione al server MCP è stata stabilita correttamente. Ora puoi collegare questo componente finale al campo "Tools" del componente Agent.

Aggiungere un server Alpha Vantage MCP

Ottimo lavoro! Il flusso è ora completo e dovrebbe essere simile alla seguente schermata.

Screenshot di Final Langflow

Per verificare che la pipeline di ricerca funzioni come previsto, apri il Playground e parla con il tuo nuovo agente! Poni all'agente domande che richiedano l'utilizzo di uno degli strumenti collegati. Alcuni esempi di valori di input includono:

  • Semplice:
    • "Qual è la data di oggi?"
    • "Trova 5 articoli di ricerca sul calcolo quantistico".
  • Moderato:
    • "Analizza il prezzo delle azioni IBM negli ultimi 30 giorni".
  • Complesso:
    • "Ci sono notizie recenti che indicherebbero che le azioni IBM sono rialziste o ribassiste?"

Dovresti vedere l'agente utilizzare gli strumenti a sua disposizione e produrre l'output corretto. Se riscontri problemi in questa fase, torna al tuo flusso e verifica che le credenziali siano corrette e di avere seguito tutti i passaggi.

Passaggio 7. Importa il tuo flusso su wxO come server MCP

Un modo per collegare questo flusso a watsonx Orchestrate è utilizzarlo come server MCP. Fai clic sul menu a discesa Share nell'angolo in alto a destra e seleziona "MCP Server". Fai clic sulla scheda "JSON". Dovresti vedere un codice simile al seguente esempio:

{
    “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”
            ]
        }    
    }    
}

Copia l'URL presente nello snippet JSON. Nota che sarà diverso dall'esempio precedente. Torna al tuo terminale e incolla l'URL del server MCP al posto del segnaposto MCP_SERVER_URL . L'esecuzione del seguente comando nella CLI di watsonx Orchestrate consente di importare questo server MCP nella piattaforma come toolkit.

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

Output

[INFO] - Successfully imported tool kit langflow_mcp

Passaggio 8. Crea un agente e verifica le chiamate agli strumenti

Nel browser, apri watsonx Orchestrate e crea un nuovo agente da zero. Inserisci un nome e una descrizione per il tuo agente. Una volta creato, apri la scheda Toolset  e fai clic sul pulsante Add tool. Da lì, seleziona l'opzione per importare gli strumenti da un server MCP. Dal menu a discesa Select MCP server, seleziona il server che abbiamo importato, attiva gli strumenti tramite l'apposito toggle e chiudi la finestra. Successivamente, fai clic su Deploy. Dopo l'implementazione, puoi conversare con il tuo agente nella finestra di chat Preview oppure nell'interfaccia di chat accessibile dal menu laterale compresso della pagina.

Facciamo una domanda al nostro agente! Ad esempio: "Trova 5 articoli di ricerca sul calcolo quantistico".

Output della query sui documenti di ricerca

Fantastico! Il chatbot agentico si comporta come previsto, non solo fornendo la risposta corretta, ma anche richiamando il corretto strumento arXiv. Sperimenta liberamente con diversi prompt.

Passaggi: approccio ADK (locale)

Con questo approccio, Code Engine non è necessario. Questo approccio configura un ambiente di sviluppo locale utilizzando l'SDK di watsonx Orchestrate Developer Edition, una versione leggera di watsonx Orchestrate che funziona come server di sviluppo locale.

Prerequisiti

  • Specifiche della macchina:
    • 16 GB di RAM
    • 8 core
    • 25 GB di spazio su disco

Passaggio 1. Installa l'SDK wxO Developer Edition

Prima di iniziare a sviluppare in locale con Langflow, installa la Developer Edition del wxO ADK. Nota: la Developer Edition non era necessaria per il primo approccio illustrato in questo tutorial.

  1. Nel tuo IDE preferito, configura il tuo ambiente. Crea una cartella chiamata wxo-langflow-agent per conservare tutti gli agenti e strumenti. Puoi trovare questo progetto su Github e usarlo come riferimento. La struttura delle cartelle dovrebbe essere:

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

2.  Apri il terminale e attiva un ambiente virtuale. Puoi sostituire my-env  con un nome di ambiente a tua scelta.

python -m venv my-env

Attiva l'ambiente virtuale con il seguente comando e sostituisci my-env  con il nome del tuo ambiente, se ne hai usato uno diverso:

MacOS/Linux:

source my-env/bin/activate

Windows:

my-env\Scripts\activate

3.  Nel file .env, imposta le seguenti variabili di ambiente. Per ulteriori informazioni, consulta la guida alla configurazione.

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

4.  Esegui il seguente comando per installare il server watsonx Orchestrate Developer Edition. Non è necessario installare Langflow perché è incluso nell'ADK Developer Edition. L'opzione del comando --with-langflow  abilita il supporto a Langflow scaricando le immagini del container necessarie ed eseguendo la configurazione iniziale per rendere Langflow accessibile in locale.

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

Questo comando può richiedere diversi minuti se è la prima volta che avvii un server.

Risoluzione dei problemi: se in passato hai installato watsonx Orchestrate Developer Edition con una versione dell'ADK precedente alla 2.0 e riscontri errori durante l'avvio dei container, esegui:

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

La parte finale dell'output dovrebbe essere simile al seguente esempio.

Output

[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

Passaggio 2. Attiva l'interfaccia di chat locale di wxO

  1. Nel watsonx Orchestrate ADK, gli ambienti rappresentano le istanze di watsonx Orchestrate a cui è possibile connettersi. Il tuo ambiente sarà un'istanza di Developer Edition in esecuzione sul tuo laptop. Puoi usare il comando orchestrate env list per visualizzare tutti gli ambienti attualmente disponibili nella tua CLI. Per impostazione predefinita, hai un ambiente local. Puoi eseguire il seguente comando per attivare l'ambiente local .

    orchestrate env activate local
    

    Output

    [INFO] - local tenant found
    [INFO] - Environment 'local' is now active
    
  2. Successivamente, esegui questo comando per avviare l'interfaccia di chat nel browser predefinito.

    orchestrate chat start
    

    Output

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

Passaggio 3. Crea un flusso Langflow

L'editor di Langflow è disponibile tramite watsonx Orchestrate Developer Edition sulla porta 7861, come mostrato nell'output precedente.

  1. Nel browser web, vai all'indirizzo http://localhost:7861.
  2. Crea il tuo flusso. Puoi riutilizzare il flusso creato nella prima parte di questo tutorial oppure crearne uno personalizzato. Potrebbe esserti utile, più avanti in questo tutorial, assegnare al tuo flusso un nome e una descrizione personalizzati invece di utilizzare quelli predefiniti. Puoi farlo passando il puntatore del mouse sul nome del flusso nella parte superiore dello schermo e facendo clic sull'icona della matita.
  • Esempio di nome del flusso: Agente di ricerca
  • Esempio di descrizione del flusso: Accesso alla ricerca di notizie, ad arXiv, alla data odierna e all'API di Alpha Vantage.

Passaggio 4. Importa il flusso in wxO

Possiamo esplorare due opzioni per importare i flussi di Langflow nel nostro server locale di watsonx Orchestrate:

a) Importare il flusso come server MCP locale.

b) Importare il flusso come JSON.

Opzione 1: Importa come server MCP locale

Questo passaggio è simile al passaggio 7 della prima parte del tutorial, con alcune piccole differenze. 

  1. Fai clic sul menu a discesa Share nell'angolo in alto a destra di Langflow e seleziona "MCP Server". Fai clic sulla scheda "JSON". Dovresti vedere un codice simile al seguente esempio:

    {
        "mcpServers": {
            "lf-starter_project": {
            "command": "uvx",
            "args": [
                "mcp-proxy",
                "http://localhost:7861/api/v1/mcp/project/41c9434f-67bf-439e-8dac-b7bb09b1d1ca/sse"
                ]
            }
        }
    }
    
  2. Copia l'URL presente nello snippet JSON. Nota che sarà diverso dall'esempio precedente. Torna al terminale e incolla il seguente comando, sostituendo l'URL di esempio con il tuo. A differenza del comando che eseguivamo usando IBM Cloud, qui devi sostituire localhost con host.docker.internal. Ecco un esempio:

    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 "*"
    

    Output

    [INFO] - Successfully imported tool kit langflow_research_mcp
    
  3. Nell'istanza locale di watsonx Orchestrate in esecuzione nel browser, fai clic su "Create new agent" e inserisci un nome e una descrizione per il nuovo agente. Quindi, fai clic sul pulsante Create .

Schermata di watsonx Orchestrate durante l'esecuzione di "Create agent locally"

4.    Nella scheda Toolset, fai clic sul pulsante Add tool. Seleziona "local instance" per aggiungere il server MCP già importato, seleziona la casella corrispondente al server MCP importato e fai clic su Add to agent.

Schermata che mostra come aggiungere un server MCP come strumento

5.    Inizia a chattare!

Chat dell'agente con il server MCP come strumento

Opzione 2: Importa come JSON

In alternativa all'importazione dei flussi come server MCP, possiamo utilizzare l'ADK per importare i flussi come file JSON esportati.

1. Questo approccio funziona meglio per flussi semplici. A scopo dimostrativo, usiamo questo flusso:

Strumento arXiv in Langflow

Esporta il flusso in formato JSON facendo clic sul pulsante Share e selezionando Export. Inserisci il nome e la descrizione che preferisci per lo strumento o il flusso. Il nome dello strumento deve contenere solo caratteri alfanumerici e trattini bassi e non deve iniziare con un numero o un trattino basso.

2. Aggiungi il file JSON appena esportato alla cartella tools

3.  Esegui il seguente comando per importare il tuo flusso in watsonx Orchestrate.

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

4. Dopo avere importato il flusso Langflow come strumento, il prossimo passo è collegarlo a un sistema di agenti. Puoi eseguire questo passaggio creando un nuovo agente nell'interfaccia utente di watsonx Orchestrate oppure copiando la seguente definizione dell'agente in un nuovo file arxiv_agent.yml  nella cartella 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

Ora importa l'agente semplice eseguendo:

orchestrate agents import -f agents/arxiv_agent.yml

5.  Aggiorna il browser in cui è in esecuzione l'interfaccia di chat locale di watsonx Orchestrate per visualizzare le modifiche apportate. Nel menu a discesa Agents, seleziona "ArXiv Agent" e poni domande che richiedano l'utilizzo dello strumento arXiv!

Esempio di prompt: "Trova 5 articoli di ricerca sul calcolo quantistico".

Output

Chat con l'agente arXiv locale

Ottimo! L'agente ha stabilito che era necessario invocare lo strumento arxiv  per rispondere a questa richiesta dell'utente. L'output dello strumento viene visualizzato nel flusso di ragionamento compresso e nella finestra della chat come risposta.

Conclusione

Questo tutorial ti ha fornito le competenze essenziali per utilizzare Langflow e watsonx Orchestrate nella creazione di agenti robusti, scalabili e pronti per l'ambiente enterprise. Hai imparato a importare flussi agentici di Langflow come server MCP utilizzando watsonx Orchestrate come Software as a Service (SaaS) insieme a IBM Cloud. Inoltre, ora sai come importare flussi di base di Langflow quando utilizzi localmente l'IBM watsonx Orchestrate Agent Development Kit (ADK). Seguendo le istruzioni passo dopo passo, hai imparato a progettare, sviluppare e distribuire agenti che richiamano strumenti personalizzati e predefiniti per rispondere alle richieste degli utenti. Grazie all'interfaccia visiva intuitiva di Langflow, hai creato workflow complessi, mentre watsonx Orchestrate ti ha consentito di gestire e scalare questi agenti in modo efficiente. Come prossimo passo, applica le conoscenze acquisite in questo tutorial lavorando su un caso d'uso reale. Scegli uno specifico problema aziendale o un processo della tua organizzazione che potrebbe beneficiare dell'automazione e progetta una soluzione basata su Langflow e watsonx Orchestrate per affrontarlo. Questa esperienza pratica consoliderà la tua comprensione e ti aiuterà a individuare aree di ulteriore miglioramento o approfondimento.

In caso di problemi o domande, consulta la documentazione. I problemi più comuni sono trattati nella guida alla risoluzione dei problemi. Puoi anche consultare le issue di GitHub per verificare se altri hanno riscontrato problemi simili.

Autore

Anna Gutowska

AI Engineer, Developer Advocate

IBM

Soluzioni correlate
Sviluppo di agenti AI IBM 

Consenti agli sviluppatori di creare, distribuire e monitorare agenti AI con lo studio IBM watsonx.ai.

 

Esplora watsonx.ai
Soluzioni di intelligenza artificiale

Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.

Esplora le soluzioni AI
Consulenza e servizi sull'AI

Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.

Esplora i servizi AI
Prossimi passi

Sia che tu scelga di personalizzare app e competenze precostituite o di creare e implementare servizi di agenti personalizzati utilizzando uno studio di AI, la piattaforma IBM watsonx è la soluzione che fa per te.

  1. Scopri watsonx Orchestrate
  2. Esplora watsonx.ai
Note a piè di pagina

1 Satyadhar Joshi. “Review of Autonomous Systems and Collaborative AI Agent Frameworks.” International Journal of Science and Research Archive, vol. 14, no. 2, 28 febbraio 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/.