watsonx Orchestrate ADKとIBM Cloudを使用して、Langflowでカスタム・リサーチ・エージェントを構築する

AIエージェント の発展にともない、一部の企業ではこれらの自律型エージェントの広範な導入に対する躊躇が報告されています。1 いくつかの課題には、ガバナンス、倫理、人とAIのコラボレーション、デプロイメント、および拡張性があります。ただし、信頼できるエージェント型AIの構築は複雑である必要はありません。IBM watsonx Orchestrateを使用すれば、これらの懸念をすべて1箇所で軽減できます。このチュートリアルでは、Langflowとwatsonx Orchestrateを使用して、信頼性が高くスケーラブルなエンタープライズ対応のエージェントを構築する方法を学びます。

Langflowとは

Langflowは、AIエージェント やその他のAIアプリケーションを構築するための、Pythonベースのオープンソース・フレームワークです。Langflowは元々、その親フレームワークであるLangChainをベースに構築されました。同じファミリー内の別のプラットフォームであるLangGraphも、グラフベース of アーキテクチャーを使用してエージェント型システムを構築するために使用されます。Langflowの際立った特徴は、使いやすいドラッグ・アンド・ドロップのインターフェースであり、ユーザーはエージェント・コンポーネントを接続してパーソナライズされたワークフローを設計したり、事前構築されたテンプレートから開始したりできます。このローコードまたはノーコードのアプローチに代わる方法として、開発者はカスタム・コンポーネントを構築し、Langflow APIを使用して、ステップ・バイ・ステップのエージェント・フローを既存のアプリケーション・コードに組み込むことができます。このLangflowチュートリアルでは、以下を行うことによってエージェントを構築およびデプロイする方法について説明します。

  1. IBM Cloudとともに、Software as a Service(SaaS)としてIBM® watsonx Orchestrateを使用することによる、MCPサーバーとしてのエージェント型LangFlowフローのインポート。
  2. IBM watsonx Orchestrate Agent Development Kit(ADK)をローカルで使用することによる、基本的なLangFlowフローのインポート。

どちらのアプローチも、このチュートリアルのセクションに対応しています。注:このチュートリアルには、GitHubでもアクセスできます。

始めましょう。

前提条件

このチュートリアルには以下が必要です。

  • 最新バージョンのPythonがインストールされていること。
  • watsonx.aiプロジェクトIDおよび APIキーを作成するための、 IBM Cloudアカウント。ライトおよびフリーのサービス・プランが利用可能です。
    • プロジェクトIDはプロジェクト内から取得できます。「管理」タブをクリックします。次に、「全般」ページの「詳細」セクションからプロジェクトIDをコピーします。このチュートリアルのADKの部分でこのIDが必要になります。
  • watsonx Orchestrateアカウント(試用版アカウントでも可)。まだアカウントをお持ちでない場合は、こちらをクリックして、30日間の無料トライアルに登録してください。IBM Cloudでトライアル・アクセスを受け取る方法の詳細な手順については、ドキュメンテーションを確認してください。
  • IBM watsonx Orchestrate ADKがインストールされていること。ADKのセットアップとインストールについては、こちら公式ドキュメンテーションに従ってください。
    • 注:ADKバージョン2.0より前にwatsonx Orchestrate Developer editionをインストールしたことがある場合は、アップグレードする前にまずorchestrate server resetを実行してすべてのコンテナーを削除してください。watsonx Orchestrate Developer editionは、外部コンテナー・エンジンへの依存関係がなくなりました。アップグレード前にリセットを行わないと、アプリケーションが複数インストールされて無駄なシステム・リソースを消費する可能性があり、ポート競合の原因となります。
  • IBM Cloud CLIがインストールされていること。MacOS、Linux、およびWindows用のインストール・コマンドは、概説ガイドに記載されています。

これらの要件が満たされていない場合、このチュートリアルを再現することはできませんのでご注意ください。

手順:IBM Cloud アプローチ

ステップ1. IBM Cloud環境の設定をする

端末で以下のコマンドを実行します。IBMidを使用してIBM Cloudアカウントにログインするよう求められます。複数のアカウントをお持ちの場合は、いずれか1つを選択する必要があります。

ibmcloud login

