2026年3月更新 ワークフロービルダー ノーコード

Difyワークフローガイド2026: AI自動化パイプラインの構築

Difyワークフローはドラッグ&ドロップでLLM、データベース、API、コードを接続できるビジュアルなノードベースのAIパイプラインです。このガイドでは各ノードタイプを説明し、最初のワークフロー構築を案内し、3つの実証済みパイプライン例を示します。

Difyワークフローとは?

Difyワークフローは、ノードを接続して多段階AIタスクを自動化するビジュアルパイプラインビルダーです。n8nやZapierのようなものですが、AIネイティブに構築されており、LLMの呼び出し、ナレッジベースの検索、構造化出力の処理に特化したファーストクラスのノードを備えています。

チャットボット(会話ごとにラウンドバイラウンドで応答する)と異なり、ワークフローは定義された入力から定義された出力まで固定パイプラインを実行します。起動すると、各ノードを順番(または並列)に実行して結果を提供します。これにより、自動化、ドキュメント処理、データエンリッチメント、および決定論的に実行すべきプロセスに最適です。

内部的にDifyワークフローは有向非循環グラフ(DAG)エンジンを使用しています。各ノードは上流ノードの出力を変数として受け取り、処理して結果を渡します。完全な可観測性 — ノードごとの実行ログ、レイテンシ、トークン数 — すべて組み込まれています。

ビジュアルドラッグ&ドロップキャンバス
AIネイティブLLMノード
RAG Knowledge Retrieval統合
PythonとJavaScriptコードノード
外部APIへのHTTPリクエスト
条件分岐(If/Else)
完全な実行可観測性
自動化のためのREST APIトリガー

コアノードタイプ

すべてのDifyワークフローはこれらの基本ノードタイプで構築されます。各ノードを理解することが効果的なパイプライン開発の鍵です。

スタート

すべてのワークフローのエントリーポイント。入力変数を定義します — たとえばarticle_textというテキストフィールド、ファイルアップロード、またはURL。後続のすべてのノードがこれらの変数にアクセスできます。

ヒント: 入力は最小限かつ型付きに保ってください。文字列には「text」、数値入力には「number」、ドロップダウンには「select」を使用。

LLM

中央のAIノード。設定されたモデル(GPT-4o、Claude、Gemini、Llamaなど)をシステムプロンプトとユーザープロンプトで呼び出します。上流ノードの変数は{{variable_name}}で埋め込めます。

ヒント: 下流ノードがLLMレスポンスをプログラム的に解析する必要がある場合は、Structured Output(JSONスキーマ)モードを使用してください。

Knowledge Retrieval

ベクトル類似度(RAG)でDifyナレッジベースを検索します。検索クエリを渡すと最も関連性の高いドキュメントチャンクを返します。取得したコンテキストをLLMノードに接続して根拠のある事実的な回答を得られます。

ヒント: コンテキストウィンドウに基づいてTop-Kパラメーター(取得するチャンク数)を設定してください。通常3〜5が最適です。

コード

ワークフロー内でPythonまたはJavaScriptを直接実行します。JSONの解析、文字列の変換、値の計算、配列のフィルタリング、またはスクリプトができることすべてに使用できます。上流ノードの入力変数はローカル変数として利用可能です。

ヒント: コードノードはサンドボックス環境で実行されます。ネットワークアクセスなし — 外部呼び出しにはHTTPリクエストノードを使用してください。

HTTPリクエスト

任意のREST API呼び出しを実行します — GET、POST、PUT、DELETE。ワークフロー変数でヘッダー、クエリパラメーター、リクエストボディを設定できます。レスポンス(JSON、テキスト、または生データ)は下流ノードで利用可能です。

ヒント: 機密APIキーはノード設定にハードコードせず、Dify環境変数に保存してください。

If/Else

条件分岐。任意の式(文字列比較、数値しきい値、正規表現マッチング、含むチェック)を評価し、異なるブランチにワークフローをルーティングします。複雑なルーティングロジックのために複数の「Else If」条件を追加できます。

ヒント: エラー処理にIf/Elseを使用してください — たとえばLLMの信頼度が低い場合は、不確実な結果ではなくフォールバック回答にルーティングします。

テンプレート変換

Jinja2テンプレートでデータを変換・フォーマットします。複数の変数を文字列に結合し、データをフォーマットし、リストを繰り返し処理し、完全なコードノードなしで条件ロジックを適用できます。

ヒント: 複数の上流出力をLLMノードに渡す前に組み合わせる動的なプロンプトの作成に最適です。

変数アグリゲーター

複数の並列ブランチからの出力を単一の変数にマージします。ワークフローが並列パス(例:2つの異なるLLMを同時に呼び出す)に分かれ、Endノードの前に結果を結合する必要がある場合に不可欠です。

ヒント: 「array」モードを使用してすべてのブランチ出力をリストに収集し、コードノードで処理してください。

エンド

終了ノード。ワークフローが返すもの — 1つまたは複数の出力変数を定義します。APIトリガー時、これらの出力がJSONレスポンスで返されます。Chatflowで使用する場合、Endノードのコンテンツがユーザーに表示されます。

