> ## Documentation index
> Fetch the complete documentation index at: https://dify-docs.docs7.io/llms.txt
> Ask it with GET https://dify-docs.docs7.io/ask?q=<keywords or question>. Short keywords rank best.
> Use these to discover all available pages before exploring further.

# Agent

> ワークフローの 1 ステップとして Agent を実行し、推論とツールの活用でタスクを完了する

> このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、[英語版](/en/self-host/use-dify/nodes/agent) を参照してください。

<Tabs>
  <Tab title="クラシック Agent" id="classic-agent">
  エージェントノードは、LLM にツールの自律的な制御権を与え、どのツールをいつ使用するかを反復的に決定できるようにします。すべてのステップを事前に計画する代わりに、エージェントは問題を動的に推論し、複雑なタスクを完了するために必要に応じてツールを呼び出します。

  <Frame caption="エージェントノード設定インターフェース">
    ![エージェントノード設定インターフェース](https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/1f4d803ff68394d507abd3bcc13ba0f3.png)
  </Frame>

  ## エージェント戦略

  エージェント戦略は、エージェントの思考と行動を定義します。モデルの能力とタスク要件に最も適したアプローチを選択してください。

  <Frame caption="利用可能なエージェント戦略オプション">
    ![利用可能なエージェント戦略オプション](https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/f14082c44462ac03955e41d66ffd4cca.png)
  </Frame>

  <Tabs>
    <Tab title="Function Calling">
      大規模言語モデルのネイティブな関数呼び出し機能を使用して、tools パラメータを通じてツール定義を直接渡します。大規模言語モデルは、組み込まれたメカニズムを使用して、いつどのようにツールを呼び出すかを決定します。

      GPT-4、Claude 3.5、および関数呼び出しサポートが堅牢な他のモデルに最適です。
    </Tab>

    <Tab title="ReAct (Reason + Act)">
      明示的な推論ステップを通じて大規模言語モデルを導く構造化されたプロンプトを使用します。透明性のある意思決定のために、**思考 → 行動 → 観察** のサイクルに従います。

      ネイティブな関数呼び出し機能を持たないモデルや、明示的な推論トレースが必要な場合によく機能します。
    </Tab>
  </Tabs>

  <Info>
    **マーケットプレイス → エージェント戦略** から追加戦略をインストールするか、[コミュニティリポジトリ](https://github.com/langgenius/dify-plugins) にカスタム戦略を貢献してください。
  </Info>

  <Frame caption="関数呼び出し戦略設定">
    ![関数呼び出し戦略設定](https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/10505cd7c6f0b3ba10161abb88d9e36b.png)
  </Frame>

  ## 設定

  ### モデル選択

  選択したエージェント戦略をサポートする大規模言語モデルを選択してください。より高性能なモデルは複雑な推論をより良く処理しますが、反復あたりのコストが高くなります。その戦略を使用する場合は、モデルが関数呼び出しをサポートしていることを確認してください。

  ### ツール設定

  エージェントがアクセスできるツールを設定します。各ツールには以下が必要です：

  **認証** - ワークスペースで設定された外部サービス用の API キーと認証情報

  **説明** - ツールの機能と使用タイミングの明確な説明（これがエージェントの意思決定を導きます）

  **パラメータ** - 適切な検証を伴うツールが受け入れる必須およびオプションの入力

  ### 指示とコンテキスト

  自然言語の指示を使用してエージェントの役割、目標、コンテキストを定義します。上流のワークフローノードから変数を参照するには、Jinja2 構文を使用します。

  **クエリ** は、エージェントが作業すべきユーザー入力またはタスクを指定します。これは以前のワークフローノードからの動的コンテンツにすることができます。

  <Frame caption="設定パラメータ">
    ![設定パラメータ](https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/54c8e4f0eaa7379bd8c1b5ac6305b326.png)
  </Frame>

  ### 実行制御

  **最大反復回数** は、無限ループを防ぐための安全制限を設定します。タスクの複雑さに基づいて設定してください - 単純なタスクには 3-5 回の反復が必要ですが、複雑な調査には 10-15 回必要な場合があります。

  **メモリ** は、TokenBufferMemory を使用してエージェントが記憶する過去のメッセージ数を制御します。より大きなメモリウィンドウはより多くのコンテキストを提供しますが、トークンコストが増加します。これにより、ユーザーが以前のアクションを参照できる会話の継続性が可能になります。

  ### ツールパラメータ自動生成

  ツールには **自動生成** または **手動入力** として設定されたパラメータがあります。自動生成パラメータ（`auto: false`）はエージェントによって自動的に設定され、手動入力パラメータはツールの永続的な設定の一部となる明示的な値が必要です。

  <video controls src="https://assets-docs.dify.ai/2025/04/1801b96763eb8f22f1e2158645897885.mp4" width="100%" />

  ## 出力変数

  エージェントノードは以下を含む包括的な出力を提供します：

  **最終回答** - クエリに対するエージェントの最終的な応答

  **ツール出力** - 実行中の各ツール呼び出しからの結果

  **推論トレース** - JSON 出力で利用可能なステップバイステップの決定プロセス（特に推論と行動戦略で詳細）

  **反復回数** - 使用された推論サイクルの数

  **成功ステータス** - エージェントがタスクを正常に完了したかどうか

  **エージェントログ** - ツール呼び出しのデバッグと監視のためのメタデータを含む構造化されたログイベント

  ## 使用例

  **調査と分析** - エージェントは複数のソースを自律的に検索し、情報を統合し、包括的。

  **トラブルシューティング** - エージェントが情報を収集し、仮説をテストし、発見に基づいてアプローチを適応させる必要がある診断タスク。

  **マルチステップデータ処理** - 次のアクションが中間結果に依存する複雑なワークフロー。

  **動的 API 統合** - API 呼び出しの順序が事前に決定できない応答と条件に依存するシナリオ。

  ## ベストプラクティス

  **明確なツール説明** は、エージェントが各ツールをいつどのように効果的に使用するかを理解するのに役立ちます。

  **適切な反復制限** は、複雑なタスクに対して十分な柔軟性を確保しながら、暴走コストを防ぎます。

  **詳細な指示** は、エージェントの役割、目標、制約や好みについてのコンテキストを提供します。

  **メモリ管理** は、使用例の要件に基づいて、コンテキスト保持とトークン効率のバランスを取ります。

  </Tab>

  <Tab title="新しい Agent" id="new-agent">

  <Warning>
  **データセキュリティに関する注意**

  Community Edition では、同一の Agent を複数のエンドユーザーに公開する場合、ファイルアクセス制御により Agent ファイルおよびセッションファイルへのアクセスを制限します。この制御は、ファイルシステムを介した会話間のデータアクセスリスクを低減しますが、Agent ランタイムは、相互に信頼できないユーザーやワークロード間に強固なセキュリティ境界を提供することを意図したものではありません。

  強力な隔離や、厳格なセキュリティおよびコンプライアンス管理を必要とするデプロイでは、別途セキュリティを強化したインフラ環境をご利用いただくか、Cloud / Enterprise プランをご検討ください。Enterprise プランの詳細は、[営業へのお問い合わせ](https://share-na2.hsforms.com/176RpklY3TLeHo6qmuAdRKQ40s9fk) よりご連絡ください。
  </Warning>

  <Note>
  新しい Agent ノードはベータ版で、Workflow アプリでのみ使用できます。ランタイムは Docker Compose デプロイに同梱され、デフォルトで有効です。

  本番環境では、[`DIFY_AGENT_SERVER_SECRET_KEY`](/ja/self-host/deploy/configuration/environments#dify_agent_server_secret_key) と [`DIFY_AGENT_API_TOKEN`](/ja/self-host/deploy/configuration/environments#dify_agent_api_token) を独自のランダムな値に置き換えてください。
  </Note>

  新しい Agent ノードは、ワークフローの 1 ステップとして [Agent](/ja/self-host/use-dify/build/new-agent/overview) を実行します。モデルにツールを組み合わせるクラシックノードと違い、ここでは能力とサンドボックスを備えた一人前のワーカーに任せます。

  Agent を選んで、やるべきことを伝えるだけです。Agent は自力でタスクをこなし、結果をフローの続きに返します。

  <a id="choose-an-agent"></a>

  ## Agent の選択

  ノードを追加したら、仕事の担い手を選びます：

  <Tabs>
    <Tab title="既存の Agent を招待">
      公開済みの Agent はどれでも招待できます。Agent は保存済みの能力を携えて参加するため、ここで設定するのはタスクだけです。

      招待した Agent は正社員のような存在で、能力は **Agents** ページで一元管理されます。このページで更新を公開すると、その Agent を使うすべてのワークフローに反映されます。

      - 能力を編集するには、**Agents で編集** をクリックします。

      - このステップに限って変更したい場合は、**コピーを作成** をクリックします。ノードは元の Agent に追従しない、一度きりのコピーに切り替わります。

    </Tab>
    <Tab title="ゼロから始める">
      このノードだけに存在する一度きりの Agent を作成し、その場で設定します。設定の方法は **Agents** ページで [構築](/ja/self-host/use-dify/build/new-agent/build) する場合と同じです。

      1 つの仕事のために呼ぶ臨時スタッフのような存在です。実力が確かなら、**Agents** ページに昇格させて他の場所でも再利用できます。

      <Frame>
        ![一度きりの Agent を保存](/images/use-dify/workflow/save-onetime-agent-to-roster.png)
      </Frame>
    </Tab>
  </Tabs>

  Agent は後からいつでも入れ替えられます。

  <Info>
  2 つのノードが同じ Agent を招待していても、動作は互いに独立しています。各ノードは Agent の保存済みセットアップから出発し、それぞれのサンドボックスで作業するため、あるノードの実行で生じたもの（書き込んだファイルやインストールしたツール）が別のノードに引き継がれることはありません。
  
  ノード間で結果を渡すには、出力として宣言し、下流のノードから参照してください。
  </Info>

  <a id="give-it-a-task"></a>

  ## タスクの指定

  **Agent タスク** に、このステップで必要な作業を記述します。同僚に仕事を 1 件頼むときの要領です。これは Agent 自身のプロンプトや能力とは別のものです。`/` を入力すると、前のノードの出力を取り込めます。

  たとえば、製品ドキュメントに精通し、サポートの文体を身につけた Agent を招待し、ワークフローが顧客メールを渡すとします。タスクに書くのは、このステップの内容だけです。

  ```text wrap
  {{customer_email}} の顧客メールを読み、すべての質問に答える返信を下書きしてください。150 字以内にまとめてください。
  ```

  <Note>
  取り込んだ変数はテキストとして Agent に渡され、2,000 文字で切り詰められます。長い内容を丸ごと渡すには、ファイルとして渡してください。Agent はファイル全体を受け取り、サンドボックス内で読み取ります。
  </Note>

  ## 出力の宣言

  Agent ノードがデフォルトで返す出力は `text` の 1 つで、タスクに対する Agent の返信がテキストとして入ります。後続のステップで、単一の値や特定のファイルなど、より具体的な内容が必要な場合は、独自の出力として宣言します。

  **Agent タスク** 内で `/` を入力して **新しい出力** を選び、その場で名前と型を指定します。宣言した各出力は、下流のノードから単独で参照できます。

  宣言した出力はタスク本文の中に置かれるため、何を入れるかを Agent に直接指示できます。次のタスクでは、`{{vendor_name}}` と `{{quote_file}}` が宣言した出力です。

  ```text wrap
  {{vendor_quotes}} の 3 社の見積もりを比較して、推薦をまとめてください。採用するベンダー名を {{vendor_name}} に、その見積もり PDF を {{quote_file}} に入れてください。
  ```

  Agent が返すファイルは、デフォルトで 1 ファイルあたり最大 50 MB です。`DIFY_AGENT_STUB_UPLOAD_FILE_SIZE_LIMIT` で調整できます。詳細は [環境変数](/ja/self-host/deploy/configuration/environments#新しい-agent) を参照してください。

  </Tab>
</Tabs>