注: 認証情報が無効な場合。フェデレーテッド・ユーザーである可能性があります。企業またはエンタープライズのシングル・サインオンIDを使用するには、--ssoフラグを使用して再度ログインしてください。フェデレーテッドIDでのログインに関する詳細については、 ドキュメンテーション を参照してください。要約すると、プロンプトが表示されたら、デフォルトのブラウザーでURLを開くことを許可し、表示されたワンタイム・コードを端末に貼り付けます。

同様の出力が表示されれば、サインオンは成功しています。

アウトプット:

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’

注: リージョン が正しくないことに気付いた場合は、ibmcloud target -r を実行し、その後に正しいリージョンを指定してください。例えば、地域サービス・エンドポイントがus-east である場合は、ibmcloud target -r us-east を実行します。

クラウド・リソースを表示するには、ibmcloud resource groups を実行します。このコマンドにより、リソース・グループが取得され、同様の出力が生成されるはずです(リソースの名前とIDは異なります)。

アウトプット:

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

次に、ibmcloud target -g RESOURCE_GROUPを実行して、特定のリソースをターゲットにします。この例では、コマンドはibmcloud target -g itz-wxo-69305f32086a49ee3736ff となります。

この結果は、出力が同様になるはずです。

アウトプット:

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

ステップ2. IBM Cloud Code Engine CLIをインストールする

IBM Cloud Code Engineを使用すれば、サーバーやインフラストラクチャーを管理することなく、ほぼすべてのコンテナー化されたワークロードを実行できます。このプラットフォームは、マイクロサービスやWebアプリからバッチ・ジョブやイベント駆動型機能まで、あらゆるものをサポートします。また、ソースコードからの組み込みのイメージ作成機能も提供します。すべてのワークロードが同じKubernetes環境を共有するため、自然に統合されます。Code Engineはインフラストラクチャーを意識させないように設計されているため、アプリケーションの構築に集中し続けることができます。Code Engine CLIのインストールが次のステップです。端末で以下のコマンドを実行します。

ibmcloud plugin install code-engine -f

アウトプット:

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.

素晴らしい。次に、Code Engine内にあるプロジェクトをターゲット設定しましょう。まず、ibmcloud ce project list を実行してプロジェクトのリストを表示します。

アウトプット:

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

Code Engineプロジェクトは、アプリケーション、ジョブ、ビルドといったエンティティーをグループ化します。これはリソース管理や、それらエンティティーへのアクセス制御を行う単位として機能します。アクティブなCode Engineプロジェクトがない場合は、ibmcloud ce project create --name PROJECT_NAME を実行してください。そしてCE_PROJECT_NAME を置き換えるプロジェクト名は任意に設定できます(例:「code-engine-project」)。

特定のプロジェクトをターゲットにするには、ibmcloud ce project select --name CE_PROJECT_NAME を実行します。この例では、コマンドはibmcloud ce project select --name ce-itz-wxo-69305f32086a49ee3736ff となります。

アウトプット:

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

注:ここでエラーが発生した場合は、ibmcloud target -c ACCOUNT_ID -r REGION_NAME -g RESOURCE_GROUP_NAME を使用して適切な環境がターゲット設定されているか確認してください。

ステップ3. LangflowをCode Engine CLIで設定する

Code Engine CLIを使用しながらLangflowを使用するには、以下のコマンドを実行します。

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

このコマンドの実行には数分かかる場合があります。妨害せずに実行させておいてください。

アウトプット:

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

ステップ4. wxOを接続し、Langflowを有効化する

Langflowのセットアップ・コマンドが実行されると、ローカル・マシンおよびSaaSホスト型ソリューションとインターフェースをとるための環境を追加できます。

新しい端末ウィンドウで、選択したディレクトリー内にある仮想環境を有効化します。my-envは任意の環境名に変更できます。

python -m venv my-env

以下のコマンドを使用して仮想環境を有効化し、別の環境名を使用した場合は、my-env を環境名に置き換えます。

MacOS/Linux:

source my-env/bin/activate

Windows:

my-env\Scripts\activate

次に、お好みのブラウザーでIBM Cloudのリソース・リストにアクセスし、AI/機械学習のドロップダウンを展開して、アクティブなwxOリソースを選択します。名前の例としては「Watson Orchestrate-itz」のようになります。次に、認証情報ウィンドウにあるURLをコピーします。すぐに必要になるため、ブラウザーでこのページを開いたままにしてください。次のコマンドで、YOUR_WXO_RESOURCE_URLを取得したURLに置き換え、端末の有効化された仮想環境でコマンドを実行します。

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