ヒント: 複数のEndノード(If/Elseブランチごとに1つ)を持ち、ルートに応じて異なる出力を返すことができます。

最初のワークフローを構築する

シンプルな記事要約器を構築しましょう — AIパイプラインの「Hello World」です。記事テキストを入力として受け取り、3ポイントのまとめを返します。

1

新しいワークフローアプリを作成

Dify Studioで「+アプリを作成」→「ワークフロー」を選択。「記事要約器」などの名前をつけて作成をクリック。空のStartノードとEndノードのあるキャンバスが表示されます。

2

Startノードを設定

Startノードをクリック。入力変数を追加:article_textという名前をつけ、タイプを「Paragraph」(長いテキスト)に設定。ワークフローをトリガーするときにユーザー(またはAPI呼び出し元)が提供するものです。

3

LLMノードを追加

キャンバスの「+」ボタンをクリック。LLMノードを追加。モデルを選択(例:GPT-4o Mini)。ユーザープロンプトフィールドに入力:次の記事をちょうど3つの箇条書きで要約してください。簡潔に。 {{article_text}}

4

Start → LLM → Endを接続

StartノードのOutputハンドルからLLMノードの入力に接続をドラッグ。次にLLMノードの出力をEndノードに接続。EndノードはLLMノードのtext変数を出力に設定します。

5

テスト

上部バーの「実行」をクリック。テストパネルが右に表示されます。article_textフィールドに任意の記事テキストを貼り付けて実行をクリック。出力と完全な実行トレース — ノードごとに、トークン数とレイテンシも確認できます。

構築したもの: Start(article_text入力)→ LLM(要約プロンプト)→ End(3ポイントのまとめ)。このパターンは任意のテキスト入力/テキスト出力パイプラインにスケールできます。

ワークフロー vs チャットボット vs エージェント — いつ何を使うか

Difyは3種類のアプリタイプを提供しています。適切な選択は重要です — 根本的に異なるユースケースに対応しています。

特徴 ワークフロー チャットボット エージェント
インタラクションモデル シングルラン: 入力→出力 多段階会話 動的ツール選択
決定論性 高い — 固定パイプライン 中間 — LLMが決定 低い — エージェントが決定
最適なケース 自動化、バッチ処理 カスタマーサポート、Q&A リサーチ、タスク達成
デバッグ性 優秀 — 完全なトレース 良い — 会話ログ 難しい — 動的ステップ
APIトリガー はい — RESTエンドポイント はい — Chat API はい — Chat API
Knowledge Retrieval はい — ノード経由 はい — コンテキスト経由 はい — ツール経由
外部API呼び出し はい — HTTPリクエストノード 限定的 — プラグイン経由 はい — ツール経由
並列実行 はい — ネイティブサポート いいえ いいえ
経験則: プロセスが毎回同じで、フローチャートが描けるなら、ワークフローを使用。ユーザーが行き来する会話が必要なら、チャットボットを使用。AIが自分でどのツールを使うかを決める必要があるなら、エージェントを使用。

ワークフローの3つの実践例

これらの3つのパイプラインは、最も一般的な実際のDifyワークフローパターンをカバーしています。いずれも検証済みで本番環境で使えます。

例1

コンテンツ要約パイプライン

任意の記事テキストを受け取り、見出し、3つの要点、1文の結論で構成された構造化されたまとめを作成します。コンテンツチーム、ニュースレター編集者、リサーチアシスタントに便利です。

Start (article_text) LLM (要約+構造化) End (まとめ)

LLMプロンプト: 「あなたはコンテンツ編集者です。次の記事から作成してください:(1)魅力的な見出し、(2)ちょうど3つの要点、(3)1文の結論。JSONとしてフォーマット。記事:{{article_text}}」

例2

カスタマーサポートトリアージ

入力されたサポートチケットをインテント(請求、技術、一般)で分類し、各カテゴリを専門のLLMレスポンスにルーティングします。これを使用するチームのエスカレーションを40〜60%削減します。

Start (ticket_text) LLM (インテント分類) If/Else (カテゴリでルーティング) LLM (専門回答) End

If/Elseロジック: intent == "billing"の場合 → 請求LLM(価格、返金ポリシーを知っている)。intent == "technical"の場合 → 技術LLM(製品ドキュメントを知っている)。それ以外 → 一般サポートLLM。

例3

ドキュメントQ&Aパイプライン

質問を受け取り、ナレッジベースから最も関連性の高いドキュメントチャンクを取得し、根拠のあるソースに基づいた回答のためにLLMに渡します。法的ドキュメント、技術マニュアル、社内Wikiに最適です。

Start (question) Knowledge Retrieval (Top-5チャンク) LLM (コンテキスト付き回答) End (回答)

LLMプロンプト: 「提供されたコンテキストのみを使って質問に答えてください。コンテキストに回答がない場合はそう言ってください。コンテキスト:{{retrieved_chunks}} — 質問:{{question}}」

本番環境でDifyワークフローを実行

Difyワークフローはセルフホスティングで最高のパフォーマンスを発揮します — 無制限の実行、カスタムコードノード、完全なデータプライバシー。Hetznerで月額€3.79から始められます。

Difyをセルフホスト → AIエージェントガイド RAGガイド