> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# ツール

> プラグインからインストール済みツール、Workflow as Tool、カスタムツールを呼び出す

> このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、[英語版](/en/develop-plugin/features-and-specs/advanced-development/reverse-invocation-tool) を参照してください。

プラグインは、Dify プラットフォーム内の他のツールタイプのプラグインを逆呼び出しできます。逆呼び出しの基本概念に馴染みがない場合は、まず [Dify サービスの逆呼び出し](/ja/develop-plugin/features-and-specs/advanced-development/reverse-invocation) をお読みください。

次のようなシナリオを考えてみます。

* ツールタイプのプラグインが機能を実装したものの、結果が期待どおりではなく、データの後処理が必要な場合。
* タスクに Web スクレイパーが必要で、スクレイピングサービスを柔軟に選びたい場合。
* 複数のツールの結果を集約する必要があるが、Workflow アプリケーションでは処理が難しい場合。

このような場合、プラグインから既存の他のツールを呼び出します。市場のツール、自作の Workflow as Tool、カスタムツールのいずれも、プラグインの `self.session.tool` フィールドを通じて利用できます。

## インストール済みツールの呼び出し

現在のワークスペースにインストールされている任意のツールを呼び出します。他のツールタイプのプラグインも含まれます。

### エントリーポイント

```python theme={null}
    self.session.tool
```

### インターフェース

```python theme={null}
    def invoke_builtin_tool(
        self, provider: str, tool_name: str, parameters: dict[str, Any]
    ) -> Generator[ToolInvokeMessage, None, None]:
        pass
```

* **`provider`**：プラグイン ID とツール供給元名を組み合わせたもので、`langgenius/google/google` のような形式です。
* **`tool_name`**：具体的なツール名です。
* **`parameters`**：ツールに渡す引数です。

## Workflow as Tool の呼び出し

Workflow as Tool の詳細については、[ツールプラグインドキュメント](/ja/develop-plugin/dev-guides-and-walkthroughs/tool-plugin) を参照してください。

### エントリーポイント

```python theme={null}
    self.session.tool
```

### インターフェース

```python theme={null}
    def invoke_workflow_tool(
        self, provider: str, tool_name: str, parameters: dict[str, Any]
    ) -> Generator[ToolInvokeMessage, None, None]:
        pass
```

* **`provider`**：このツールの ID です。
* **`tool_name`**：ツールの作成時に指定した名前です。

## カスタムツールの呼び出し

### エントリーポイント

```python theme={null}
    self.session.tool
```

### インターフェース

```python theme={null}
    def invoke_api_tool(
        self, provider: str, tool_name: str, parameters: dict[str, Any]
    ) -> Generator[ToolInvokeMessage, None, None]:
        pass
```

* **`provider`**：このツールの ID です。
* **`tool_name`**：OpenAPI 仕様の `operation_id` です。`operation_id` が存在しない場合は、Dify によって自動生成された `tool_name` であり、ツール管理ページで確認できます。

## 関連リソース

* [Dify サービスの逆呼び出し](/ja/develop-plugin/features-and-specs/advanced-development/reverse-invocation) - 逆呼び出しの基本概念を理解する
* [アプリの逆呼び出し](/ja/develop-plugin/features-and-specs/advanced-development/reverse-invocation-app) - プラットフォーム内でアプリを呼び出す方法を学ぶ
* [モデルの逆呼び出し](/ja/develop-plugin/features-and-specs/advanced-development/reverse-invocation-model) - プラットフォーム内でモデル機能を呼び出す方法を学ぶ
* [ツールプラグイン開発ガイド](/ja/develop-plugin/dev-guides-and-walkthroughs/tool-plugin) - ツールプラグインの開発方法を学ぶ
* [高度なツールプラグイン](/ja/develop-plugin/dev-guides-and-walkthroughs/tool-plugin) - Workflow as Tool などの高度な機能について学ぶ