アウトプット:

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

wxO APIキーの入力を求められたら、ブラウザーで開いているリソース・ページに戻ります。コピーしたURLの上にあるAPIキーは入力しないでください。代わりに、「Launch watsonx Orchestrate」ボタンをクリックします。次に、画面の右上隅にあるご自身のイニシャル入りの円形アイコンをクリックし、「設定」を開きます。「APIの詳細」タブを選択し、「APIキーの生成」ボタンをクリックします。次に、APIキーの任意の名前と説明を入力し、「漏洩時のアクション」セクションで「漏洩したキーを無効化」を選択します。最も重要なこととして、「セッション管理」セクションで「はい」を選択してCLIログインのセッション管理を有効にし、「作成」をクリックします。APIキーが表示されるはずです。wxO APIキーの入力要求を満たすために、先ほど使用していた端末にキーをコピーして貼り付けてください。

アウトプット:

[INFO] - Environment ‘langflow’ is now active

Langflowがアクティブになりました。

ステップ 5. Code Engine 参考情報を設定する

一定のタイムアウト期間が経過した後にLangflowアプリケーションを削除しない、安定したCode Engine環境を確立するには、ブラウザーをもう一度開きます。IBM Cloudのコンテナー概要にアクセスします。最も最近作成されたものとして、お客様のCode Engineプロジェクトが表示されるはずです。プロジェクトを開きます。次に、Langflowアプリケーションを開きます。「構成」タブで、「リソースとスケーリング」コンポーネントを開きます。ここで行う必要がある唯一の変更は、インスタンスの最小数を0から1に増やすことです。最後に、「デプロイ」ボタンをクリックして、この構成リビジョンを適用します。

このステップを完了したら、「アプリケーションのテスト」ボタンをクリックし、「アプリケーションURL」ハイパーリンクをクリックします。このアクションにより、LangflowのIBM Cloudインスタンスが開きます。

Code Engine構成のカスタマイズ

ステップ 6. フローを構築する

Langflowフローを構築する方法は多数あります。事前構築されたテンプレートを使用するか、スクラッチから独自に作成します。このチュートリアルでは、後者について説明します。開始するには、「+ 空のフロー」をクリックします。この例では構築可能なフローを示していますが、Langflowに組み込まれている過剰な数のコンポーネントや統合を自由に探索してください。

  1. メニューから以下の組み込みコンポーネント・ノードを追加します。
  • チャット入力 - チャットからユーザー入力を受信します。

  • チャット出力 - チャット内のユーザーにフロー出力を返します。

  • エージェント - 大規模言語モデル(LLM)の統合を使用してユーザー入力に応答し、複数のツールに接続できます。2

  • MCPツール - Model Context Protocol(MCP)サーバーに接続し、エージェントが入力に応答するために使用するツールとしてMCPサーバーの機能を公開します。2

  • IBM watsonx.ai - テキスト生成用のIBM watsonx.aiモデルへのアクセスを提供します。3

  • ニュース検索 - Googleニュースのコンテンツを取得し、各記事のタイトル、リンク、公開日、および要約を含む構造化されたデータフレームを生成します。4

  • arXiv - 関連する論文をarXiv.orgで検索し、その結果をデータフレーム形式で出力します。5

    最後に、メニューの下部にある「+ 新しいカスタム・コンポーネント」を選択します。

    視覚化を容易にするために、フローを以下のように配置します。

最終的なLangflowのスクリーンショット

2. チャット入力コンポーネントを、エージェントコンポーネントの「入力」フィールドに接続します。

3. チャット出力コンポーネントを、エージェントコンポーネントの「応答」フィールドに接続します。

4.エージェント・コンポーネントで、ドロップダウンから「モデル・プロバイダー」を「カスタム」に設定します。使用しているLangflowのバージョンによっては、代わりに「他のモデルを接続」と表示される場合があります。どちらのオプションでも問題ありません。

