第4章 基本ノードの設定

この章では、第3章で示した基本形「ユーザー入力 → LLM → 出力」を作る3つのノードの設定を、1つずつ詳しく説明します。チュートリアル「やさしい日本語ワークフロー作成」で行った操作の意味が分かり、自分の業務に合わせて「何を入力させるか」「AIに何をさせるか」「何を返すか」を自分で決められるようになることが、この章の目標です。この章では知識検索と条件分岐は使いません(知識検索ノードは第5章、IF/ELSEノード・質問分類器は第6章)。また、ノードを画面上で追加・接続する操作そのものは第7章で説明します。この章は「各ノードの設定欄で何を決めるか」に絞ります。

4-1. ユーザー入力ノード

ユーザー入力ノードは、ワークフローに必要な情報を利用者から受け取るノードです。ここで作った入力欄が、公開後に利用者がWebアプリで入力する欄になります(チュートリアル2.2のステップ2で体験したとおりです)。

ユーザー入力ノードは、アプリを作った時点でキャンバスに1つ置かれています。 処理の入口は必ず1つと決まっているため、ノードの一覧から追加することはできず、削除することもできません(ノードを追加する一覧にも表示されません)。ほかのノードのように置いたり消したりするのではなく、すでに置かれているノードの中身(入力欄)を設定して使うノードだと考えてください。

入力項目を作る

前提:ワークフローの編集画面が開いていて、キャンバスにユーザー入力ノードが置かれていること。

  1. キャンバスのユーザー入力ノードをクリックして、設定欄を開きます。
  2. 入力フィールド(入力欄)を追加し、欄ごとに、変数名・表示名・型(種類)の3つを設定します(変数名と表示名の違いは、この後の節で説明します)。入力を必須にするかどうかも欄ごとに設定できます。
  3. 必要な数だけ、2を繰り返します。

完了した状態:ユーザー入力ノードに、利用者に入力してほしい欄が定義されている。

※欄の名称・並び・操作は、環境やバージョンにより異なることがあります。

ユーザー入力ノードの設定欄で、入力フィールドを追加し、変数名・表示名・型を設定しているところ

入力項目の種類

入力欄の型は、次の8種類から選びます。

どんな入力欄か 用途の例
短文 1行の短い文字列(256文字まで) 件名、氏名の欄
段落 長さの制限のない長文 お知らせ文・議事録の貼り付け欄
選択 あらかじめ決めた選択肢から選ばせる 文書の種類(通知文/案内文)の選択
数値 数値だけを受け付ける 文字数の上限、件数の指定
チェックボックス はい/いいえの2択 「箇条書きにするか」の指定
JSONコード 構造つきのデータ 他システムから受け取るデータ(通常の入力欄では使いません)
単一ファイル ファイルを1つアップロードさせる 要約したい文書ファイル
ファイルリスト ファイルを複数アップロードさせる 複数の報告書のまとめて処理

利用者に自由に文章を書いてもらうなら「短文」か「段落」、決まった中から選ばせたいなら「選択」を使います。選択にすると、入力のばらつき(表記の揺れ)を防げるため、後のLLMノードの処理が安定します。ファイルの型を使う流れでは、ファイルから文字を取り出すテキスト抽出ノード(第10章10-4)を後ろにはさみます。この章の最小構成では、まず「短文」「段落」「選択」の3つを使えれば十分です。

変数とは(値を受け渡す入れ物)

ここで、本書の以降の章すべてで使う「変数」を押さえます。変数とは、ノードの間で値を受け渡すための入れ物です。 各ノードは処理の結果を変数として出力し、線でつながった後ろのノードは、その変数を参照(指定して利用)できます。

ユーザー入力ノードで作った入力欄も、1つ1つが変数になります。利用者が入力した値がその変数に入り、後ろのノードへ渡ります。チュートリアル2.2で、入力欄 notice に貼り付けたお知らせ文がLLMノードの指示文に差し込まれたのは、この仕組みによります。変数名は、後で見て中身が分かる名前を付けてください(例:お知らせ文なら notice、質問文なら question)。ノードが増えると、指示文や設定欄には変数名だけが表示されるため、a1 のような名前では、後から直す人(数か月後の自分を含みます)が中身を思い出せません。

変数の受け渡し 図4-1 変数の受け渡し(前のノードの出力が、次のノードの材料になる)

変数名と表示名の違い

入力欄には「変数名」と「表示名」の2つの名前を付けます。役割が違います。

名前 誰が見るか 役割
変数名 作る人 後ろのノードから参照するときの名前。指示文には {{変数名}} の形で入る notice
表示名 利用者 公開したWebアプリの入力欄に表示される名前 お知らせ文

つまり、変数名は「中で使う名前」、表示名は「利用者に見せる名前」です。変数名は参照のしやすい簡潔な英字、表示名は利用者がその欄だけ読んで何を入力すべきか分かる日本語、と使い分けるのがお勧めです。

