> For the complete documentation index, see [llms.txt](https://docs.digitalhumans.jp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digitalhumans.jp/dify-guide/plugins/dify-docs-install-and-configure-tool-plugins.md).

# ツールプラグインの導入と設定

Difyで**ツールプラグイン**を導入し、**チャットフロー**から外部APIや追加機能を呼び出すための設定手順をまとめます。

{% hint style="warning" %}
本手順は一般的なDifyの仕様に基づいています。バージョンによりUIの表記が異なる場合があります。
{% endhint %}

## 1. ビルトインツールの設定

### 1.1 Google Search（SerpAPI）設定例

### 手順A：SerpAPIアカウント準備

1. <https://serpapi.com/> にアクセス
2. アカウントを作成（無料プランあり）
3. ダッシュボードから**API Key**を取得

### 手順B：Dify側での設定

![](/files/3UG4noKpcFg4KXcH4RHY)

1. 左メニューから **「ツール」** を開く
2. 一覧（または検索）で **「Google Search」** を探す
3. **「認証」**（または設定/Configure）を開く
4. **SerpAPI Key** を入力
5. **保存**

### よくある注意点

* API Keyが未設定だと、ツール呼び出し時に失敗します（空の結果、認証エラーなど）。
* 環境（クラウド/セルフホスト、権限）により、表示文言が「ツール」「プラグイン」などに揺れる場合があります。

## 2. カスタムツールの作成

Difyのカスタムツールは、基本的に **OpenAPI（Swagger）形式**で定義します。

### 2.1 OpenAPI定義（例）

```yaml
openapi: 3.0.0
info:
title: My Custom API
version: 1.0.0
servers:
- url: https://api.example.com
paths:
  /search:
    get:
      operationId: searchProducts
      summary: 商品を検索する
      parameters:
        - name: query
          in: query
          required: true
          schema:
            type: string
          description: 検索キーワード
      responses:
        '200':
          description: 検索結果
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    name:
                      type: string
                    price:
                      type: number
```

### 2.2 カスタムツール登録手順

![](/files/34ho8kHKsSMODXgew6Ou)

1. 左メニュー **「ツール」→「カスタムツール」** を開く
2. **「カスタムツールを作成」** を選択
3. 基本情報（名称、説明など）を入力

   | 項目   | 入力内容                 |
   | ---- | -------------------- |
   | 名前   | ツールの識別名（英数字推奨）       |
   | 説明   | ツールの用途（LLMが参照）       |
   | スキーマ | OpenAPI仕様（YAML/JSON） |
4. OpenAPI仕様を貼り付け/アップロード
5. 認証が必要なら認証方式を設定

   | 認証タイプ        | 用途              |
   | ------------ | --------------- |
   | なし           | 認証不要のAPI        |
   | API Key      | ヘッダーまたはクエリでキー送信 |
   | Basic認証      | ユーザー名/パスワード     |
   | Bearer Token | OAuthトークン       |
6. 保存

### 2.3 認証設定（API Key例）

```markdown
認証タイプ: API Key
キー名: X-API-Key
キー位置: Header
キー値: （実際のAPIキー）
```

{% hint style="warning" %}
キーは漏洩しないよう権限・保管・ローテーションを設計してください。
{% endhint %}

## 3. チャットフローでのツール利用

### 3.1 ツールノードの追加

![](/files/dAKlJ2z1KhSYvJH98ybz)

### 手順

1. チャットフロー編集画面を開く
2. **「＋」→「ツール」** を選択
3. 使用するツール（ビルトイン/カスタム）を選択

### 3.2 パラメータ設定

![dify-docs-install-and-configure-tool-plugins\_dhkk\_flow\_tool\_settings.png](/files/7y7EtyMQ3BHYNNyYqAgP)

### 手順

1. ツールに渡す入力（クエリ、ID、本文など）を、フロー内の変数と接続します。
2. 出力は後続ノード（LLM、条件分岐、整形ノードなど）で利用します。

### 3.3 LLMによるツール自動選択

LLMノード側で、状況に応じてツールを選択・実行できるようにします。

### 手順

1. LLMノードを選択
2. **「ツール」** セクションを開く
3. 使用を許可するツールを選択
4. **「ツール呼び出しを許可」** をON

### ツール選択を制御する指示例（システムプロンプト）

```markdown
ユーザーが最新のニュースについて質問した場合のみ、Google Searchツールを使用してください。
ナレッジベースで回答できる質問にはツールを使用しないでください。
```

## 4. エラーハンドリング（失敗時設計）

### 4.1 IF/ELSEでの分岐例

* 条件例：`tool_output is empty`
  * True： 「申し訳ありません、情報を取得できませんでした」
  * False：通常処理へ

### 4.2 タイムアウト設定（目安）

* ビルトインツール：**10〜30秒**
* カスタムツール：API特性（平均応答、最大応答）に応じて調整

## 5. デジタルヒューマン向けベストプラクティス

### 5.1 応答速度の最適化

* ツール使用は必要最小限にする
* 並列実行できるツールは同時に実行
* キャッシュ可能な情報は事前取得
* タイムアウトは短め（例：5〜10秒）を検討

### 5.2 フォールバック設計

* ツール失敗時も会話を継続できる設計
* 「調べています」などの中間応答を用意
* エラー時の代替回答（次の質問誘導、別手段提示）を準備

> **Note**: デジタルヒューマンでは応答の自然さが重要です。ツール実行中の待ち時間が長いと、ユーザー体験が損なわれる可能性があります。

## 付録：ツールノードでよく使う設定項目

* **ツール名**：フロー内で識別しやすい名前
* **入力パラメータ**：ツールに渡す値（変数で指定）
* **タイムアウト**：外部APIの待ち時間上限
* **エラーハンドリング**：失敗時の挙動（スキップ、デフォルト値など）

Difyでツールプラグインを導入し、チャットフローで活用するための設定手順を解説します。
