⚠️ このドキュメントはAIによって自動翻訳されています。不正確な部分がある場合は、英語版を参照してください。
- 調べる力を習得 —— ナレッジベースを検索できるようになりました
- 判断する力を習得 —— 条件分岐で意思決定ができるようになりました
- 複数タスクの処理力を習得 —— イテレーションで複数の質問を処理できるようになりました
- ツールの活用力を習得 —— Google 検索でインターネットにアクセスできるようになりました
エージェンティックワークフロー
エージェンティックワークフローは、単なる「入力 > 処理 > 出力」ではありません。 思考、計画、ツールの使用、結果に基づく調整といった一連のステップを含みます。AI を単純な実行者(指示に従うだけ)から、自律的に問題を解決するインテリジェントなエージェントへと変貌させます。エージェントストラテジー
エージェントをよりスマートに動作させるために、研究者たちはさまざまなストラテジーを設計しました。これらはエージェントを導く異なる思考モードのようなものです。- ReAct (Reason + Act) 考えてから行動するアプローチです。エージェントは思考し(何をすべきか?)、行動し(ツールを呼び出す)、結果を観察し、再び思考します。タスクが完了するまでこのループを繰り返します。
- Plan-and-Execute まず全体の計画を立て、それをステップごとに実行します。
- Chain of Thought (CoT) 回答を出す前に推論のステップを書き出すことで、精度を向上させます。
- Self-Correction 自身の出力をチェックし、間違いを修正します。
- Memory エージェントに短期記憶や長期記憶を持たせることで、過去の会話や重要な情報を思い出せるようになり、より一貫性のある、パーソナライズされた応答が可能になります。
エージェントノード
エージェントノードは、高度にパッケージ化されたインテリジェントなユニットです。 指示を通じて目標(Goal)を設定し、必要となりそうなツール(Tools)を提供するだけで、内部で自律的に思考、計画、選択、ツール呼び出しを行います(選択したエージェントストラテジー(例:ReAct)やモデルの Function Calling 機能を活用)。設定した目標が達成されるまで、このプロセスを続けます。 Dify では、これにより複雑なエージェンティックワークフローの構築プロセスが大幅に簡素化されます。ハンズオン 1:エージェントノードで構築する
目標は、イテレーションループ内の複雑な手動ロジックを、1 つのスマートなエージェントノードに置き換えることです。エージェントストラテジーをインストールする
まだ使用したことがないため、マーケットプレイスからストラテジーをインストールする必要があります。エージェントノードをクリックします。右側のパネルで「Agent Strategy」を探し、「Find more in Marketplace」をクリックします。

ReAct を選択する
ワークフローに戻り(必要に応じてページを更新)、Agent Strategy の下で ReAct を選択します。
なぜ ReAct を選ぶのか?ReAct(Reason + Act)は、人間の問題解決を模倣した「思考 → 行動 → 確認」のループを使うストラテジーです。

- Reason:エージェントが*次に何をすべきか?*を考えます(例:ナレッジベースを確認する)。
- Act:そのアクションを実行します。
- Observe:結果を確認します。回答が見つからなければ、サイクルを繰り返します(例:Google で検索する必要がある)。
モデルを選択する
ReAct は思考ストラテジーですが、実際にアクション部分を実行するには、AI に適切な「物理的」スキルが必要です。これが Function Calling と呼ばれるものです。Function Calling をサポートするモデルを選択します。ここでは gpt-5 を選択します。
なぜ Function Calling が必要なのか?エージェントノードのコア機能の 1 つは、自律的にツールを呼び出すことです。Function Calling は、モデルが提供されたツール(Google 検索など)をいつ、どのように使用するかを理解するための重要な技術です。モデルがこの機能をサポートしていない場合、エージェントはツールと効果的にやり取りできず、自律的な意思決定能力のほとんどを失ってしまいます。

コンテキストとクエリ
ここでの設定は、エージェントがデータを参照するために非常に重要です。
- コンテキスト:ナレッジ検索ノードから
Knowledge Retrieval / (x) result Array[Object]を選択します(これによりナレッジベースの内容がエージェントに渡されます)。 - クエリ:イテレーションノードから
Iteration/{x} itemを選択します。
email_content から質問リスト(question_list)を抽出したことを思い出してください。イテレーションノードはこのリストを 1 つずつ処理しており、item は現在処理中の個別の質問を表しています。item をクエリ入力として使用することで、エージェントが現在のタスクに集中でき、意思決定とアクションの精度が向上します。
🎉 イテレーションノードのアップグレードが完了しました。
ハンズオン 2:最終組み立て
最終編集者(LLM)
- イテレーションノードの後に LLM ノードを追加します。
-
ノードをクリックし、システムにプロンプトを入力します。以下のプロンプトを参考にするか、自由に編集してください。
-
User Message に answers、email content、customer name をそれぞれ対応する変数に置き換えて追加します。現在の LLM ノードは以下のようになります。


ミニチャレンジ
- エージェントノードを使ってイテレーションループ全体を置き換えることはできるでしょうか?質問リストを一度にまとめて処理するプロンプトをどのように設計しますか?
- エージェントのコンテキストフィールドに他にどのような情報を与えれば、より良い判断ができるようになるでしょうか?






