Langflowで簡単AIエージェント作成
はじめに
この記事では、Langflow 及び Langfuseに関する情報を発信していきます
末尾にはこの記事に関連する情報を記載しますので、興味があればご一読ください
対象者
とにかく簡単に、早く、AIエージェントを組んでみたい!
コードを書かずに、AIエージェントを組みたい!
AIエージェントの動きを、わかりやすく説明したい!
AIエージェントを用いた製品開発を加速させたい!
この記事を読むメリット
Langflowの基本的な使い方がわかります
MCPの設定及びLangflowでのMCPを実行する方法がわかります
Langflowで作成した処理をAPIやMCP Serverとして実行する方法がわかります
目次
・Langflow概要
・Langflowの環境構築
・Langflowの簡単な使い方
・MCPの設定
・LangflowでMCPを使用する方法
・その他Langflowの活用法
Langflow概要
概要
Langflowは、オープンソースのローコード/ノーコードツールであり、直感的なUIを通じてAIアプリケーションの構築を支援します。特に、LangChainベースのワークフローやRAG(検索拡張生成)アプリケーション、マルチエージェントシステムの開発に適しています。
主な機能
ビジュアルフロービルダー:React Flowをベースにしたドラッグ&ドロップUIで、LLM、プロンプトテンプレート、エージェント、ベクターストアなどのコンポーネントをキャンバス上に配置・接続できます。
コードエクスポート & API化:作成したフローはPythonコードやJSON/YAMLとしてエクスポートでき、そのままアプリケーションへ組み込み可能です。
多彩なプロバイダ & プラグイン:OpenAI、Anthropic、Watsonx.AIなど主要なLLMプロバイダをサポートし、FAISS、Chromaなどのベクターデータベースをプラグイン感覚で利用可能です。
Langflowの環境構築
Langflowは下記Gitから入手可能です。
DockerやCloud、UVなど、状況に応じて環境構築可能です。
Langflowは発展途上のツールですので、アップデートが頻繁に行われます。
個人的には、"UV"での環境構築をおすすめします。
# UVでLangflowをインストール
uv pip install langflow
# langflowの起動
LANGFLOW_WORKER_TIMEOUT=300 langflow run
Langflowの簡単な使い方
Langflowを立ち上げると以下のような画面が出ます。
"New Flow"をタップすると、新しいFlowを作成することができます。
ベースのFlowはいくつか用意されていて、用途に合わせて使い分けが可能です。
今回は、”Blank Flow”をタップして、ゼロから簡単なFlowを作っていきます。
新しいプロジェクト立ち上げ後、左のコンポーネントを確認します。
さまざまな機能を持つコンポーネントが格納されており、それらを組み合わせて意図するFlowを作成します。
まず、"Chat input"と"Chat output"を左のコンポーネントから選択します。
”+”をタップすることで、コンポーネントがフィールドに追加されます。
次に、”Agent”をタップして、Agentコンポーネントを呼び出します。
"Model Provider"をタップすることで、さまざまなモデルを選択可能です。
カーソルを引っ張り、"Agent"の出力を"Chat output"に繋げます。
次に、”Prompt”を呼び出し、”Agent”のシステムプロンプトを作成します。
”Template”をタップすると”Edit Prompt”が立ち上がり、指示プロンプトが記述できます。
# Role
You are an excellent search agent.
Gather information and create answers to user requests.
Please answer in Japanese.
# user requests
{input}
"{**}"を指定すると、”Prompt”コンポーネントに接続するポートが自動的に追加されます。
これによって、任意の入力ポートを自由に作成可能です。
あとは、"Chat input"を新しく作成したinputポートと”Agent”のinputポートに接続します。
次に、Agentが知識拡張するためのデータソースを接続します。
今回は、"Tools"にある"Tavily Search API"を使用します。
API kyeを入力後、"Tavily Search API"コンポーネントの右上にある”Tool Mode”をONにします。
”Tool Mode”をONにすることで、”Agent”のToolsポートに接続することができます。
以上で、AIエージェントフローの作成は完了です。
操作画面左上の”Playground"をタップすることで、簡単にチャット画面を作成できます。
ここで、先ほど作成したAIエージェントの振る舞いを確認できます。
LLMの種類にもよりますが、自然言語だけではなく、画像なども入力可能です。
これまで紹介したように、Langflowを用いることで簡単にAIエージェントを作成することが可能です。
慣れてくると、CrewAIなどのマルチエージェントフレームワークを使い、複雑なAIエージェントを簡単に作成することが可能です。
MCPの設定
MCPとは?
MCP(Model Context Protocol) は、大規模言語モデル(LLM)がデータソースや外部ツールとやり取りするための、共通プラットフォームみたいなものです。
この共通プラットフォームを使うことで、LLMが自由に任意の機能を呼び出すことができます。
引用:https://qiita.com/syukan3/items/f74b30240eaf31cb2686
簡単なMCPを作成して、Langflowで使ってみます。
MCPは、以下gitの fastapi-sse-mcp をベースに作成していきます。
git clone後、実際にSSEサーバーを立ち上げていきます。
# 仮想環境立ち上げ
uv sync --dev
source .venv/bin/activate
# 必要に応じて、Langflow立ち上げ
LANGFLOW_WORKER_TIMEOUT=300 langflow run
# SSEサーバーの立ち上げ
# 任意のポート番号を指定
uv run uvicorn app.main:app --reload --port 8007
LangflowでMCPを使用する方法
Langflowに戻り、"MCP Connection"を呼び出します。
Modelを"SSE"にして、”http://localhost:8007/sse”を入力します。
くるくるマークをタップするとActionで、main.pyに記述されている関数を選択できます。
Tool_Modeにすることで、簡単にAIエージェントに接続可能です。
MCPには、複数の関数をまとめることが可能です。
"MCP Connection"のピンク部分をタップすると、任意の関数のON/OFFを簡単に制御できます。
また、Slugをダブルクリックすると、main.pyに記述されている、Tool_call descriptionを編集可能です。
個人的な感想ですが、Tool_call descriptionを詳しく記述することで、LLMが精度よくTooL_callしてくれます。
LLMがTool_callする際、任意の関数が要求するデータ型(Args)はLLMが自動で判断して対応してくれます。
そのため、Argsを細かく記載することで、複雑なデータ処理をLLMが実行してくれます。
その他Langflowの活用法
プロジェクト自体をMCPサーバー化する
作成したプロジェクトをMCPサーバー化することができます。
例えば、先ほどまで作成したプロジェクトを"sample1"として保存します。
"MCP Connection"を呼び出し、SSEを選択後MCP SSE URLがデフォルト状態のまま、くるくるボタンをタップします。
すると、ローカルに保存されているプロジェクトをMCPサーバーとしてMCPから選択することができます。
APIアクセスでプロジェクトを実行する
作成したプロジェクトは、APIで実行可能です。
右上のPublishからAPI accessを選択することで、作成したプロジェクトをAPI化して、外部から実行することができます。
プロジェクト自体をMCPサーバー化してMCP hostsで使用する
Claude desktopやCursorなどのMCP hostsに登録をして、使用することが可能です。
右上のPublishからMCP Serverを選択することで、サーバー設定を出力することができます。
これを、MCP hostsに設定することで、作成したプロジェクトをTool_callすることができます。
まとめ
Langflowでは、AIエージェントを簡単に作成することが可能です。
MCPなどの機能も利用可能なため、柔軟性高く、クイックなAIエージェントの開発が可能です。
ただし、Langflowは発展途上のOSSであり予期せぬエラーが発生することはありますので、ご注意ください。
関連記事
Discussion