入力を後続ノードで使う

作った入力欄(変数)は、線でつながった後ろのノードで使えます。使い方は2つあり、指示文などの文章の欄では、「/」(環境により「{」)を入力すると参照できる変数の候補一覧が表示され、選ぶとその位置に {{変数名}} の形で入ります(チュートリアル2.2のステップ3で行った操作です)。設定欄の入力項目では、参照できる変数の候補一覧から選びます(この後の出力ノードの設定で使います)。いずれも、参照できるのは線でつながった前のノードの変数だけです。差し込みの画面操作の詳細と、Difyが自動で用意するシステム変数などは、第7章7-3で説明します。

4-2. LLMノード

LLMノードは、AIモデルを呼び出して文章の生成・要約・言い換えなどをさせる、処理の中心になるノードです。設定欄の主な項目は、チュートリアル2.1のステップ2で見たとおり「AIモデル」「SYSTEM」「USER」などです。

LLMノードの設定欄。AIモデル・SYSTEM・USERの各欄が見える状態

設定欄にある項目の一覧

LLMノードの設定欄には、次の項目が並びます。チュートリアルで使うのは「AIモデル」と「SYSTEM」だけですが、ほかの項目も何のための欄かを知っておくと、あとで必要になったときに迷いません。

項目 何をする欄か チュートリアルで使うか
AIモデル 応答を作るAIモデルを選ぶ。必須の項目 使う
コンテキスト 回答の根拠にする資料を受け取る欄。知識検索ノードの検索結果をここに割り当てる 第5章で使う
SYSTEM アプリの前提になる指示文を書く欄 使う
USER 実行のたびに変わる処理対象を渡す欄 チャットフローでは最初から設定済み
メッセージ追加 USERやASSISTANTの欄を足すボタン 必要なときだけ
メモリ 前のやりとりを覚えたまま応答させる設定。あわせて「メモリウィンドウサイズ」で、さかのぼって覚える会話の数を決める チャットフローで自動的に有効
ビジョン 画像を読み取らせる設定。画像を受け取るアプリで使う 使わない
推論タグの分離を有効にする モデルが考えた過程(推論)を、答え本体と分けて受け取る設定 使わない
出力変数 このノードが後ろへ渡す変数の確認。「構造化出力」を有効にすると、決まった項目の形(JSON)で受け取れる 既定のまま
失敗時再試行 呼び出しが失敗したときに、自動でやり直す回数と間隔を決める 既定のまま
例外処理 失敗したときにワークフローをどう続けるかを決める(初期値は「処理なし」=そこで止まる) 既定のまま

※ワークフローとチャットフローで、欄の並びが少し違います。チャットフローには最初から「USER」欄があり、ワークフローにはありません。 ワークフローでUSER欄を使いたいときは「メッセージ追加」で足します(実機確認:2026-09-03)。

AIモデルを選ぶ

「AIモデル」欄で、応答を作るAIモデルを選びます。選べるのは、ワークスペースのモデルプロバイダーに登録済みのモデルです。本書が想定する庁内での利用では、登録は管理者が済ませているため、登録済みのモデルから選ぶだけで使えます(チュートリアル2.1の0-1)。どのモデルを選べるかは、お使いの環境の契約・設定によります。

モデル名の右にある設定のボタンからは、答えのばらつき具合(Temperature)や、一度に返す文章の長さの上限(Max Tokens)などを調整できます。初期値のままで問題ありません。項目はモデルによって異なります。

コンテキストの役割(回答の根拠になる資料を受け取る)

「コンテキスト」欄は、回答の根拠にする資料を受け取る欄です。知識検索ノードが探してきた資料の断片を、この欄に割り当てると、LLMはその内容をもとに答えます。

注意したいのは、この欄に割り当てるだけでは足りないことです。指示文(SYSTEM)の中にも、コンテキストを差し込む必要があります。差し込みを忘れると、画面に「コンテキスト利用時はプロンプトに変数を明記してください」と表示され、資料が使われないまま答えが返ります。実際のつなぎ方は第5章5-3で手順どおりに説明します。

本章の基本形(ユーザー入力 → LLM → 出力)では、この欄は空のままで構いません。

SYSTEMの役割(アプリの前提を決める)

「SYSTEM」欄(一般に「システムプロンプト」と呼ばれる部分)には、このアプリの前提になる指示文(プロンプト)を書きます。アプリの役割・答え方・守らせたい条件 をここで決めます。利用者が何を入力しても、SYSTEMに書いた前提は毎回適用されるため、アプリの性格はこの欄で決まります。

あなたは自治体の広報担当です。入力されたお知らせ文を、外国人住民にも伝わる『やさしい日本語』に書き換えてください。難しい言葉を避け、一文を短くし、大切な情報(日時・場所・持ち物)は箇条書きにしてください。

これはチュートリアル2.2で書いた指示文です。役割(広報担当)・してほしいこと(やさしい日本語への書き換え)・条件(難しい言葉を避ける・一文を短く・大切な情報は箇条書き)が入っています。

USERの役割(毎回変わる「処理してほしいもの」を渡す)

「USER」欄には、実行のたびに変わる、処理してほしい中身を入れます。利用者が画面から入力した文章そのものだと考えてください。

SYSTEMとUSERの違いは、次のように分けると分かりやすくなります。

入れるもの 変わるか
SYSTEM アプリの役割・答え方のルール 毎回同じ 「あなたは自治体の広報担当です。やさしい日本語に書き換えてください」
USER 今回処理してほしい中身 実行のたびに変わる 「ごみ収集日の変更のお知らせ 祝日にともない、10月の……」

人にたとえると、SYSTEMは職員に渡す業務マニュアル、USERはその都度渡される処理する書類にあたります。マニュアルは毎回同じで、書類は毎回違います。

チャットフローの場合:USER欄には、最初から「ユーザー入力/query」(利用者がチャット画面に打ち込んだ文)が設定されています。自分で入れ直す必要はありません(チュートリアル2.1で確認したとおりです)。

ワークフローの場合:USER欄は最初から用意されていません。チュートリアル2.2のように、SYSTEMの指示文の末尾に変数({{notice}} など)を差し込む書き方でも動きます。指示文が長くなってきたら、「メッセージ追加」でUSER欄を足し、そこに処理対象の変数だけを入れると、役割の指示と処理対象が分かれて読みやすくなります。

指示文の基本的な書き方

指示文は、次の3点を意識して書くと、意図に近い結果が返りやすくなります。

  1. 役割を与える:「あなたは〜です」と立場を決めます。答え方の前提がそろいます。
  2. してほしいこと・条件を箇条書きで書く:「難しい言葉を避ける」「3行以内で」のように、条件は1つずつ分けて書きます。
  3. 出力の形式を指定する:「箇条書きで」「見出しを付けて」のように、返してほしい形を指定します。

まずこの3点で書いて動かし、返ってきた結果を見て条件を足し引きするのが基本の進め方です。生成AIへの依頼文の型(4項目)は第12章12-2でも扱っているので、指示文を練るときの参考にしてください。

変数を指示文へ挿入する

利用者の入力をAIモデルに処理させるには、4-1で作った変数を指示文の中に差し込みます。差し込みたい位置で「/」(環境により「{」)を入力し、候補一覧から変数を選ぶと、{{変数名}} の形(変数名を二重の波かっこで囲んだ形)で入ります。実行時に、その位置へ実際の入力値が差し込まれた指示文が、AIモデルに渡ります。

生成結果を後続ノードへ渡す

LLMノードが生成した文章は、変数 text として出力されます。後ろのノードは、この text を参照して使います。最小構成では次の出力ノードが text を受け取りますが、間に別のノード(チュートリアル2.1で試したテンプレートノードなど)をはさむ場合も、受け渡しの仕組みは同じです。

4-3. 出力ノード

出力ノードは、ワークフローの最終結果を利用者(またはAPIの呼び出し元)に返すノードです。手前までのノードで値ができていても、出力ノードで返す変数を指定しない限り、利用者には何も表示されません。

出力変数を設定する

前提:ユーザー入力 → LLM → 出力の3つのノードが線でつながっていること。

  1. 出力ノードをクリックして設定欄を開きます。
  2. 出力する変数として、参照できる変数の候補一覧からLLMノードの text を選んで割り当てます。
  3. 割り当てた変数に、結果の名前を付けます(例:result)。この名前は、アプリをAPIとして呼び出したときに、返ってくる結果の項目名になります。

完了した状態:出力ノードに、LLMノードの生成結果(text)が結果の名前付きで割り当てられている。

出力ノードには、出力する変数を最低1つ設定します。複数の変数を返すことも、出力ノードを流れの中に複数置くこともできますが、その場合は結果の名前をワークフロー全体で重複させないでください(第10章10-2)。最小構成では、LLMの text を1つ返せば十分です。

出力ノードの設定欄で、LLMノードの text を選んで結果の名前を付けた状態

テスト実行で確かめる

設定ができたら、公開する前にテスト実行で動きを確かめます。

  1. 編集画面の右上の「テスト実行」を押します(お使いの画面では「プレビュー」と表示されることがあります)。
  2. 4-1で作った入力欄に試したい値を入れて、実行します。
  3. 結果が返ったら、出力ノードに割り当てた変数の中身(LLMの生成結果)が表示されていることを確認します。

実行結果をノードごとに確認する

テスト実行を押すと、画面の右側に結果のパネルが開きます。パネルの上部にあるタブで、見たい内容を切り替えられます。

タブ 見られるもの
入力 そのとき入力した値
結果 最終的に返ってきた文章(出力ノードが返した値)
詳細情報 処理にかかった時間、使ったトークン数など
実行追跡 ノードごとの実行結果。ノード名・所要時間と、成功したかどうかが並ぶ

ノードごとの結果を見たいときは「実行追跡」タブを開きます。ユーザー入力ノード・LLMノード・出力ノードが上から順に並び、それぞれに緑のチェックが付いていれば成功です。行をクリックすると、そのノードに入ってきた値(入力)と出した値(出力)を確認できます。

テスト実行が完了し、各ノードの成功・失敗と実行結果が表示された状態の編集画面

エラーが起きたノードを特定する

うまく動かないときは、次の順で探すと原因にたどり着けます。

  1. キャンバスで赤くなっているノードを探す。エラーが起きたノードは枠が赤く表示され、右上に赤い印が付きます。ほかのノードは緑(成功)のままなので、どこで止まったかがひと目で分かります。
  2. そのノードをクリックして開き、「最後の実行」タブに切り替える。設定欄の上部に「設定」と「最後の実行」の2つのタブがあります。「最後の実行」には、失敗を示す FAIL の表示と、エラーの内容が表示されます。
  3. 同じ画面で、入ってきた値(入力)と出した値(出力)を確認する。入ってきた値がおかしければ原因は前のノードか変数の参照、出した値がおかしければそのノードの設定にあります。

テスト実行でエラーになったノードを開き、「最後の実行」にエラーの内容と入力・出力が表示された状態の編集画面

「変数が見つからない」という趣旨のエラーは、指示文に差し込んだ変数名と4-1で作った変数名が合っているか、ノードが線でつながっているかを確認してください(チュートリアル2.2の表と同じ確認です)。

ノードを1つだけ実行して確かめる方法・実行の記録・変数の中身の確認は第7章7-5で、エラーメッセージ別の対処は第14章で説明します。

まとめ:最小構成の設計チェックリスト

自分の業務用に「ユーザー入力 → LLM → 出力」を組むときは、次の3つの問いに答えてから設定すると迷いません。

問い 決めること 設定する場所
入力に何が要るか 入力欄の数・型・変数名・表示名 ユーザー入力ノード(4-1)
LLMに何をさせるか 役割・条件・出力形式の指示文と、差し込む変数 LLMノードのSYSTEM・USER(4-2)
何を返すか 最終結果として返す変数(LLMの text)と結果の名前 出力ノード(4-3)

次に進む

次は、第5章「知識検索の基本」で、この基本形に「登録した資料を根拠に答えさせる」知識検索ノードを追加します。条件によって処理を分けたい方は、その後の第6章「条件分岐」に進んでください。

出典一覧

本章の記述の根拠です(いずれも確認日:2026-09-02)。

内容 出典
ユーザー入力ノードの入力欄の型8種(短文256文字まで・段落・選択・数値・チェックボックス・JSONコード・単一ファイル・ファイルリスト)・各欄が変数になり後ろのノードから参照できること・表示名(Label)が利用者に表示されること・必須の設定 https://docs.dify.ai/en/cloud/use-dify/nodes/user-input.md
開始のしかたの2つのモード(ユーザー入力/トリガー)・入力欄を定義し後続ノードが参照すること https://docs.dify.ai/en/cloud/use-dify/nodes/start.md
LLMノードのSYSTEM(動作・前提)/USER(入力)/ASSISTANT(例示)の役割分担・{{変数名}} の形での変数参照・出力変数 text https://docs.dify.ai/en/cloud/use-dify/nodes/llm.md
出力ノード(最終結果を返す・出力変数は最低1つ・付けた名前がAPIで返る項目名になる・出力ノードの無い流れは呼び出し元に結果を返さない・複数配置時は名前を重複させない) https://docs.dify.ai/en/cloud/use-dify/nodes/output.md
「/」の入力で変数の候補一覧を表示して差し込めること https://docs.dify.ai/en/learn/key-concepts.md
「テスト実行」の操作・ノードごとの「最後の実行」で入力・出力を確認できること https://docs.dify.ai/ja-jp/guides/application-orchestrate/creating-an-application

※次の点は、公式ドキュメント(docs.dify.ai)では確認できなかったため、実機確認(確認日:2026-09-02・クラウド版)を根拠としています:LLMノードの設定欄の欄名(AIモデル・SYSTEM・USER)/変数の差し込みで「{」の入力でも候補一覧が表示されること/ワークフローの実行ボタンが「プレビュー」と表示されること。指示文の基本的な書き方(役割・条件・出力形式の3点)は、公式ドキュメントの仕様ではなく本書の書き方の提案です。画面の名称・構成はバージョンにより変わることがあります(序章「本書の確認環境」参照)。