第11章 ツール・プラグイン・API連携
この章では、Difyのアプリを外部のサービス・システムとつなぐ方法を説明します。つなぎ方は、方向で見ると次の2つに分かれます。
- Difyから外部を呼ぶ:ツール・プラグインで機能を追加して呼び出す(11-1・11-2)。ワークフローから外部の窓口(API)を直接呼び出す(11-3)。
- 外部からDifyが呼ばれる:作ったアプリをAPIとして公開し、外部のシステムから実行してもらう(11-4)。
この章で扱わない内容は、次の章で説明します。
- ノードをキャンバスに置く・線でつなぐ操作の詳細は第7章で説明します。
- ツール以外の各ノードの仕様は第10章で説明します。
- エラーが出たときの切り分けと対処は第14章で説明します。
なお、この章の機能の多くは、Difyから外部のサービスへ、または外部のシステムからDifyへ、ネットワーク接続できることが前提です。庁内ネットワークから外部に接続できるかは環境によります。 インターネットに直接つながらない環境(閉域網など)では使えない機能があるため、着手する前に情報担当部署へ確認してください。
図11-1 外部との連携は「呼ぶ」と「呼ばれる」の2方向(左=ツール・HTTPリクエストで外部を呼ぶ、右=APIとして外部から呼ばれる)
11-1. ツールとは
ツール(アプリから呼び出す外部機能)は、AIモデルだけではできないことをアプリに任せるための部品です。たとえばWeb検索で最新の情報を調べる、外部サービスのデータを取ってくる、といった処理は、AIモデル単体ではできず、ツールを呼び出して行います。
序章0-4のとおり、ノードがキャンバスに直接置く「処理の流れを作る部品」であるのに対し、ツールは「ノードやエージェントの中から呼び出す機能」です。この節では、ツールの種類と、ワークフローの中でツールを使う流れを説明します。
ツールの種類
公式ドキュメントでは、ツールを次の4種類に分けています。種類の名前は公式ドキュメント(英語版)の表記で、日本語画面での表記は環境・バージョンにより異なることがあります。
| 種類 | 内容 |
|---|---|
| ツールプラグイン(Tool Plugin) | マーケットプレイス(プラグインの公式配布サイト)から導入する、できあいのツール。外部サービスの認証が必要なもの(Google・GitHubへの接続など)は、使う前に認証情報の設定が必要 |
| カスタムツール(Swagger API) | できあいのツールにない外部サービスを、そのサービスのAPI仕様書(OpenAPI形式=APIの呼び出し方を決まった形式で書いたファイル)を取り込んでツールにする |
| ワークフロー(Workflow) | 自分で作ったワークフローを、ほかのアプリから呼び出せるツールにする(利用者からデータを受け取るユーザー入力のノードで始まるワークフローが対象) |
| MCP | 外部のMCPサーバー(AIアプリ・AIツール同士をつなぐ共通規格=MCPで機能を提供するサーバー)につないで、そのツールを取り込む |
本書で主に使うのは、1つ目のツールプラグインです。導入のしかたは11-2で説明します。
ワークフローの中でツールを使う流れ
前提:ワークフローまたはチャットフローの編集画面を開いていること。使いたいツール(プラグイン)が導入済みであること(未導入の場合は11-2へ)。
- キャンバスのノード追加の操作で、一覧から「ツール」の区分を開きます。
- 使いたいツールと、その中の機能(アクション)を選びます。選ぶと、ツールのノードとしてキャンバスに置かれます。
- 認証が必要なツールでは、認証情報を設定します(設定済みの認証情報を選ぶか、新しく作ります)。
- ツールごとの設定項目(検索する言葉など)に、値を直接入れるか、前のノードの変数(ノード間で受け渡すデータ)を指定します。
- テスト実行で動きを確かめます(第2章2-6)。
完了状態:ツールのノードがキャンバスに置かれ、前後のノードと線でつながり、テスト実行で結果が返ってくる。
ノードの追加・接続・変数の指定の細かい操作は第7章を参照してください。また、エージェント(AIがツールの使い方を自分で判断して実行するアプリ・序章0-2)では、使ってよいツールをアプリに登録しておくと、AIが必要に応じて呼び出します。
11-2. プラグインとは
プラグイン(Difyに機能を追加する部品)を導入すると、使えるツールやAIモデルが増えます。Dify本体には基本の機能だけが入っており、外部サービスとの連携機能は、必要なものをプラグインとして後から追加する仕組みです。
なお、公式ドキュメント(クラウド版)では、プラグインを含む外部接続の仕組み全体を「統合(Integrations)」というまとまりで説明しています。画面上の表記(「プラグイン」「ツール」「統合」など)は環境・バージョンにより異なります。
プラグインの種類
マーケットプレイスでは、プラグインが次の区分で掲載されています。
| 区分 | 内容 |
|---|---|
| モデル(Models) | アプリを動かすAIモデルを追加する(文章を作るモデル・埋め込みモデル・Rerankなど) |
| ツール(Tools) | エージェントやワークフローから呼び出せる機能を追加する(11-1) |
| データソース(Data Sources) | ナレッジ(保管庫)に取り込む外部の資料元を追加する |
| トリガー(Triggers) | 外部の出来事を合図に、ワークフローを自動で始める(序章0-2) |
| エージェント戦略(Agent Strategies) | エージェントの判断の進め方を追加する |
| 拡張機能(Extensions) | Difyに独自の受け口(外部から呼び出せるHTTPの窓口)を追加する。高度な用途向け |
このほか、マーケットプレイスの画面には「バンドル(Bundles)」という区分の表示があります。
導入の3つの経路
プラグインは、次の3つの経路で導入できます。
| 経路 | 内容 |
|---|---|
| マーケットプレイス | 公式・パートナーが提供し、動作確認と保守が行われているプラグインを導入する。通常はこの経路を使う |
| GitHub | 公開されているリポジトリ(プログラムの置き場所)を指定して導入する |
| ローカルファイル | 手元のパッケージファイル(ZIP形式)を取り込んで導入する。自作・内部利用向け |
本書ではマーケットプレイスからの導入だけを扱います。GitHub・ローカルファイルからの導入は、提供元の確認など安全面の判断が必要になるため、情報担当部署と相談のうえで行ってください。
マーケットプレイスからの導入手順
前提:Difyにログインしていること。プラグインを導入できる権限があること(誰が導入できるかは、ワークスペースの権限設定で「全員」「管理者のみ」「導入不可」から制限されている場合があります。導入の操作が表示されないときは管理者に確認してください)。
- Difyの画面から、プラグイン(統合)の管理画面を開きます。開き方・画面の名称はバージョンにより異なります(序章0-3のメニュー構成も参照)。
- マーケットプレイスを開き、区分や検索で目的のプラグインを探します。マーケットプレイスのサイト(marketplace.dify.ai)から直接探すこともできます。
- 目的のプラグインの画面で、インストール(導入)の操作を行います。
- 外部サービスの認証が必要なプラグインでは、認証情報(そのサービスのAPIキーなど)を設定します。認証情報は、連携先のサービス側で別途取得しておきます。

