Difyワークフローガイド2026: AI自動化パイプラインの構築
Difyワークフローはドラッグ&ドロップでLLM、データベース、API、コードを接続できるビジュアルなノードベースのAIパイプラインです。このガイドでは各ノードタイプを説明し、最初のワークフロー構築を案内し、3つの実証済みパイプライン例を示します。
Difyワークフローとは?
Difyワークフローは、ノードを接続して多段階AIタスクを自動化するビジュアルパイプラインビルダーです。n8nやZapierのようなものですが、AIネイティブに構築されており、LLMの呼び出し、ナレッジベースの検索、構造化出力の処理に特化したファーストクラスのノードを備えています。
チャットボット(会話ごとにラウンドバイラウンドで応答する)と異なり、ワークフローは定義された入力から定義された出力まで固定パイプラインを実行します。起動すると、各ノードを順番(または並列)に実行して結果を提供します。これにより、自動化、ドキュメント処理、データエンリッチメント、および決定論的に実行すべきプロセスに最適です。
内部的にDifyワークフローは有向非循環グラフ(DAG)エンジンを使用しています。各ノードは上流ノードの出力を変数として受け取り、処理して結果を渡します。完全な可観測性 — ノードごとの実行ログ、レイテンシ、トークン数 — すべて組み込まれています。
コアノードタイプ
すべてのDifyワークフローはこれらの基本ノードタイプで構築されます。各ノードを理解することが効果的なパイプライン開発の鍵です。
すべてのワークフローのエントリーポイント。入力変数を定義します — たとえばarticle_textというテキストフィールド、ファイルアップロード、またはURL。後続のすべてのノードがこれらの変数にアクセスできます。
ヒント: 入力は最小限かつ型付きに保ってください。文字列には「text」、数値入力には「number」、ドロップダウンには「select」を使用。
中央のAIノード。設定されたモデル(GPT-4o、Claude、Gemini、Llamaなど)をシステムプロンプトとユーザープロンプトで呼び出します。上流ノードの変数は{{variable_name}}で埋め込めます。
ヒント: 下流ノードがLLMレスポンスをプログラム的に解析する必要がある場合は、Structured Output(JSONスキーマ)モードを使用してください。
ベクトル類似度(RAG)でDifyナレッジベースを検索します。検索クエリを渡すと最も関連性の高いドキュメントチャンクを返します。取得したコンテキストをLLMノードに接続して根拠のある事実的な回答を得られます。
ヒント: コンテキストウィンドウに基づいてTop-Kパラメーター(取得するチャンク数)を設定してください。通常3〜5が最適です。
ワークフロー内でPythonまたはJavaScriptを直接実行します。JSONの解析、文字列の変換、値の計算、配列のフィルタリング、またはスクリプトができることすべてに使用できます。上流ノードの入力変数はローカル変数として利用可能です。
ヒント: コードノードはサンドボックス環境で実行されます。ネットワークアクセスなし — 外部呼び出しにはHTTPリクエストノードを使用してください。
任意のREST API呼び出しを実行します — GET、POST、PUT、DELETE。ワークフロー変数でヘッダー、クエリパラメーター、リクエストボディを設定できます。レスポンス(JSON、テキスト、または生データ)は下流ノードで利用可能です。
ヒント: 機密APIキーはノード設定にハードコードせず、Dify環境変数に保存してください。
条件分岐。任意の式(文字列比較、数値しきい値、正規表現マッチング、含むチェック)を評価し、異なるブランチにワークフローをルーティングします。複雑なルーティングロジックのために複数の「Else If」条件を追加できます。
ヒント: エラー処理にIf/Elseを使用してください — たとえばLLMの信頼度が低い場合は、不確実な結果ではなくフォールバック回答にルーティングします。
Jinja2テンプレートでデータを変換・フォーマットします。複数の変数を文字列に結合し、データをフォーマットし、リストを繰り返し処理し、完全なコードノードなしで条件ロジックを適用できます。
ヒント: 複数の上流出力をLLMノードに渡す前に組み合わせる動的なプロンプトの作成に最適です。
複数の並列ブランチからの出力を単一の変数にマージします。ワークフローが並列パス(例:2つの異なるLLMを同時に呼び出す)に分かれ、Endノードの前に結果を結合する必要がある場合に不可欠です。
ヒント: 「array」モードを使用してすべてのブランチ出力をリストに収集し、コードノードで処理してください。
終了ノード。ワークフローが返すもの — 1つまたは複数の出力変数を定義します。APIトリガー時、これらの出力がJSONレスポンスで返されます。Chatflowで使用する場合、Endノードのコンテンツがユーザーに表示されます。
ヒント: 複数のEndノード(If/Elseブランチごとに1つ)を持ち、ルートに応じて異なる出力を返すことができます。
最初のワークフローを構築する
シンプルな記事要約器を構築しましょう — AIパイプラインの「Hello World」です。記事テキストを入力として受け取り、3ポイントのまとめを返します。
新しいワークフローアプリを作成
Dify Studioで「+アプリを作成」→「ワークフロー」を選択。「記事要約器」などの名前をつけて作成をクリック。空のStartノードとEndノードのあるキャンバスが表示されます。
Startノードを設定
Startノードをクリック。入力変数を追加:article_textという名前をつけ、タイプを「Paragraph」(長いテキスト)に設定。ワークフローをトリガーするときにユーザー(またはAPI呼び出し元)が提供するものです。
LLMノードを追加
キャンバスの「+」ボタンをクリック。LLMノードを追加。モデルを選択(例:GPT-4o Mini)。ユーザープロンプトフィールドに入力:次の記事をちょうど3つの箇条書きで要約してください。簡潔に。
{{article_text}}
Start → LLM → Endを接続
StartノードのOutputハンドルからLLMノードの入力に接続をドラッグ。次にLLMノードの出力をEndノードに接続。EndノードはLLMノードのtext変数を出力に設定します。
テスト
上部バーの「実行」をクリック。テストパネルが右に表示されます。article_textフィールドに任意の記事テキストを貼り付けて実行をクリック。出力と完全な実行トレース — ノードごとに、トークン数とレイテンシも確認できます。
ワークフロー vs チャットボット vs エージェント — いつ何を使うか
Difyは3種類のアプリタイプを提供しています。適切な選択は重要です — 根本的に異なるユースケースに対応しています。
| 特徴 | ワークフロー | チャットボット | エージェント |
|---|---|---|---|
| インタラクションモデル | シングルラン: 入力→出力 | 多段階会話 | 動的ツール選択 |
| 決定論性 | 高い — 固定パイプライン | 中間 — LLMが決定 | 低い — エージェントが決定 |
| 最適なケース | 自動化、バッチ処理 | カスタマーサポート、Q&A | リサーチ、タスク達成 |
| デバッグ性 | 優秀 — 完全なトレース | 良い — 会話ログ | 難しい — 動的ステップ |
| APIトリガー | はい — RESTエンドポイント | はい — Chat API | はい — Chat API |
| Knowledge Retrieval | はい — ノード経由 | はい — コンテキスト経由 | はい — ツール経由 |
| 外部API呼び出し | はい — HTTPリクエストノード | 限定的 — プラグイン経由 | はい — ツール経由 |
| 並列実行 | はい — ネイティブサポート | いいえ | いいえ |
ワークフローの3つの実践例
これらの3つのパイプラインは、最も一般的な実際のDifyワークフローパターンをカバーしています。いずれも検証済みで本番環境で使えます。
コンテンツ要約パイプライン
任意の記事テキストを受け取り、見出し、3つの要点、1文の結論で構成された構造化されたまとめを作成します。コンテンツチーム、ニュースレター編集者、リサーチアシスタントに便利です。
LLMプロンプト: 「あなたはコンテンツ編集者です。次の記事から作成してください:(1)魅力的な見出し、(2)ちょうど3つの要点、(3)1文の結論。JSONとしてフォーマット。記事:{{article_text}}」
カスタマーサポートトリアージ
入力されたサポートチケットをインテント(請求、技術、一般)で分類し、各カテゴリを専門のLLMレスポンスにルーティングします。これを使用するチームのエスカレーションを40〜60%削減します。
If/Elseロジック: intent == "billing"の場合 → 請求LLM(価格、返金ポリシーを知っている)。intent == "technical"の場合 → 技術LLM(製品ドキュメントを知っている)。それ以外 → 一般サポートLLM。
ドキュメントQ&Aパイプライン
質問を受け取り、ナレッジベースから最も関連性の高いドキュメントチャンクを取得し、根拠のあるソースに基づいた回答のためにLLMに渡します。法的ドキュメント、技術マニュアル、社内Wikiに最適です。
LLMプロンプト: 「提供されたコンテキストのみを使って質問に答えてください。コンテキストに回答がない場合はそう言ってください。コンテキスト:{{retrieved_chunks}} — 質問:{{question}}」
本番環境でDifyワークフローを実行
Difyワークフローはセルフホスティングで最高のパフォーマンスを発揮します — 無制限の実行、カスタムコードノード、完全なデータプライバシー。Hetznerで月額€3.79から始められます。