5. IBM watsonx.aiコンポーネントで、お客様のAPI認証情報に適したwatsonx.ai APIエンドポイントを選択します。次に、お客様のwatsonx.aiプロジェクトIDとAPIキーを適切なフィールドに貼り付けます。その後、任意の状況に応じた大規模言語モデルの名前を選択します。このチュートリアルでは、openai/gpt-oss-120b を選択できます。コンポーネントが「モデル応答」ではなく「言語モデル」に設定されていることを確認してください。このモデルをエージェント用の言語モデルとして使用したいため、この設定は重要です。したがって、IBM watsonx.aiコンポーネントを、エージェント・コンポーネントの「言語モデル」フィールドに接続できるようになりました。

  • 注: API認証情報を直接貼り付けるのではなく、グローバル変数を使用する場合は、画面の右上隅にあるプロファイル・アイコンをクリックして「設定」を選択します。「グローバル変数」セクションで、このチュートリアルの前提条件として生成したwatsonx.ai接続用のWATSONX_PROJECT_IDWATSONX_APIKEY を追加します。フローに戻ると、「watsonx.aiプロジェクトID」および「APIキー」のテキスト・フィールドに地球儀アイコンが表示されるはずです。アイコンをクリックし、ドロップダウンから適切なキーを選択します。

6.arXivニュース検索、およびカスタム・コンポーネントのトグルを使用して、ツール・モードを有効にします。これらのコンポーネント上の任意の場所をクリックすると、ヘッダー・メニューにこのトグルが表示されるのがわかります。このモードを有効にすると、これらのコンポーネントをエージェントコンポーネントの「ツール」フィールドに接続できるようになります。arXivおよびニュース検索コンポーネントが構成され、使用可能な状態になります。これで、他のコンポーネントの構成に集中できます。

7.カスタム・コンポーネントのヘッダー・メニューで、「<> コード」を選択します。ここでは、コンポーネントを定義するPythonコードを編集することで、コンポーネントの動作をカスタマイズできます。6簡単な例として、LLMにとっては本来アクセスできない知識である本日の日付を返すツールを作成できます。ボイラープレート・コードを以下に置き換えます。

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

変更を保存してください。コンポーネントに新しい名前、説明、およびアイコンが反映されているのが表示されるはずです。

8.エージェントに提供するツールの数は、お客様次第です。ただし、ツールが多すぎるとパフォーマンスや正確性が損なわれる可能性があるため、エージェントに過剰な負担をかけないように注意してください。有効化する最後のツールは、MCPサーバーです。任意のサーバーに接続できます。このチュートリアルでは、Alpha Vantage MCPサーバーに接続できます。 7 公式のAlpha Vantage MCPサーバーを使用すると、LLMやエージェントがModel Context Protocolを使用して、リアルタイムおよび過去の株価データを簡単に取得できるようになります。このサーバーに接続するには、「MCPツール」コンポーネントの「MCPサーバー」ドロップダウンを開き、「+ MCPサーバーを追加」をクリックします。「STDIO」タブで、サーバーに任意の名前(例えば「av_mcp」)を指定し、以下のコマンドを貼り付けます:uvx av-mcp YOUR_API_KEY 。無料のAlpha Vantage APIキーを生成するには、公式のAlpha Vantage WebサイトにアクセスしYOUR_API_KEY プレースホルダーを置き換えてコマンドに貼り付けます。サーバーを追加したら、コンポーネント・ノード of ヘッダー・メニューにある「ツール・モード」トグルを有効にします。ツールの膨大なリストが「アクション」として表示されるのがわかります。この結果は、MCPサーバーへの接続が成功したことを意味します。これで、この最後のコンポーネントを「エージェント」コンポーネントの「ツール」フィールドに接続できるようになりました。

Alpha Vantage MCPサーバーの追加

お疲れさまでした。フローが完了し、以下のスクリーン・キャプチャーのようになるはずです。

最終的なLangflowのスクリーンショット

リサーチ・パイプラインが期待通りに機能していることを確認するには、「プレイグラウンド」を開き、新しく構築したエージェントとチャットしてください。接続されているツールのいずれかを呼び出す必要がある質問をエージェントに投げかけます。サンプル入力値の例を以下に示します。

  • シンプル:
    • 「本日の日付は何ですか。」
    • 「量子コンピューティングに関する研究論文を5本見つけてください。」
  • 中級:
    • 「過去30日間のIBMの株価を分析してください。」
  • 上級:
    • 「IBMの株価が強気か弱気かを示す最近のニュースはありますか。」

エージェントが使用可能なツールを呼び出し、正しい出力を生成するのが表示されるはずです。この段階で問題が発生した場合は、フローに戻り、認証情報が正しく、各ステップに従っていることを確認してください。

ステップ 7. フローをMCPサーバーとしてWxOにインポートする

