> ## Documentation Index
> Fetch the complete documentation index at: https://dify-6c0370d8-docs-new-agent-experience.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent

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

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

<Info>
  新しい Agent ノードはベータ版です。利用するには、[`ENABLE_AGENT_V2`](/ja/self-host/deploy/configuration/environments#enable_agent_v2) をオンにして、サンドボックスコンテナを起動してください。
</Info>

<Tabs>
  <Tab title="クラシック 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">
    <Warning>
      **データセキュリティに関する注意**

      Community Edition で同一の Agent を複数のエンドユーザーに公開する場合、Dify は会話間のデータアクセスリスクを抑えるための予防的な保護策を講じます。ただし、CE の隔離はソフトな仕組みにとどまり、ユーザー単位・実行単位の厳格なファイルシステム隔離は行われません。実行同士が同じコンテナや基盤ファイルシステムを共有することもあります。

      そのため、悪意のあるプロンプトやツール実行などの攻撃により、本来の作業ディレクトリの外にあるデータへアクセスされる可能性が残ります。厳格なセキュリティ・コンプライアンス要件がある場合は、Dify Cloud または Dify Enterprise を利用するか、隔離を強化した専用インフラで運用してください。
    </Warning>

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

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

    ## Agent の選択

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

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

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

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

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

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

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

        <Frame>
          <img src="https://mintcdn.com/dify-6c0370d8-docs-new-agent-experience/jyDkeP_GDYJzJ81D/images/use-dify/workflow/save-onetime-agent-to-roster.png?fit=max&auto=format&n=jyDkeP_GDYJzJ81D&q=85&s=7089cb082aad05e994b8e23fc835ef21" alt="一度きりの Agent をエージェント名簿に保存" width="1430" height="700" data-path="images/use-dify/workflow/save-onetime-agent-to-roster.png" />
        </Frame>
      </Tab>
    </Tabs>

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

    ## タスクの指定

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

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

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

    ## 出力の宣言

    すべての Agent ノードは、デフォルトで `text`、`files`、`json` を返します。Agent が書いた内容と生成物は、すべてこの 3 つに入ります。

    後続のステップでは、その中の特定の 1 つ、たとえば単一の値や特定のファイルだけが必要になることがよくあります。その場合は独自の出力として宣言します。**Agent タスク** 内で `/` を入力して **新しい出力** を選び、その場で名前と型を指定します。宣言した各出力は、下流のノードから単独で参照できます。

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

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