AIエージェントツール
この記事では、Mosaic AI エージェント フレームワークを使用した AI エージェント ツールの構築の概要について説明します。
AIエージェントツールを使用すると、エージェントは、構造化データや非構造化データの取得やカスタムコードの実行など、言語生成以外のタスクを実行できます。
AI エージェントの概要については、「 複合 AI システムと AI エージェントとは」を参照してください。
Unity Catalog 関数ツールとエージェントコードツール
Mosaic AI Agent Framework を使用してツールを作成するには、次の方法を任意に組み合わせて使用できます。
メソッド | 説明 |
---|---|
Unity Catalog の関数 |
|
エージェント コード ツール |
|
どちらの方法も、カスタムPythonエージェントまたはLangGraphなどのエージェントオーサリングライブラリと互換性があります。
AI エージェント ツールの作成
エージェントがカスタムPythonコードを実行できるようにするAIエージェントツールを作成する方法を学びます。 Unity Catalog 関数を使用したカスタム AI エージェント ツールの作成を参照してください。
エージェント ツールの例
エージェントツールの例については、次の記事を参照してください。
- コードインタープリターツール を使用すると、エージェントはPythonなどの任意のコードを実行できます。
- 構造化データ取得ツールを使用すると 、エージェントはSQLテーブルなどの構造化データソースをクエリできます。
- 非構造化データ取得ツール を使用すると、エージェントはテキストコーパスなどの非構造化データソースをクエリしてRAGを実行できます。
- 外部接続ツールは 、エージェント ツールを外部サービスおよび APIに接続します。
Unity Catalog ツールをエージェントに追加する
エージェントのコードで定義されるエージェントコードツールとは異なり、Unity Catalog ツールは、エージェントに明示的に追加して使用できるようにする必要があります。
Databricks では、 UCFunctionToolkit
を使用して Unity Catalog ツールをエージェントオーサリングフレームワークや SDK と統合することをお勧めします。 Unity Catalog 関数を使用したカスタム AI エージェント ツールの作成を参照してください。
また、AI Playground を使用して、Unity Catalog ツールをエージェントにすばやく追加し、動作のプロトタイプを作成することもできます。 AI Playground でのツール呼び出しエージェントのプロトタイピングを参照してください。
明確なドキュメントでツールコールを改善
十分に文書化されたツールは、AIエージェントがツールを効果的に使用するタイミングと方法を理解するのに役立ちます。 次のベスト プラクティスに従って、ツール パラメーターと戻り値を文書化します。
- Unity Catalog関数の場合は、
COMMENT
を使用してツールの機能とパラメーターを記述します。 - 期待される入力と出力を明確に定義します。
- ユーザビリティを向上させるために、意味のある説明を提供します。
例: 効果的なツールの文書化
次の例は、構造化テーブルに対してクエリを実行する Unity Catalog 関数ツールの有効な COMMENT
文字列を示しています。
CREATE OR REPLACE FUNCTION main.default.lookup_customer_info(
customer_name STRING COMMENT 'Name of the customer whose info to look up.'
)
RETURNS STRING
COMMENT 'Returns metadata about a specific customer including their email and ID.'
RETURN SELECT CONCAT(
'Customer ID: ', customer_id, ', ',
'Customer Email: ', customer_email
)
FROM main.default.customer_data
WHERE customer_name = customer_name
LIMIT 1;
例: 効果のないツールの文書化
次の例では、重要な詳細が欠落しているため、AI エージェントがツールを効果的に使用するのが難しくなっています。
CREATE OR REPLACE FUNCTION main.default.lookup_customer_info(
customer_name STRING COMMENT 'Name of the customer.'
)
RETURNS STRING
COMMENT 'Returns info about a customer.'
RETURN SELECT CONCAT(
'Customer ID: ', customer_id, ', ',
'Customer Email: ', customer_email
)
FROM main.default.customer_data
WHERE customer_name = customer_name
LIMIT 1;