30秒でわかるこの記事のポイント
- ワークフローの基本は「Start→LLM→End」の3ノード構成
- If-Else・Iteration・Loopで複雑なビジネスロジックも視覚的に構築可能
- エラーハンドリング(Retry・Fail Branch)で本番運用に耐えるフローを設計できる
前回の記事では、Difyが「書き込み・複数ステップ・定期実行」というChatGPTの3つの壁を突破するプラットフォームであることをお伝えしました。
では、実際にその「複数ステップ」はどのように設計するのでしょうか?
この記事では、Difyの中核機能である**ワークフロー(Workflow)**について、15種類以上あるノードの中から「まず知るべき3つ」と「実務で使える組み合わせパターン」を解説します。
Data Insightでは、AIツールを導入すること自体が目的ではなく、業務に関わる人々との対話を通じて最適な自動化を設計することが重要だと考えています。ワークフロー機能は、その対話を形にするためのキャンバスです。
§ 1. ワークフローとは ─ Chatflowとの違い
Difyで作成できるアプリには、大きく2つの種類があります。
§ Workflow(ワークフロー)
「1回で答えを返す」処理です。
- 入力を受け取る → 処理する → 結果を出力する
- 例:議事録を受け取って、タスクリストを自動生成する
- 例:複数のPDFを受け取って、比較レポートを作成する
§ Chatflow(チャットフロー)
「何度もやり取りする」対話です。
- ユーザーとの会話を通じて問題を解決する
- 例:カスタマーサポートボット
- 例:社内FAQに答えるアシスタント
この記事ではWorkflowに集中します。 Chatflowについては、次の記事で詳しく解説します。
§ 2. まず知るべき「核心3ノード」
Difyのワークフローには15種類以上のノードがありますが、最初に覚えるべきは3つだけです。
「全部覚えないと使えないのでは?」という不安は不要です。この3つを理解すれば、基本的なワークフローはすぐに作れます。
§ Start ノード ─ すべての始まり
ワークフローの入り口を定義するノードです。入力の受け取り方を3種類から選択できます。
| 入力タイプ | 説明 | 用途例 |
|---|---|---|
| ユーザー入力 | フォームからのテキスト・ファイル | Webアプリからの手動実行 |
| Webhook | 外部システムからのHTTPリクエスト | Slackやメールとの連携 |
| スケジュール(Cron式) | 定期的な自動実行 | 毎朝8時のニュース要約 |
※ファイルを受け取る場合は、Startノードの設定で「ファイルアップロード」をONにし、後続のノードで変数(userinput等)として参照します。
例:Cron式「0 8 * * 1-5」= 平日の朝8時に実行
§ LLM ノード ─ AIの頭脳
ワークフローの中心となるノードです。ここでAIモデルに指示を出し、処理を実行させます。
設定できる主な項目:
- モデル選択: GPT-5、Claude 4.5、Gemini 3など、目的に応じて選択
- プロンプト設定: AIへの指示文(システムプロンプト・ユーザープロンプト)。前段のノード出力は
{{ variable }}で参照します。 - 構造化出力(JSON強制): 出力形式を明確に定義して、後続処理で扱いやすくする
- コンテキスト注入: RAGで取得した社内データを追加情報として渡す
§ End ノード ─ 結果の出口
ワークフローの最終出力を定義するノードです。
LLMノードで生成された結果を、どのような形式で返すかを設定します。API経由で呼び出す場合、このノードで定義した内容がレスポンスとして返されます。
基本構成:Start → LLM → End
これだけで、入力を受け取ってAIが処理し、結果を返すワークフローが完成します。
§ 3. 「分岐と反復」で複雑なロジックに対応
基本の3ノードを理解したら、次は条件分岐と繰り返し処理を追加して、より複雑なビジネスロジックを実現しましょう。
§ If-Else ノード ─ 条件によって処理を分ける
入力内容や前のノードの結果に応じて、処理の流れを分岐させます。
使用できる条件演算子:
contains(含む)equals(等しい)is empty(空である)AND/OR(複数条件の組み合わせ)
例:問い合わせ内容に「返品」が含まれる場合は返品対応フローへ、
そうでなければ一般問い合わせフローへ
§ Iteration ノード ─ リストの各要素に同じ処理を適用
配列(リスト)データを受け取り、各要素に対して同じ処理を繰り返します。
| 実行モード | 説明 | 適した場面 |
|---|---|---|
| 並列実行 | 複数の要素を同時に処理 | 独立した処理(各ファイルの要約など) |
| 順次実行 | 1つずつ順番に処理 | 順序が重要な処理(連番付けなど) |
例:5つのPDFファイルを受け取り、それぞれの要約を並列で生成
§ Loop ノード ─ 条件が満たされるまで繰り返す
指定した条件が満たされるまで、同じ処理を繰り返します。
例:記事の品質スコアが80点以上になるまで、AIに推敲を繰り返させる
§ 4. データ処理と外部連携のノード
ワークフローをより実用的にするために、データ変換や外部システムとの連携を行うノードも用意されています。
§ Code ノード(Python / JavaScript)
AIだけでは難しい複雑な計算やデータ変換を、コードで実行します。
- サンドボックス環境で安全に実行
- 標準ライブラリの利用が可能
- 数値計算、日付処理、文字列操作など
def calculate_growth(current, previous):
return ((current - previous) / previous) * 100
§ Template ノード(Jinja2)
変数を組み込んでテキストを整形します。レポート生成やメール文面の作成に便利です。
# 例:日報テンプレート
## {{ date }} の業務報告
### 完了タスク
{% for task in completed_tasks %}
- {{ task }}
{% endfor %}
§ HTTP リクエスト ノード
外部APIとの連携を実現します。REST APIに対応しており、GET/POST/PUT/DELETEリクエストを送信できます。
例:Slack APIを呼び出してチャンネルにメッセージを投稿
例:社内システムのAPIを呼び出してデータを取得・更新
§ Parameter Extractor ノード
自然言語から構造化データ(JSON)を抽出します。
入力:「来週の火曜日に田中さんとの打ち合わせを設定して」
↓
出力:{"date": "2026-02-10", "attendee": "田中", "type": "meeting"}
§ Question Classifier ノード
ユーザー入力の意図を自動で分類し、適切な処理へルーティングします。
例:「価格について知りたい」→ 価格情報フローへ
「使い方がわからない」→ サポートフローへ
「解約したい」→ 解約手続きフローへ
§ 5. エラーハンドリング ─ 本番運用で必要なこと
開発環境では動いても、本番環境では予期しないエラーが発生します。安定した運用のためのエラー対策は必須です。
§ Retry(再試行)
ノードの処理が失敗した場合、自動的に再試行します。
| 設定項目 | 内容 |
|---|---|
| 最大再試行回数 | 最大10回まで設定可能 |
| 再試行間隔 | 秒単位で指定(APIのレートリミット対策にも) |
§ Fail Branch(失敗分岐)
再試行しても失敗した場合、代替ルートへ誘導します。
例:外部API呼び出しが失敗した場合
→ エラー通知をSlackに送信
→ デフォルト値で処理を継続
§ デフォルト値設定
エラーが発生してもワークフロー全体を停止させず、続行させる設計です。
§ 6. デバッグと開発の効率化
複雑なワークフローを構築する際、効率的なデバッグ手法を知っておくことが重要です。
§ 単一ノードテスト
ワークフロー全体を実行せず、特定のノードだけをテストできます。
- 入力データを手動で指定してノード単体の動作を確認
- 問題のあるノードを素早く特定
§ 変数インスペクター
データフローをリアルタイムで可視化し、各ノードを通過するデータの内容を確認できます。
- 変数の値を確認
- 値を書き換えてシミュレーション
§ 実行履歴トレーシング
過去の実行について、どのノードがいつ実行されたかを時系列で確認できます。
- 処理時間のボトルネック特定
- エラー発生箇所の特定
- 入出力データの確認
§ よくある質問(FAQ)
§ Q. ワークフローとChatflowはどちらを使えばいいですか?
A. 「1回の処理で完結するか、対話が必要か」で判断します。議事録の要約やレポート生成など、入力→処理→出力で完結する処理はWorkflow。ユーザーとのやり取りを通じて回答を導く場合はChatflowが適しています。
§ Q. ノードの種類が多くて覚えられません。どこから始めればいいですか?
A. まずは「Start→LLM→End」の3ノードだけで動くワークフローを作ってみてください。動作を確認できたら、If-ElseやIterationを追加して徐々に複雑化していくのがおすすめです。
§ Q. ワークフローの実行にはどのくらいのコストがかかりますか?
A. コストの大部分はLLMノードでのAPI呼び出しです。使用するモデル(GPT-5、Claude 4.5など)と処理するトークン数によって変動します。Difyの管理画面でトークン使用量を確認できます。
§ Q. エラーハンドリングは本当に必要ですか?
A. 本番運用では必須です。外部APIのタイムアウト、レートリミット、予期しない入力形式など、開発時には発生しなかったエラーが本番では起こります。Retry・Fail Branchを設定しておくことで、安定した運用が可能になります。
§ Q. 既存のシステムとどのように連携できますか?
A. 主に3つの方法があります。(1) HTTP リクエストノードで外部APIを呼び出す、(2) Webhookで外部システムからワークフローをトリガーする、(3) Dify APIを外部システムから呼び出す。既存システムの構成に応じて最適な方法を選択してください。
§ まとめ
この記事では、Difyのワークフロー機能について、以下のポイントを解説しました。
-
ワークフローの基本は「Start→LLM→End」の3ノード
- この3つを理解すれば、基本的な自動化は実現できる
-
If-Else・Iteration・Loopで複雑なビジネスロジックも視覚的に構築可能
- コードを書かずに、分岐や繰り返しを含む処理フローを設計できる
-
エラーハンドリング(Retry・Fail Branch)で本番運用に耐えるフローを設計
- エラーが起きても適切に対処できる設計が、安定運用の鍵
ワークフロー機能は、AIを「話し相手」から「業務を実行するパートナー」へと進化させる基盤です。まずはシンプルな3ノード構成から始めて、徐々に機能を追加していくことをおすすめします。
Data Insightでは、ツールの導入だけでなく、「何を自動化すべきか」という問いへの答えを、お客様との対話を通じて一緒に見つけていくアプローチを大切にしています。
業務の自動化には分かった。では、対話型のAIボットはどう作るのか?
次の記事では、会話の「記憶と文脈」を司る機能「Chatflow」について解説します。
Data Insightでは、Difyの導入から社内データの連携、ワークフローの設計までを一貫して支援しています。「どの業務から自動化すべきか」「どのノードを組み合わせればいいか」など、具体的なご相談も承っています。
無料相談で課題を整理する