Difyワークフローの作り方|非エンジニアでも再現できる構築手順と実装ログ
Difyのワークフローは「どこから手をつければいいか分からない」という状態になりやすいと思います。
ノードの種類は分かります。できることも何となく分かります。しかし「実際に動く形に組み上げる方法」が分からない。私もまったく同じ状態から始めました。
この記事では、非エンジニアでも再現できるように、完成イメージ・使用ノード・構築手順・詰まったポイント・改善方法までを実装ベースで解説します。読み終えたときに、Difyでワークフローを自力で構築できる状態を目指しています。
今回作るワークフローの完成イメージ
まず「何を作るか」を決めないと、ノードを並べる作業が目的になってしまいます。完成イメージを先に固めることが、設計の出発点です。
完成フロー全体像
今回解説するワークフローは「テキスト入力 → AI処理 → 整形された出力」というシンプルな3段構成です。
具体的には次の流れになります。
- Start:ユーザーからキーワードや指示テキストを受け取る
- LLMノード:受け取った入力をプロンプトに組み込んでAIが処理する
- 出力:整形された結果をワークフローの外に渡す
この構造を骨格として、用途に応じて変数ノードや分岐ノードを追加していきます。骨格が分かっていれば、複雑に見えるワークフローも「この骨格に何を足したか」として読めるようになります。
できること
この構成で実現できる代表的なアウトプットは次の通りです。
- 記事の構成案生成(キーワードを入れると見出し構造が出てくる)
- 文章の要約・リライト
- 入力テキストの分類・判定
- メール・SNS投稿文の下書き生成
実務での使い方としては、「毎回同じ形式のアウトプットが欲しい作業」をワークフロー化するのが最も効果的です。フォーマットが決まっていれば、LLMノードのプロンプトに「このフォーマットで出力してください」と書くだけで再現性が出ます。
使用したノード一覧と役割
Difyにはいくつかのノードがありますが、最初に把握すべきものは4種類だけです。それぞれの役割を理解してから構築に入ると、ノードを何となく並べる状態から抜け出せます。
Startノード(入力)
Startノードは、ワークフローへの入り口です。ユーザーが何を渡すかをここで定義します。
受け取れるデータの種類は「テキスト」「数値」「ファイル」などがあります。最もよく使うのはテキスト型の変数です。たとえばキーワードを受け取りたいなら、keywordという名前のテキスト変数を1つ追加するだけで準備完了です。
設計時のポイントは「受け取る変数の名前を分かりやすくすること」です。後からLLMノードのプロンプト内でこの変数を参照するとき、名前が曖昧だと混乱します。inputよりkeyword、dataよりarticle_titleのほうが、プロンプトを書くときに迷いません。
LLMノード(AI処理)
LLMノードは、ワークフローの核心です。ここでプロンプトを書き、AIに何をさせるかを定義します。
プロンプトは「システムプロンプト」と「ユーザープロンプト」の2つに分かれています。システムプロンプトにはAIの役割・出力フォーマット・制約を書き、ユーザープロンプトには実際の入力データを渡します。
【システムプロンプト例】
あなたはSEO記事の構成案を作るアシスタントです。
与えられたキーワードに対して、H2見出しを5〜7個提案してください。
出力はMarkdownのリスト形式で返してください。
【ユーザープロンプト例】
キーワード:{{#start.keyword#}}設計ミスが起きやすいのは「プロンプトが曖昧なまま動かしてしまう」ケースです。出力フォーマットを指定しないと、AIは毎回違う形で返してきます。後続のノードで出力を使う場合は、フォーマットを必ず明記してください。
変数/分岐ノード
変数ノードは、あるノードの出力を次のノードに渡すときに値を加工・整理するために使います。分岐ノードは、条件によって処理の流れを変えるために使います。
最初のうちは、この2つは「なくても動く」ことが多いです。シンプルな構成で動かしてから、必要を感じたときに追加するのが正しい順番です。
使う判断基準:
- [出力が毎回異なる形で返ってきている] → 変数ノードで整形する
- [入力の値によって処理を変えたい] → 分岐ノードを追加する
- [上記どちらでもない] → まだ不要
出力ノード(End)
出力ノードは、ワークフローの終点です。最終的に何をどの形で返すかをここで指定します。
テキストで返す場合は、前のノードの出力変数をそのまま参照するのが基本です。後工程との関係でいうと、「この出力を次にどう使うか」を先に決めてから設計すると、出力形式のミスが減ります。GASやスプレッドシートに渡すなら構造化されたテキスト、そのまま表示するなら読みやすいMarkdown、という具合です。
Difyワークフロー構築手順(再現パート)
実際にワークフローを作る手順を、順番に解説します。はじめて作る方は必ずこの順番で進めてください。先にノードを全部並べてから繋げようとすると、ほぼ確実に詰まります。
STEP1:ワークフロー新規作成
Difyのダッシュボードにログインし、「スタジオ」→「アプリを作成」→「ワークフロー」を選びます。チャットボットやエージェントと混同しやすいですが、ここでは必ず「ワークフロー」を選んでください。
作成後に最初に設定するのは名前だけで大丈夫です。説明文は後からでも書けます。名前は「何をするワークフローか」が1行で分かる形にしておくと、複数作ったときに管理しやすくなります。
STEP2:Startノード設定
Startノードをクリックして、入力変数を追加します。今回は keyword(テキスト型)を1つだけ追加します。
ここで入力設計を慎重にしてください。ワークフローの品質の9割は、Startノードで何を受け取るかで決まります。 後から変数を追加・変更すると、LLMノードのプロンプトも連動して修正が必要になります。
よくあるミスは「変数を増やしすぎること」です。最初は1〜2個に絞り、動いてから追加するのが正解です。
STEP3:LLMノード接続
Startノードの右端の「+」をクリックしてLLMノードを追加し、StartノードとLLMノードを接続します。
LLMノードのプロンプトは次の順番で書きます。
1. AIの役割を1文で定義する
2. 出力フォーマットを具体的に指定する
3. 制約・禁止事項があれば書く
4. ユーザープロンプトにStartノードの変数を埋め込む変数の埋め込みは、プロンプト入力欄で / を入力すると変数の候補が表示されます。ここでStartノードで定義した keyword を選ぶと、{{#start.keyword#}} という形で自動挿入されます。
出力の安定性を上げるコツは「期待する出力の例をプロンプトに1つ書くこと」です。「このような形式で出力してください:(例)」と書くだけで、出力のブレが大幅に減ります。
STEP4:処理の分岐・整形
最初のワークフローでは、分岐ノードは不要です。まずSTEP3までの状態で実際に動かしてください。
動かしてみて「出力が使いにくい形で返ってくる」と感じたときだけ、Codeノードや変数ノードで整形を加えます。
分岐を入れる判断基準:
- [入力が空のときにエラーが起きる] → 条件分岐で空チェックを追加する
- [出力形式が2パターン必要] → 分岐ノードで処理を分ける
- [それ以外] → 分岐なしのまま進める
不要な複雑化を避ける方法は「今動いていない問題を解決しようとしない」ことです。動いてから改善するのがDifyワークフロー設計の基本です。
STEP5:出力設定
EndノードにLLMノードの出力変数を接続します。LLMノードの出力は通常 text という変数名で参照できます。
実務で使える形にするために、出力に対して「このまま次のツールに貼り付けられるか」を確認してください。貼り付けて使えない場合は、LLMノードのプロンプトに出力フォーマットの指示を追加するのが最優先です。EndノードやCodeノードで後処理するより、プロンプトで制御するほうが安定します。
詰まりやすいポイントと解決方法
構築中に詰まったとき、どこを疑えばいいかを整理しておきます。私が実際に経験した3つのパターンです。
ノードが繋がらない
「ノードを追加したが、接続できない」という状態になることがあります。
原因の多くは「出力変数が設定されていないノードに接続しようとしている」か「ノードの種類が接続条件を満たしていない」かです。
確認手順:
- 接続元ノードに出力変数が定義されているかを確認する
- ノードを一度削除して、もう一度追加してから接続し直す
- LLMノードのモデルが選択されているかを確認する(未選択だと動かない)
出力が安定しない
「毎回違う形で返ってくる」「期待した構造で出力されない」という問題の原因は、ほぼプロンプト設計にあります。
私が実際に直面したのは、記事生成ワークフローでLLMが毎回異なる見出し数・フォーマットで返してくる問題でした。解決したのはプロンプトに「出力は必ず以下の形式にしてください」と書いてサンプルを1つ添えることで、出力の安定性が大幅に上がりました。
【修正前】
H2見出しを5〜7個提案してください。
【修正後】
H2見出しを必ず5個、以下の形式で出力してください。
出力例:
## 見出し1
## 見出し2
(以下同様)想定外の挙動になる
「動いているけど、期待した結果ではない」という状態が一番見つけにくいです。
設計のズレを見つける方法は「実行ログを1ノードずつ確認すること」です。Difyのワークフロー実行後、各ノードの入出力をログで確認できます。どのノードで期待と異なる値が出ているかを追いかけると、原因を絞り込めます。
また、イテレーションを使っている場合は変数の展開に注意が必要です。LLMノードのプロンプト内では {{item.keyword}} が展開されますが、HTTPノードのJSONボディ内では展開されません。この挙動の詳細は[Difyのイテレーションで変数が文字列になる問題](https://bizinets.life/dify-iteration-variable-string-bug)で実体験から解説しています。
改善ポイント(精度を上げる)
ワークフローが一度動いたら、次は精度の改善です。ただし改善は1点ずつ行ってください。複数箇所を同時に変えると、どの変更が効いたか分からなくなります。
プロンプト改善:抽象から具体へ
最初のプロンプトは必ず抽象的になります。「良い記事を書いてください」ではなく「2500字以上・H2は5個・ですます調で書いてください」のように、判断基準をすべて数値と条件で書き直します。
改善の優先順位は「出力フォーマット → 文体・トーン → 内容の深さ」の順です。フォーマットが安定してから内容の改善に入るほうが、変化の効果が分かりやすくなります。
ノード削減:シンプルにする基準
ワークフローが動くようになると、つい機能を追加したくなります。しかし複雑にするほど、どこかが壊れたときの原因特定が難しくなります。
ノードを削除する判断基準は「そのノードを外しても最終出力が変わらないかどうか」です。変わらなければ不要です。実際に私がGAS連携のワークフローを組んだとき、最初は6ノード構成でしたが、最終的に4ノードで同じ結果が出ることが分かり2つ削除しました。このノード削減と合わせてプロンプトを整理した結果、1記事あたりの生成・確認作業にかかる時間が着手当初と比べて約60%短縮されました。
再利用できる設計:テンプレ化の考え方
ワークフローが安定したら、同じ構造を別の用途に使い回せるか考えてみてください。
「Start → LLM → End」の骨格は変えず、LLMノードのプロンプトだけを差し替えると、別の用途のワークフローがすぐに作れます。記事生成に使っていた構造を、要約・翻訳・分類と入れ替えて再利用できます。Difyにはワークフローの複製機能もあるので、うまく動いた構造は複製してテンプレートとして手元に残しておくことをおすすめします。
非エンジニアがDifyで自動化するコツ
最後に、ここまでの実装を通じて感じたコツをまとめます。これはDifyに限らず、ノーコードツール全般に当てはまる考え方だと思います。
最初から完璧に作らない。最初のワークフローは必ず粗いです。2ノードで動く状態を作ってから改善するほうが、最初から10ノードを設計するより速く完成します。
1処理ずつ分解する。「記事を自動生成したい」を「キーワードを受け取る → タイトル案を出す → 本文を書く → WordPressに投稿する」と分解してから、1処理ずつノードに落とし込みます。分解せずに1ノードに詰め込もうとすると、プロンプトが複雑になって制御できなくなります。
「目的 → 処理 → 出力」で考える。ノードを先に選ぶのではなく、「何のために」「どう処理して」「どの形で出すか」を先に言葉にしてから、それに合うノードを選びます。この順番を逆にするとノードが目的になってしまいます。
まとめ
Difyのワークフローを初めて作るとき、いきなりノードを並べ始めると詰まりやすいと思います。この記事で伝えたかったのは、ワークフローは「ノードを並べる作業」ではなく「処理を設計する作業」だということです。
完成イメージ → 必要なノード → 手順の順に考えると、作業が進みやすくなります。まずは今回解説したStart → LLM → Endの3ノード構成を実際に動かしてみてください。
今日できる一歩は「Difyに新規ワークフローを作成し、Startノードに変数を1つ追加してみること」です。それだけで、次に何をすべきかが見えてきます。
結論として、Difyワークフローは「Start → LLM → End」の3ノードを正しく設計できれば、非エンジニアでも十分に実用レベルの自動化が可能です。ノードの多さではなく、設計の正確さが成果を左右します。
Difyで自動化の仕組みを作れるようになったとき、次に考えるべきは「それをどんな構造で組み、どう成果につなげるか」という設計の問いです。ツールを動かす技術と、設計の判断軸は別物です。その考え方を体系的に整理したい方は、bizinets.biz の[サイト設計思想](https://bizinets.biz/site-design-philosophy/)が参考になると思います。
bizinets.biz
記事を読んで「もっと知りたい」と思ったあなたへ
bizinets.biz では、ビジネスの仕組みづくりを体系的に学べるコンテンツを用意しています。まずは一度、覗いてみてください。
bizinets.biz へ行く →