```mdx
---
title: "エージェント"
description: "Give LLMs autonomous control over tools for complex task execution"
icon: "robot"
---

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

<Frame caption="エージェントノードの設定インターフェース">
  <img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/1f4d803ff68394d507abd3bcc13ba0f3.png" alt="Agent node interface" />
</Frame>

## エージェント戦略

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

<Frame caption="利用可能なエージェント戦略オプション">
  <img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/f14082c44462ac03955e41d66ffd4cca.png" alt="Agent strategies selection" />
</Frame>

<Tabs>
  <Tab title="関数呼び出し">
    LLMのネイティブな関数呼び出し機能を使用して、ツール定義をtoolsパラメータを通じて直接渡します。LLMは、いつどのようにツールを呼び出すかをその組み込みのメカニズムを使用して決定します。
    
    GPT-4、Claude 3.5、および他の強力な関数呼び出しサポートを持つモデルに最適です。
  </Tab>
  
  <Tab title="推理と行動 (ReAct)">
    明確な推論ステップを通じてLLMを導く構造化されたプロンプトを使用します。透明性のある意思決定のために**考え→行動→観察**サイクルをフォローします。
    
    ネイティブの関数呼び出しがないモデルや、明確な推論の痕跡が必要な場合に適しています。
  </Tab>
</Tabs>

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

<Frame caption="関数呼び出し戦略の設定">
  <img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/10505cd7c6f0b3ba10161abb88d9e36b.png" alt="Function calling setup" />
</Frame>

## 設定

### モデルの選択

選択したエージェント戦略をサポートするLLMを選んでください。より高性能なモデルは複雑な推論をよりよく処理しますが、1回のイテレーションごとにコストがかかります。関数呼び出しの戦略を使用する場合は、モデルが関数呼び出しをサポートしていることを確認してください。

### ツールの設定

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

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

**説明** - ツールが何をするか、いつ使用するかの明確な説明（これはエージェントの意思決定を導きます）

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

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

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

**クエリ**は、ユーザーの入力やエージェントが取り組むべきタスクを指定します。これは、前のワークフローノードからの動的な内容である可能性があります。

<Frame caption="エージェント設定パラメータ">
  <img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/54c8e4f0eaa7379bd8c1b5ac6305b326.png" alt="Agent configuration interface" />
</Frame>

### 実行制御

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

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

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

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

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

## 出力変数

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

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

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

**推論トレース** - ステップバイステップの意思決定プロセス（特にReAct戦略では詳細に）をJSON出力で利用可能

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

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

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

## 使用例

**調査と分析** - エージェントは複数のソースを自律的に検索し、情報を合成し、包括的な回答を提供できます。

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

**多段階データ処理** - 中間結果に依存する複雑なワークフロー。

**動的API統合** - API呼び出しのシーケンスが応答や条件に依存し、事前に決定できないシナリオ。

## ベストプラクティス

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

**適切な反復制限**は、コストを抑制しながら複雑なタスクに十分な柔軟性を提供します。

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

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