このフローをwatsonx Orchestrateに接続する1つの方法は、MCPサーバーとして接続することです。右上隅の「共有」ドロップダウンをクリックし、「MCPサーバー」を選択します。「JSON」タブをクリックします。この例と同様のコードが表示されるはずです。

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

JSONスニペット内のURLをコピーします。前の例とは異なることに注意してください。端末に戻り、次のMCP_SERVER_URLプレースホルダーの位置にMCPサーバーのURLを貼り付けます。watsonx Orchestrate CLIでこの次のコマンドを実行すると、このMCPサーバーをツールキットとしてプラットフォームにインポートできます。

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

アウトプット:

[INFO] - Successfully imported tool kit langflow_mcp

ステップ8. エージェントの作成とツール呼び出しのテスト

ブラウザーでwatsonx Orchestrateに移動し、スクラッチから新しいエージェントを構築します。エージェントの任意の名前と説明を入力します。作成したら、「ツールセット」タブを開き、「ツールの追加」ボタンをクリックします。そこから、MCPサーバーからツールをインポートすることを選択します。「MCPサーバーの選択」ドロップダウンからインポートしたサーバーを選択し、有効化を切り替えてツールを有効化し、ウィンドウを閉じます。次に、「デプロイ」をクリックします。デプロイしたら、「プレビュー」チャット・ウィンドウ、または折りたたまれたページ・メニューにあるチャット・インターフェースでお客様のエージェントとチャットできます。

エージェントにクエリーを投げてみましょう。例えば、「量子コンピューティングに関する研究論文を5本見つけてください。」

研究論文クエリーの出力

素晴らしい。エージェント型チャットボットは、正しい応答を出力するだけでなく、正しいarXivツールを呼び出すことによって、期待通りに動作しています。さまざまなプロンプトを自由に試してください。

手順:ADK アプローチ (ローカル)

このアプローチでは、Code Engineは必要ありません。このアプローチでは、ローカル開発サーバーとして機能するwatsonx Orchestrateの軽量バージョンであるwatsonx Orchestrate Developer Edition SDKを使用して、ローカル開発環境をセットアップします。

前提条件

  • マシン仕様:
    • 16 GB RAM
    • 8コア
    • 25GBのディスク容量

ステップ1. wxO Developer Edition SDKをインストールする

Langflowを使用してローカルで構築を開始する前に、wxO ADKのDeveloper Editionをインストールしてください。このDeveloper Editionは、このチュートリアルの最初のアプローチでは必要なかったことに注意してください。

  1. 好みのIDEで環境をセットアップします。すべてのエージェントとツールを保管するためにwxo-langflow-agent というフォルダーを作成します。このプロジェクトはGithubでご覧いただけます。フォルダー構造は次のようになります:

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

2. 端末を開き、仮想環境を有効化します。my-env は、任意の環境名に変更できます。

python -m venv my-env

以下のコマンドを使用して仮想環境を有効化し、別の環境名を使用した場合は、my-env を環境名に置き換えます。

MacOS/Linux:

source my-env/bin/activate

Windows:

my-env\Scripts\activate

3. .envファイルで、以下の環境変数を設定します。詳細については、セットアップ・ガイドを参照してください。

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

4. 以下のコマンドを実行して、watsonx Orchestrate Developer Editionサーバーをインストールします。LangflowはADK Developer Editionの一部として含まれているため、インストールする必要はありません。--with-langflow コマンド・フラグは、必要なコンテナー・イメージをプルし、Langflowをローカルでアクセス可能にするための初期構成を実行することで、Langflowのサポートを有効にします。

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

初めてサーバーを有効化する場合、このコマンドの実行には数分かかる場合があります。

トラブルシューティング: 過去にADKバージョン2.0より前にwatsonx Orchestrate Developer Editionをインストールしたことがあり、コンテナーの起動でエラーが発生した場合は、以下を実行してください。

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

出力の最後は、以下の例のようになるはずです。

アウトプット:

