Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: エージェント戦略プラグイン
description: Function Callingエージェント戦略をゼロから構築する—LLMにツールを与えて自律的に現在時刻を取得させる方法を示す実践例
---

<Note> ⚠️ このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、[英語版](/en/develop-plugin/dev-guides-and-walkthroughs/agent-strategy-plugin) を参照してください。</Note>
Expand All @@ -8,7 +9,7 @@ title: エージェント戦略プラグイン

以下では、現在時刻を自動的に取得するための**Function Calling**をサポートするプラグインの開発方法を説明します。

### 前提条件
## 前提条件

- Difyプラグインスキャフォールディングツール
- Python環境(バージョン 3.12)
Expand All @@ -21,7 +22,7 @@ title: エージェント戦略プラグイン

---

### 1. プラグインテンプレートの初期化
## 1. プラグインテンプレートの初期化

以下のコマンドを実行して、エージェントプラグインの開発テンプレートを作成します:

Expand Down Expand Up @@ -90,14 +91,14 @@ Models:

---

### 2. プラグインの開発
## 2. プラグインの開発

エージェント戦略プラグインの開発は、2つのファイルを中心に行われます:

- **プラグイン宣言**: `strategies/basic_agent.yaml`
- **プラグイン実装**: `strategies/basic_agent.py`

#### 2.1 パラメータの定義
### 2.1 パラメータの定義

エージェントプラグインを構築するには、まず`strategies/basic_agent.yaml`で必要なパラメータを指定します。これらのパラメータは、LLMの呼び出しやツールの使用など、プラグインのコア機能を定義します。

Expand All @@ -106,7 +107,7 @@ Models:
1. **model**: 呼び出す大規模言語モデル(例:GPT-4、GPT-4o-mini)。
2. **tools**: プラグインの機能を拡張するツールのリスト。
3. **query**: モデルに送信されるユーザー入力またはプロンプトの内容。
4. **maximum_iterations**: 過度な計算を防ぐための最大反復回数
4. **maximum_iterations**: 過度な計算を防ぐための最大イテレーション数

サンプルコード:

Expand Down Expand Up @@ -162,7 +163,7 @@ extra:
![エージェント戦略プラグインの UI](https://assets-docs.dify.ai/2025/01/d011e2eba4c37f07a9564067ba787df8.png)
</Frame>

#### 2.2 パラメータの取得と実行
### 2.2 パラメータの取得と実行

ユーザーがこれらの基本フィールドを入力した後、プラグインは送信されたパラメータを処理する必要があります。`strategies/basic_agent.py`で、エージェント用のパラメータクラスを定義し、ロジック内でこれらのパラメータを取得して適用します。

Expand All @@ -188,7 +189,7 @@ class BasicAgentAgentStrategy(AgentStrategy):
params = BasicParams(**parameters)
```

### 3. モデルの呼び出し
## 3. モデルの呼び出し

エージェント戦略プラグインでは、**モデルの呼び出し**がワークフローの中心です。SDKの`session.model.llm.invoke()`を使用して、テキスト生成、対話などを処理し、LLMを効率的に呼び出すことができます。

Expand Down Expand Up @@ -223,7 +224,7 @@ def invoke(
![ツール生成のためのリクエストパラメータ](https://assets-docs.dify.ai/2025/01/01e32c2d77150213c7c929b3cceb4dae.png)
</Frame>

### 4. ツールの処理
## 4. ツールの処理

ツールパラメータを指定した後、エージェント戦略プラグインは実際にこれらのツールを呼び出す必要があります。`session.tool.invoke()`を使用してこれらのリクエストを行います。

Expand Down Expand Up @@ -267,7 +268,7 @@ for tool_call_id, tool_call_name, tool_call_args in tool_calls:
![ツール呼び出し](https://assets-docs.dify.ai/2025/01/80e5de8acc2b0ed00524e490fd611ff5.png)
</Frame>

### 5. ログの作成
## 5. ログの作成

**エージェント戦略プラグイン**で複雑なタスクを完了するには、複数のステップが必要になることがよくあります。開発者が各ステップの結果を追跡し、意思決定プロセスを分析し、戦略を最適化することは非常に重要です。SDKの`create_log_message`と`finish_log_message`を使用することで、呼び出しの前後のリアルタイムの状態をログに記録し、迅速な問題診断に役立てることができます。

Expand Down Expand Up @@ -330,7 +331,7 @@ model_log = self.create_log_message(
yield model_log
```

#### エージェントプラグイン機能のサンプルコード
### エージェントプラグイン機能のサンプルコード

<Tabs>
<Tab title="モデルの呼び出し">
Expand Down Expand Up @@ -1044,12 +1045,12 @@ class BasicAgentAgentStrategy(AgentStrategy):
</Tab>
</Tabs>

### 6. プラグインのデバッグ
## 6. プラグインのデバッグ

プラグインの宣言ファイルと実装コードを完成させた後、プラグインディレクトリで`python -m main`を実行して再起動します。次に、プラグインが正しく動作することを確認します。Difyはリモートデバッグを提供しています。**プラグイン管理**に移動して、デバッグキーとリモートサーバーアドレスを取得してください。

<Frame>
![](https://assets-docs.dify.ai/2024/12/053415ef127f1f4d6dd85dd3ae79626a.png)
![プラグインの宣言ファイルと実装コードを完成させた後、python -m mainを実行](https://assets-docs.dify.ai/2024/12/053415ef127f1f4d6dd85dd3ae79626a.png)
</Frame>

プラグインプロジェクトに戻り、`.env.example`を`.env`にコピーし、関連するリモートサーバーとデバッグキー情報を挿入します。
Expand All @@ -1072,7 +1073,7 @@ python -m main
![プラグインのブラウズ](https://assets-docs.dify.ai/2025/01/c82ec0202e5bf914b36e06c796398dd6.png)
</Frame>

### プラグインのパッケージング(オプション)
## プラグインのパッケージング(オプション)

すべてが正常に動作したら、以下を実行してプラグインをパッケージングできます:

Expand All @@ -1082,19 +1083,19 @@ python -m main
dify plugin package ./basic_agent/
```

現在のフォルダに`google.difypkg`()という名前のファイルが表示されます。これが最終的なプラグインパッケージです。
現在のフォルダに`basic_agent.difypkg`(プラグイン名と一致)という名前のファイルが表示されます。これが最終的なプラグインパッケージです。

**おめでとうございます!** エージェント戦略プラグインの開発、テスト、パッケージングが完了しました。

### プラグインの公開(オプション)
## プラグインの公開(オプション)

[Difyプラグインリポジトリ](https://github.com/langgenius/dify-plugins)にアップロードできます。その前に、[プラグイン公開ガイドライン](/ja/develop-plugin/publishing/marketplace-listing/release-to-dify-marketplace)を満たしていることを確認してください。承認されると、コードがメインブランチにマージされ、プラグインは自動的に[Dify Marketplace](https://marketplace.dify.ai/)で公開されます。

---

### さらなる探求
## さらなる探求

複雑なタスクには、複数ラウンドの思考とツール呼び出しが必要になることが多く、通常は**モデル呼び出し → ツール使用**をタスクが終了するか最大反復回数に達するまで繰り返します。このプロセスでは、プロンプトを効果的に管理することが重要です。[完全なFunction Calling実装](https://github.com/langgenius/dify-official-plugins/blob/main/agent-strategies/cot_agent/strategies/function_calling.py)を参照して、モデルが外部ツールを呼び出し、その出力を処理するための標準化されたアプローチを確認してください。
複雑なタスクには、複数ラウンドの思考とツール呼び出しが必要になることが多く、通常は**モデル呼び出し → ツール使用**をタスクが終了するか最大イテレーション数に達するまで繰り返します。このプロセスでは、プロンプトを効果的に管理することが重要です。[完全なFunction Calling実装](https://github.com/langgenius/dify-official-plugins/blob/main/agent-strategies/cot_agent/strategies/function_calling.py)を参照して、モデルが外部ツールを呼び出し、その出力を処理するための標準化されたアプローチを確認してください。

{/*
Contributing Section
Expand Down
30 changes: 15 additions & 15 deletions ja/develop-plugin/dev-guides-and-walkthroughs/cheatsheet.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,25 @@ dimensions:
detail: architecture
level: beginner
standard_title: Cheatsheet
language: en
title: Dify プラグイン開発チートシート
language: ja
title: チートシート
description: 環境要件、インストール方法、開発プロセス、プラグインのカテゴリとタイプ、一般的なコードスニペット、よくある問題の解決策を含む、Dify プラグイン開発の包括的なリファレンスガイドです。開発者が素早く参照できるように設計されています。
---

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

### 環境要件
## 環境要件

- Python バージョン 3.12
- Dify プラグインスキャフォールドツール (dify-plugin-daemon)

> 詳細: [開発ツールの初期化](/ja/develop-plugin/getting-started/cli)

### Dify プラグイン開発パッケージの取得
## Dify プラグイン開発パッケージの取得

[Dify Plugin CLI](https://github.com/langgenius/dify-plugin-daemon/releases)

#### 各プラットフォームのインストール方法
### 各プラットフォームのインストール方法

**macOS [Brew](https://github.com/langgenius/homebrew-dify) (グローバルインストール)**:

Expand Down Expand Up @@ -68,13 +68,13 @@ sudo mv dify /usr/local/bin/
dify version
```

### 開発パッケージの実行
## 開発パッケージの実行

ここでは `dify` を例として使用します。ローカルインストール方法を使用している場合は、コマンドを適宜置き換えてください。例: `./dify-plugin-darwin-arm64 plugin init`

### プラグイン開発プロセス
## プラグイン開発プロセス

#### 1. 新しいプラグインの作成
### 1. 新しいプラグインの作成

```bash
./dify plugin init
Expand All @@ -84,7 +84,7 @@ dify version

> 詳細: [Dify プラグイン開発: Hello World ガイド](/ja/develop-plugin/dev-guides-and-walkthroughs/tool-plugin)

#### 2. 開発モードで実行
### 2. 開発モードで実行

`.env` ファイルを設定し、プラグインディレクトリで以下のコマンドを実行します:

Expand All @@ -94,7 +94,7 @@ python -m main

> 詳細: [プラグインのリモートデバッグ](/ja/develop-plugin/features-and-specs/plugin-types/remote-debug-a-plugin)

#### 3. パッケージングとデプロイ
### 3. パッケージングとデプロイ

プラグインをパッケージ化:

Expand All @@ -105,9 +105,9 @@ dify plugin package ./yourapp

> 詳細: [公開の概要](/ja/develop-plugin/publishing/marketplace-listing/release-overview)

### プラグインカテゴリ
## プラグインカテゴリ

#### ツールラベル
### ツールラベル

カテゴリ `tag` [class ToolLabelEnum(Enum)](https://github.com/langgenius/dify-plugin-sdks/blob/main/python/dify_plugin/entities/tool.py)

Expand All @@ -131,7 +131,7 @@ class ToolLabelEnum(Enum):
OTHER = "other"
```

### プラグインタイプリファレンス
## プラグインタイプリファレンス

Dify は様々なタイプのプラグイン開発をサポートしています:

Expand All @@ -141,10 +141,10 @@ Dify は様々なタイプのプラグイン開発をサポートしています
- **モデルプラグイン**: AI モデルを統合
> 詳細: [モデルプラグイン](/ja/develop-plugin/features-and-specs/plugin-types/model-designing-rules)、[新しいモデルのクイック統合](/ja/develop-plugin/dev-guides-and-walkthroughs/creating-new-model-provider)

- **エージェント戦略プラグイン**: エージェントの思考と意思決定戦略をカスタマイズ
- **エージェント戦略プラグイン**: Agent の思考と意思決定戦略をカスタマイズ
> 詳細: [エージェント戦略プラグイン](/ja/develop-plugin/features-and-specs/advanced-development/reverse-invocation)

- **拡張プラグイン**: Endpoints や WebAPP など、Dify プラットフォームの機能を拡張
- **拡張プラグイン**: Endpoints や WebApp など、Dify プラットフォームの機能を拡張
> 詳細: [拡張プラグイン](/ja/develop-plugin/dev-guides-and-walkthroughs/endpoint)

- **データソースプラグイン**: ナレッジベースパイプラインのドキュメントデータソースおよび開始点として機能
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ dimensions:
detail: standard
level: intermediate
standard_title: Model Provider Plugin
language: en
language: ja
title: モデルプロバイダープラグイン
description: この包括的なガイドでは、モデルプロバイダープラグインの作成について詳細な手順を提供し、プロジェクトの初期化、ディレクトリ構造の編成、モデル構成方法、プロバイダーコードの記述、およびコア API 実装の詳細な例を含むモデル統合の実装について説明します。
---

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

### 前提条件
## 前提条件

* [Dify CLI](/ja/develop-plugin/getting-started/cli)
* 基本的な Python プログラミングスキルとオブジェクト指向プログラミングの理解
Expand Down Expand Up @@ -423,8 +423,7 @@ Dify は、開発中にプラグインをテストできるリモートデバッ

```dotenv
INSTALL_METHOD=remote
REMOTE_INSTALL_HOST=<your-dify-domain-or-ip>
REMOTE_INSTALL_PORT=5003
REMOTE_INSTALL_URL=<your-dify-host>:5003
REMOTE_INSTALL_KEY=****-****-****-****-****
```

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: "データソースプラグイン"
title: データソースプラグイン
description: Dify 1.9.0以降のデータソースプラグインを構築し、ナレッジパイプラインにドキュメントを供給—アーキテクチャ、コードサンプル、デバッグ手順
---

<Note> ⚠️ このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、[英語版](/en/develop-plugin/dev-guides-and-walkthroughs/datasource-plugin) を参照してください。</Note>
Expand All @@ -20,7 +21,7 @@ title: "データソースプラグイン"
Difyは3種類のデータソースプラグインをサポートしています:Webクローラー、オンラインドキュメント、オンラインドライブ。プラグインコードを実装する際、プラグインの機能を提供するクラスは特定のデータソースクラスを継承する必要があります。3種類のプラグインタイプはそれぞれ異なる親クラスに対応しています。

<Info>
親クラスを継承してプラグイン機能を実装する方法については、[ツールプラグイン:ツールコードの準備](/ja/develop-plugin/dev-guides-and-walkthroughs/tool-plugin#4-ツールコードの準備)を参照してください。
親クラスを継承してプラグイン機能を実装する方法については、[ツールプラグイン:ツールコードの準備](/ja/develop-plugin/dev-guides-and-walkthroughs/tool-plugin#4-prepare-tool-code)を参照してください。
</Info>

各データソースプラグインタイプは複数のデータソースをサポートしています。例えば:
Expand Down Expand Up @@ -112,7 +113,7 @@ datasources:
```

<Info>
プロバイダーYAMLファイルの作成について詳しくは、[ツールプラグイン:サードパーティサービス認証情報の完成](/ja/develop-plugin/dev-guides-and-walkthroughs/tool-plugin#2-サードパーティサービス認証情報の完成)を参照してください。
プロバイダーYAMLファイルの作成について詳しくは、[ツールプラグイン:サードパーティサービス認証情報の完成](/ja/develop-plugin/dev-guides-and-walkthroughs/tool-plugin#2-complete-third-party-service-credentials)を参照してください。
</Info>

<Info>
Expand Down
Loading