完了状態:導入したプラグインの機能が使える状態になっている(ツールのプラグインなら、11-1のノード追加の「ツール」一覧に表示される)。
導入時の注意
- 外部サービスに接続するプラグインは、Difyへの導入とは別に、そのサービス側の契約・アカウント・APIキーが必要な場合があります。費用が発生するサービスもあるため、導入前に確認してください。
- どのプラグインを導入してよいか(外部サービスへ庁内のデータを送ってよいか)は、お使いの環境のルールに従ってください。
- セルフホスト版では、管理者の設定により導入できるプラグインが制限されている場合があります。
11-3. HTTPリクエストで外部APIを呼ぶ
HTTPリクエスト(外部の窓口=APIに接続してデータを送り受けするノード)を使うと、できあいのツールが用意されていない外部サービスや庁内システムでも、APIさえ公開されていればワークフローから直接呼び出せます。
この節の機能は、Difyから呼び出し先へネットワーク接続できることが前提です。庁内ネットワークから外部に接続できるかは環境によるため、事前に情報担当部署へ確認してください。
主な設定項目
| 項目 | 内容 |
|---|---|
| メソッド | 呼び出しの種類。データを取ってくるならGET、データを送るならPOSTなど |
| URL | 呼び出し先のURL(エンドポイント=APIの呼び出し先の住所にあたる文字列) |
| ヘッダー | 呼び出しに付ける付加情報(認証情報やデータ形式の指定など) |
| クエリパラメータ | URLに付け加える条件の項目(検索の条件など) |
| ボディ | 送る本文データ(POSTなどでデータを送るときに使う) |
| 認証 | 認証なし、またはAPIキーによる認証(Basic・Bearer・カスタムの3形式から、呼び出し先の仕様に合わせて選ぶ) |
| タイムアウト | 応答を待つ時間の上限(接続・読み取り・書き込みのそれぞれに設定できる) |
- URL・ヘッダー・ボディには、
{{変数名}}の形で前のノードの変数を差し込めます(例:利用者の入力をそのまま検索条件にする)。 - 実行結果として、応答の本文・ステータスコード(処理結果を表す3桁の番号。200番台は成功)・ヘッダー・ファイルが出力され、後続のノードで使えます。
再試行は必ず上限を決める
呼び出しに失敗したときは、自動で再試行させることができます。再試行は、回数の上限(最大10回)と間隔(最大5000ミリ秒=5秒)を決めて設定する仕組みです。上限は小さめの値から始めてください。呼び出し回数に応じて課金される外部サービスでは、再試行した分も呼び出し回数に数えられます。
再試行してもなお失敗したときの動きは、エラー処理の設定で決められます(失敗したら別の流れに進める、など)。エラーの切り分けと対処は第14章で説明します。
APIキーの扱い
呼び出し先のAPIキーは、ノードの認証の設定欄に入力します。次の点を守ってください。
- APIキーを、手順書・共有ファイル・DSLファイルを共有する文書などに書き残さない。キーそのものは、所属で決めた安全な保管場所(パスワード管理の仕組みなど)で別に管理する。
- キーが漏れた可能性があるときは、発行元のサービスで速やかに無効化・再発行する。
設定の手順
前提:ワークフローまたはチャットフローの編集画面を開いていること。呼び出し先APIの仕様(URL・メソッド・必要なヘッダー・認証方法)とAPIキーが手元にあること。Difyから呼び出し先へ接続できることを確認済みであること。
- ノード追加の一覧からHTTPリクエストのノードを選んでキャンバスに置き、前のノードと線でつなぎます(操作は第7章)。
- メソッドと、呼び出し先のURLを入力します。
- 呼び出し先の仕様に合わせて、ヘッダー・クエリパラメータ・ボディを設定します。前のノードの値を使う箇所は
{{変数名}}で差し込みます。 - 認証の形式を選び、APIキーを設定します。
- タイムアウトと、再試行の回数の上限・間隔を設定します。
- テスト実行し、ステータスコードが成功(200番台)で、応答の本文が想定どおりかを確認します。