[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

ステップ2. ローカルのwxOチャットUIを有効化する

  1. watsonx Orchestrate ADKは、接続可能なwatsonx Orchestrateインスタンスとして環境を定義します。環境は、ノートPC上で実行されるDeveloper Editionインスタンスになります。orchestrate env listコマンドを使用すると、CLI で現在利用可能なすべての環境を一覧表示できます。デフォルトでは、 localとなっています。local環境を有効化するには、以下のコマンドを実行してください。

    orchestrate env activate local
    

    アウトプット:

    [INFO] - local tenant found
    [INFO] - Environment 'local' is now active
    
  2. 次に、このコマンドを実行して、デフォルトのブラウザーでチャットUIを起動します。

    orchestrate chat start
    

    アウトプット:

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

ステップ3. Langflowを作成する

前の出力に示されているように、Langflowエディターは、ポート7861上のwatsonx Orchestrate Developer Editionを通じて利用可能です。

  1. Webブラウザーで、http://localhost:7861に移動します。
  2. フローを構築します。このチュートリアルの最初の部分で構築したフローを再利用することも、独自のフローを構築することもできます。このチュートリアルの後半で、デフォルトのものではなく、フローにカスタムの名前と説明を指定しておくと役立つ場合があります。これを行うには、画面上部のフロー名にホバーし、鉛筆アイコンをクリックします。
  • フロー名の例:Research agent
  • フロー説明の例:ニュース検索、arXiv、本日の日付、およびAlpha Vantage APIへのアクセス。

ステップ4. フローをwxOにインポートする

ローカルのwatsonx OrchestrateサーバーにLangflowフローをインポートするための2つのオプションについて説明します。

a)ローカルMCPサーバーとしてフローをインポート。

b)JSONとしてフローをインポート。

オプション1. ローカルMCPサーバーとしてインポートする

このステップは、いくつかの軽微な変更を除き、このチュートリアルの前半のステップ7に類似しています。

  1. Langflowの右上隅にある「 共有 」ドロップダウンをクリックし、「MCPサーバー」を選択します。「JSON」タブをクリックします。以下の例と同様のコードが表示されるはずです。

    {
        "mcpServers": {
            "lf-starter_project": {
            "command": "uvx",
            "args": [
                "mcp-proxy",
                "http://localhost:7861/api/v1/mcp/project/41c9434f-67bf-439e-8dac-b7bb09b1d1ca/sse"
                ]
            }
        }
    }
    
  2. JSONスニペット内のURLをコピーします。前の例とは異なることに注意してください。端末に戻り、次の例のURLの代わりに、ご自身のURLを使用して次のコマンドを貼り付けます。 IBM Cloudの使用時に実行したコマンドとは異なり、ここではlocalhosthost.docker.internalに置き換える必要があります。 以下に例を示します。

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

    アウトプット:

    [INFO] - Successfully imported tool kit langflow_research_mcp
    
  3. ブラウザーで実行されているwatsonx Orchestrateのローカル・インスタンスで、「新規エージェントの作成」をクリックし、新しいエージェントの名前と説明を入力します。次に、「 作成 」ボタンをクリックします。

「Create agent locally」を実行しているwatson Orchestrateの製品画面

4.「ツールセット」タブで、「ツールの追加」ボタンをクリックします。「ローカル・インスタンス」を選択して既にインポートされたMCPサーバーを追加し、インポートされたMCPサーバーに対応するボックスにチェックマークを付け、「エージェントに追加」をクリックします。

MCPサーバーをツールとして追加する方法を示すスクリーンショット

5. チャットを開始しましょう。

ツールとしてのMCPサーバーとのエージェント・チャット

オプション2:JSONとしてインポート

MCPサーバーとしてフローをインポートする代わりの方法として、ADKを使用して、エクスポートされたJSONファイルとしてフローをインポートできます。

1.このアプローチは、シンプルなフローに最適です。デモを目的として、このフローを使用してみましょう。

Langflow内のarXivツール

共有」ボタンをクリックし、「エクスポート」を選択して、フローをJSONにエクスポートします。ツールの名前と説明を自由に入力します。ツールの名前には半角英数字とアンダースコアのみを使用する必要があり、数字またはアンダースコアから始めることはできません。

2. 新しくエクスポートしたJSONファイルをtools フォルダに追加します。

3. 以下のコマンドを実行して、フローをwatsonx Orchestrateにインポートします。

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

4. ツールとしてLangflowフローをインポートした後の次のステップは、それをエージェント・システムに接続することです。このステップは、watsonx Orchestrate UIで新しいエージェントを作成するか、次のエージェント定義をagentsフォルダーの新しいarxiv_agent.ymlファイルにコピーすることによって実行できます。

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

次に、以下を実行してシンプルなエージェントをインポートします。

