watsonx.ai がエージェントラボで提供するツールに加えて、独自のツールを作成し、カスタム入力を取得して特定の出力を生成することもできます。 エージェントは、ユーザーの質問に対する応答を生成するために、エージェントの設定で他のツールと併用してカスタムツールを使用することができます。
カスタムツールの設定
Agent Labでカスタムツールを作成するには、エージェントフレームワークがツールを登録および実行する際に使用する以下の詳細情報を定義する必要があります
カスタムツールを設定するには、名前を指定し、ツールの主な機能を説明します。
重要: カスタムツールが何を行うのかについて、受け入れられる入力やツールの応答のフォーマットを含めて詳細に説明してください。 foundation model は、入力コンテキストとしてこの情報を消費し、エージェントフレームワークがエージェントの最終応答を生成するツールを使用すべきかどうかを決定します。カスタムツールが受け入れる入力のフォーマットをJSONスキーマとして定義します。 各入力について、変数名、入力が表すもの、入力のデータ型を指定します。
JSON スキーマで定義された入力変数を引数として受け取り、特定の応答を返す Python 関数を定義します。 現在、カスタムツールのコアロジックを実行する Python 関数は1つだけ定義できます。
注:Python のコードパッケージをインストールすることはできませんが、 watsonx.ai に含まれるパッケージをインポートすることはできます。 プロジェクトのホームページから 、[管理] タブをクリックします。 「クリック環境」 をクリックし 、「テンプレート」タブをクリックします。 Python 3.11 S テンプレートで 24.1 を開き、同梱パッケージの一覧を表示します。 オプション : 例となる入力を与え、カスタムツールを実行して、関数が正しい結果を生成していることを検証することで、関数のテストとデバッグを行うことができます。
制限事項 :一度に1セットの入力をテストできます。 異なる値のセットをテスト入力として使用するには、テスト入力JSONスキーマを手動で編集し、コードを再実行する必要があります。「作成」 をクリックして、エージェントにカスタムツールを追加します。
オプション :カスタムツールの設定を更新するには、 設定アイコン をクリックします。
Agent Labで作成されたカスタムツールの例
カスタムツールを作成することを選択すると、 定義ページでツールを段階的に開発することができます。 ツールが受け付ける入力の種類を指定し、エージェントフレームワークがカスタムツールを呼び出す際に実行される Python 関数を定義する必要があります。 テストページでは、サンプルテスト入力を提供し、コードを検証するために関数を実行することができます。
次の例では、2つの整数の積を計算するカスタムツールを定義します。 各入力パラメータを指定し、各入力を受け入れ、乗算操作を実行する Python 関数を定義します。
カスタムツールに名前を付け、ツールの詳細な説明を入力します。説明には、入力および出力フォーマット、ツールが実行する主なタスクを含めます。 例:
Name: Multiple numbers
Description: Use this tool when multiplying two numbers. The tool consists of a Python function named "multiply". The function takes two parameters, "number_1" and "number_2". Both parameters are expected to be numerical values, which can only be integers numbers. The tool's primary operation is to multiply two input numbers by using the '*' operator in Python, which performs multiplication. The result of the operation is returned as the output of the tool.
Python 関数の入力パラメータを定義するJSONスキーマを提供してください。各パラメータの名前、データタイプ、説明を含めてください
{ "number_1": { "title": "Number 1", "description": "The first number to multiply", "type": "integer" }, "number_2": { "title": "Number 2", "description": "The second number to multiply", "type": "integer" } }
2つの数値を入力として受け取り、それらの値を乗算し、結果を返す Python 関数を定義します。
def multiply (number_1, number_2): return number_1 * number_2
テストページでは、 Python 関数の引数に対して定義したJSONスキーマに基づいて、テスト入力用のJSONスキーマが自動生成されます。 以下の通り、2つの整数を関数に入力として渡します
{ "number_1": 4, "number_2": 5 }
「実行」をクリックしてコードをテストし、結果を検証します。 結果] ウィンドウには、20が結果として表示されます。
親トピック: エージェントラボ