完了状態:テスト実行で成功の応答が返り、応答の本文が後続のノードに渡っている。
11-4. 作ったアプリをAPIとして使う
ここまでは、Difyから外部を呼ぶ方法でした。この節は逆向きで、作ったアプリをAPI(外部のシステムから機能を呼び出す窓口)として公開し、外部から実行してもらう方法です。公開の4形式(第2章2-7)のうちの「API」にあたります。たとえば、庁内の既存システムや別の業務ツールから、Difyで作った要約ワークフローを呼び出す、といった使い方ができます。
APIキーを発行する
アプリをAPIとして呼び出すには、アプリごとのAPIキー(呼び出しを許可された相手であることを示す鍵の文字列)が必要です。
前提:呼び出したいアプリが作成済みであること。
- スタジオで対象のアプリを開き、APIアクセスの画面に切り替えます(アプリ内の画面構成は第9章)。
- APIキーを新しく作成します。
- 表示されたキーの文字列を控え、所属で決めた安全な保管場所で管理します。
完了状態:APIキーの文字列を取得し、安全な場所に保管している。
APIキーの扱いは、11-3の注意に加えて次の点を守ってください。公式ドキュメントでも、キーは呼び出す側のシステムのサーバー内だけで使い、Webページの画面側のプログラムや配布するアプリに埋め込まないよう明記されています(埋め込むと第三者に取り出されて悪用されるおそれがあります)。
呼び出し先と呼び出し方
- 呼び出し先のURLの共通部分(ベースURL)は、クラウド版では
https://api.dify.ai/v1です。セルフホスト版では、お使いの環境のURLになります。 - 呼び出すときは、ヘッダー「Authorization」に、
Bearerに続けてAPIキーを付けます。 - ベースURLから先の呼び出し先は、アプリの種類(チャット系・ワークフロー・テキストジェネレーターなど)ごとに異なります。自分のアプリで使える呼び出し先と項目の一覧は、そのアプリのAPIアクセスの画面と公式ドキュメントで確認できます。
最小の呼び出し例を1つ挙げます。アプリの基本情報を取得する呼び出しを、curl(コマンドラインからAPIを呼び出す道具)で行う例です。あなたのAPIキー の部分を、発行したキーに置き換えて実行します。
curl https://api.dify.ai/v1/info \
-H "Authorization: Bearer あなたのAPIキー"
実際のプログラムに組み込むときは、キーをプログラムの中に直接書かず、環境変数(プログラムの外に別置きした設定値)から読み込ませてください。コマンドの実行履歴や共有するプログラムにキーが残ることを防げます。
完了状態:呼び出しに対して、アプリの情報が応答として返ってくる。認証エラーが返る場合は、キーの値とヘッダーの書き方を確認します(そのほかのエラーは第14章)。
応答の返り方(2つの方式)
ワークフローなどの実行APIでは、応答の返り方を2つの方式から選べます。
| 方式 | 内容 |
|---|---|
| ブロッキング | 処理が終わってから、結果を一括で返す。呼び出す側の作りが簡単 |
| ストリーミング | 実行しながら、途中経過を少しずつ返す。長い処理でも待たされている感じが少ない |
どちらを使うかは、呼び出す側のシステムの作りに合わせて決めます。
公開するときの注意
- APIキーを渡した相手は、そのアプリを外部から実行できます。誰にキーを渡すかを管理し、不要になったキーは整理してください。
- 呼び出す側のシステムからDify(クラウド版では api.dify.ai)へ接続できることが前提です。庁内システムから接続できるかは環境によるため、情報担当部署へ確認してください。
まとめ:3つのつなぎ方の使い分け
| やりたいこと | 使う機能 | 節 |
|---|---|---|
| Web検索など、できあいの外部機能をアプリで使いたい | ツール(プラグインを導入して呼び出す) | 11-1・11-2 |
| できあいのツールがない外部サービス・庁内システムのAPIを呼びたい | HTTPリクエストのノード | 11-3 |
| 外部のシステムから、作ったアプリを実行したい | アプリのAPI公開(APIキー発行) | 11-4 |
次の章では、アプリの設計内容を書き出したDSLファイルをAIに作らせて取り込む方法を説明します(第12章「AIにDSLを作らせてインポート」・本マニュアル)。
出典一覧
本章の記述の根拠です(いずれも確認日:2026-08-14)。
| 内容 | 出典 |
|---|---|
| ツールの4種類(ツールプラグイン・Swagger API・ワークフロー・MCP)と認証の事前設定 | https://docs.dify.ai/en/cloud/use-dify/workspace/tools.md |
| ワークフロー内でのツールノードの追加・認証・設定の流れ | https://docs.dify.ai/en/cloud/use-dify/nodes/tools.md |
| プラグイン(統合)の種類・導入の3経路(マーケットプレイス・GitHub・ローカルファイル)・導入権限の3段階 | https://docs.dify.ai/en/cloud/use-dify/workspace/plugins.md |
| 統合の種類の日本語説明(モデルプロバイダー・ツール・データソース・トリガー・エージェント戦略・拡張ほか) | https://docs.dify.ai/ja-jp/plugins/introduction |
| マーケットプレイスの区分表示(Models・Tools・Data Sources・Triggers・Agent Strategies・Extensions・Bundles) | https://marketplace.dify.ai/ |
| HTTPリクエストノードの設定項目・認証の形式・変数差し込み・出力・タイムアウト・再試行の上限(最大10回・間隔最大5000ミリ秒)・エラー処理 | https://docs.dify.ai/en/cloud/use-dify/nodes/http-request.md |
| APIキーの発行・ベースURL(api.dify.ai/v1)・Authorization: Bearer・キーをサーバー側だけで使う注意・/v1/info の呼び出し例・アプリ種別ごとのAPI | https://docs.dify.ai/en/api-reference/guides/get-started.md |
| ワークフロー実行APIのストリーミング/ブロッキングの違い | https://docs.dify.ai/en/api-reference/guides/workflow.md |
| 公開の4形式(Webアプリ・API・サイト埋め込み・MCPサーバー) | https://docs.dify.ai/en/cloud/use-dify/publish/README.md |