orchestrate agents import -f agents/arxiv_agent.yml

5. ローカルで実行されているwatsonx OrchestrateのチャットUIのブラウザーを更新して、変更が反映されていることを確認します。「エージェント」ドロップダウン・メニューで「arXiv Agent」を選択し、arXivツールの使用を必要とする質問を投げかけてみてください。

例のプロンプト:「Find me 5 research papers on quantum computing.」

アウトプット:

ローカルのarXivエージェントとのチャット

成功です。エージェントは、このユーザーのクエリーに対してarxivツールを呼び出す必要があると判断しました。ツールのアウトプットは、崩壊した推論フローとチャット・ウィンドウに応答として表示されます。

まとめ

このチュートリアルにより、Langflowとwatsonx Orchestrateを活用して、堅牢で拡張性が高く、エンタープライズ対応のエージェントを構築するための必須スキルが身に付きました。IBM Cloudとともに、Software as a Service(SaaS)としてwatsonx Orchestrateを使用することによる、MCPサーバーとしてのエージェント型LangFlowフローのインポート方法について学びました。また、IBM watsonx Orchestrate Agent Development Kit(ADK)をローカルで使用する際に、基本的なLangFlowフローをインポートする方法についても理解できました。ステップ・バイ・ステップの手順に従うことで、カスタム・ツールや事前構築されたツールを呼び出してユーザーのクエリーを解決するエージェントを設計、開発、およびデプロイする方法を学びました。Langflowの直感的なビジュアル・インターフェースを使用して複雑なワークフローを作成し、watsonx Orchestrateによってtheseエージェントを効率的に管理および拡張できるようになりました。次のステップとして、実世界のユースケースに取り組むことで、このチュートリアルで得た知識を適用してください。自動化によってメリットを得られる可能性のある、組織内の特定のビジネス上の問題またはプロセスを選択し、それを解決するためのLangflowおよびwatsonx Orchestrateベースのソリューションを設計します。この実践的な経験により、理解が確固たるものになり、さらなる改善や探索のための領域を特定するのに役立ちます。

問題が発生した場合や質問がある場合は、ドキュメンテーションを確認してください。最も一般的な問題は、次のトラブルシューティング・ガイドで説明されています。他のユーザーが同様の問題に直面していないか、GitHubの問題を確認することもできます。

執筆者

Anna Gutowska

AI Engineer, Developer Advocate

IBM

関連ソリューション
IBMのAIエージェント開発

開発者が、IBM watsonx.aiを使用してAIエージェントの構築、デプロイ、および監視を行えるようにします。

 

watsonx.aiの詳細はこちら
人工知能ソリューション

業界をリードするIBMのAI専門知識とソリューション製品群を使用すれば、ビジネスにAIを活用できます。

AIソリューションはこちら
AIコンサルティングとサービス

AIの導入で重要なワークフローと業務を再構築し、エクスペリエンス、リアルタイムの意思決定とビジネス価値を最大化します。

AIサービスはこちら
次のステップ

事前構築済みのアプリケーションとスキルをカスタマイズする場合でも、AIスタジオを使用してカスタム・エージェント・サービスを構築し、デプロイする場合でも、IBM watsonxプラットフォームが対応します。

  1. watsonx Orchestrateの詳細はこちら
  2. watsonx.aiの詳細はこちら
脚注

1 Satyadhar Joshi. 「Review of Autonomous Systems and Collaborative AI Agent Frameworks.」 International Journal of Science and Research Archive、vol. 14、no. 2、2025年2月28日、961~972ページ、https://ijsra.net/content/review-autonomous-systems-and-collaborative-ai-agent-frameworks

2 「エージェント|Langflowドキュメンテーション」Langflow.org、2025年、docs.langflow.org/components-agents。

3 「IBM | Langflowドキュメンテーション」Langflow.org、2025年、docs.langflow.org/bundles-ibm。

4 「データ|Langflowドキュメンテーション」Langflow.org、2025, docs.langflow.org/components-data。

5 「arXiv|Langflowのドキュメンテーション」Langflow.org、2025, docs.langflow.org/bundles-arxiv。

6「コンポーネントの概要 | Langflow ドキュメンテーション」Langflow.org、2025, docs.langflow.org/concepts-components。

7 「Alpha Vantage MCP for Stock Market Data.」 Alphavantage.co、2025年、mcp.alphavantage.co/。