Manifest内へのフィールド追加
プラグインにAgent戦略を追加するには、manifest.yamlファイル内にplugins.agent_strategiesフィールドを新たに追加し、Agentプロバイダーも定義する必要があります。サンプルコードは以下の通りです。
manifestファイル内の一部の無関係なフィールドは省略されています。Manifestの詳細な形式については、マニフェストファイルによるプラグイン情報の定義ドキュメントを参照してください。
Agentプロバイダーの定義
次に、agent.yamlファイルを新規作成し、基本的なAgentプロバイダー情報を入力する必要があります。
function_calling.yaml戦略ファイルのみが指定されています。
Agent戦略の定義と実装
定義
次に、Agent戦略を実現できるコードを定義する必要があります。function_calling.yamlファイルを新規作成します:
Tool標準形式に似ており、model、tools、query、max_iterationsなど合計4つのパラメータを定義し、最も基本的なAgent戦略の実装を容易にします。このコードの意味は、ユーザーがモデルと使用するツールを選択し、最大反復回数を設定し、最終的にqueryを渡してAgentの実行を開始できるようにすることです。
機能実装コードの作成
パラメータの取得 上記で定義された4つのパラメータに基づき、modelタイプのパラメータはmodel-selectorであり、toolタイプのパラメータは特殊なarray[tools]です。パラメータで取得された形式は、SDKに組み込まれているAgentModelConfigとlist[ToolEntity]を使用して変換できます。
session.model.invoke()関数を使用してモデルを呼び出します。modelから必要な入力パラメータを取得できます。
invoke modelのメソッドシグネチャのサンプルコード:
model_config、プロンプト情報prompt_messages、およびツール情報toolsを渡す必要があります。
そのうちprompt_messagesパラメータは以下のサンプルコードを参照して呼び出すことができますが、tool_messagesは一定の変換が必要です。
invoke modelの使用方法のサンプルコードを参照してください:
self.session.tool.invoke()を使用して呼び出すことができます。invoke toolのメソッドシグネチャのサンプルコード:
provider_type、provider、tool_name、parametersです。そのうちtool_nameとparametersは、Function CallingではLLMによって生成されることがよくあります。invoke toolの使用例コード:
self.session.tool.invoke()関数の出力はGeneratorであり、同様にストリーミング解析が必要であることを意味します。
解析方法については、以下の関数を参照してください:
Log
Agentの思考プロセスを確認したい場合、正常に返されたメッセージを確認する以外に、専用のインターフェースを使用してAgent全体の思考プロセスをツリー構造で表示することもできます。 ログの作成- このインターフェースは
AgentLogMessageを作成して返します。このMessageはログ内のツリーのノードを表します。 parentが渡された場合、そのノードは親ノードを持つことを示します。- ステータスはデフォルトで”Success”(成功)です。ただし、タスクの実行プロセスをよりよく表示したい場合は、まずステータスを”start”に設定して「実行中」のログを表示し、タスク完了後にそのログのステータスを”Success”に更新することができます。これにより、ユーザーはタスクの開始から完了までの全プロセスを明確に確認できます。
labelは、最終的にユーザーにログのタイトルを表示するために使用されます。
start状態を選択した場合、ログ完了インターフェースを使用してステータスを変更できます。
関連リソース
- プラグイン開発の基本概念 - プラグイン開発の全体的なアーキテクチャを理解する
- Agent戦略プラグイン開発例 - 実際のAgent戦略プラグイン開発例
- マニフェストファイルによるプラグイン情報の定義 - Manifestファイルの詳細な形式を理解する
- モデルの逆呼び出し - プラットフォーム内のモデル機能を呼び出す方法を理解する
- ツールの逆呼び出し - 他のプラグインを呼び出す方法を理解する
このページを編集する | 問題を報告する