🙆‍♀️

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から入手可能です。
https://github.com/langflow-ai/langflow

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 をベースに作成していきます。
https://github.com/ragieai/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であり予期せぬエラーが発生することはありますので、ご注意ください。

関連記事

https://zenn.dev/crisp22/articles/e9ff79c7028a22

Discussion