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

# ツール

> 外部サービスやAPIに接続

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

[Dify ツール](/ja/use-dify/workspace/tools)をワークフローに独立したノードとして追加します。

これにより、ワークフローが外部サービスや API と連携し、リアルタイムデータへのアクセスやアクション（ウェブ検索、データベースクエリ、コンテンツ処理など）の実行が可能になります。

## ノードの追加と設定

1. キャンバスで**ノードを追加** > **ツール**をクリックし、利用可能なツールからアクションを選択します。

2. 省略可：ツールが認証を必要とする場合、既存の認証情報を選択するか新しい認証情報を作成します。

   <Info>
     デフォルトの認証情報を変更するには、**ツール**または**プラグイン**に移動します。
   </Info>

3. その他の必須ツール設定を入力します。

## ツールの入力を準備する

ツールは上流ノードの出力と正確には一致しない特定の形式の入力を必要とする場合があります。データの再フォーマット、特定の情報の抽出、複数ノードからの出力の結合が必要になることがあります。

中間ノードを手動で追加したり上流の出力を変更する代わりに、**必要な場所で直接**入力を準備できます。

2つのアプローチが利用可能です：

| アプローチ                                                                                                                       | 適するケース                               | 仕組み                                                                                     |
| :-------------------------------------------------------------------------------------------------------------------------- | :----------------------------------- | :-------------------------------------------------------------------------------------- |
| **変数の組み立て**                                                                                                                 | 上流の出力にデータが存在するが、再フォーマット、抽出、結合が必要な場合。 | <ol><li>ニーズを記述します。</li><li>内部の**コード**ノードが自動的に作成され、変換を処理します。</li></ol>                   |
| **LLM の<Tooltip tip="対話履歴には、実行中に生成されたユーザーメッセージ、アシスタントメッセージ、ツールメッセージが含まれます。ノードの `context` 出力変数で確認できます。">対話履歴</Tooltip>から抽出** | データが LLM の対話履歴に埋め込まれており、解釈と抽出が必要な場合。 | <ol><li>ニーズを記述します。</li><li>内部の **LLM** ノードが自動的に作成され、その対話履歴を読み取り、必要なデータを抽出します。</li></ol> |

### 変数の組み立て

<Frame caption="">
  <img src="https://mintcdn.com/dify-6c0370d8-add-new-agent/ao2U4YysjV33M8QA/images/assemble_variables.png?fit=max&auto=format&n=ao2U4YysjV33M8QA&q=85&s=dc86206311aceeb392a6bf56502fd3f7" alt="変数の組み立て" width="2384" height="1418" data-path="images/assemble_variables.png" />
</Frame>

上流の出力にデータが明確に構造化されて存在するが、変換が必要な場合に使用します——部分文字列の抽出、複数出力の結合、データ型の変更など。

<Accordion title="例：複数ノードの出力を結合する">
  3つの上流 LLM ノードがそれぞれ商品説明を生成します。下流のツールは全説明を含む単一の配列を期待しています。

  **変数の組み立て**を選択し、「LLM1、LLM2、LLM3 のテキスト出力を結合してください」と記述します。

  システムがコードを生成し、ツールが期待する配列形式で出力を結合します。
</Accordion>

<Note>
  変数を組み立てる前に、対象の上流ノードを実行して出力データを利用可能にしてください。
</Note>

1. 変数を受け付けるツール入力フィールドで、`/` を入力しドロップダウンから**変数の組み立て**を選択します。

2. 自然言語でニーズを記述すると、AI がデータ変換用のコードを生成します。生成されたコードは入力フィールドの期待形式に自動的に適合します。

3. **実行**をクリックしてコードをテストします。内部のコードノードが開き、利用可能な上流データで実行されます。

4. コードノードの出力を確認し、期待通りかを検証します：

   * 問題なければ、そのまま終了します。コードは自動的に保存・適用されます。

   * 修正が必要な場合は、コードフィールドのコードジェネレーターアイコンをクリックして AI で引き続き改善するか、コードを直接編集します。

   <Frame caption="コードジェネレーターアイコン">
     <img src="https://mintcdn.com/dify-6c0370d8-add-new-agent/ao2U4YysjV33M8QA/images/code_generator_icon.png?fit=max&auto=format&n=ao2U4YysjV33M8QA&q=85&s=ae9d0caa602c930c45092e6c40723c11" alt="コードジェネレーターアイコン" width="1010" height="624" data-path="images/code_generator_icon.png" />
   </Frame>

<Info>
  後から**変数の組み立て**インターフェースを再度開くには：

  1. 組み立て済み変数の横にある**内部を表示**をクリックします。
  2. 内部のコードノードを選択します。
  3. コードジェネレーターアイコンをクリックします。
</Info>

### LLM の対話履歴から抽出

<Frame caption="">
  <img src="https://mintcdn.com/dify-6c0370d8-add-new-agent/4xSf8KIlOPU8MjLk/images/extract_from_llm_chat_history.png?fit=max&auto=format&n=4xSf8KIlOPU8MjLk&q=85&s=ade6a58516abf8bb0c744a660881ad80" alt="LLM の対話履歴から抽出" width="1022" height="774" data-path="images/extract_from_llm_chat_history.png" />
</Frame>

必要な情報が LLM の対話履歴——実行中に生成されたユーザー、アシスタント、ツールメッセージ——に埋め込まれている場合に使用します。LLM の対話履歴は `context` 出力変数で確認できます。

<Accordion title="例：混在する出力からコードを抽出する">
  上流の LLM ノードがコードを生成しますが、出力には自然言語の説明やコメントも含まれています。下流のコードインタープリターツールは純粋な実行可能コードを必要とします。

  上流 LLM を変更してコードのみを出力させる代わりに、コードインタープリターの入力フィールドで `/` を入力してその LLM ノードを選択し、「実行可能コードのみを抽出してください」と記述します。

  システムは選択した LLM ノードの対話履歴を読み取り、コードインタープリターが期待する形式でコード部分のみを抽出する内部 LLM ノードを作成します。
</Accordion>

<Note>
  対話履歴から抽出する前に、対象の上流 Agent または LLM ノードを実行して `context` データを利用可能にしてください。
</Note>

1. 変数を受け付ける入力フィールドで、`/` を入力し上流の Agent または LLM ノードを選択します。

2. その対話履歴から何を抽出したいかを記述します。

3. **内部を表示**をクリックし、内部の LLM ノードをテスト実行します。

   このノードは上流ノードの対話履歴を自動的にインポートし、構造化出力を使って要求された形式に合わせます。

4. 出力を確認し、必要に応じて改善します。
