AI エージェント ツールの作成
プレビュー
この機能はパブリックプレビュー段階です。
この記事では、Mosaic AI エージェント フレームワークを使用した AI エージェント ツールの構築の概要について説明します。
Agent Framework は、開発者が AI エージェントが言語生成以外のアクション (構造化データや非構造化データの取得、コードの実行など) を実行するために使用できるツールを作成するのに役立ちます。
AI エージェントの概要については、「 複合 AI システムと AI エージェントとは」を参照してください。
Unity Catalog 関数ツールとエージェントコードツール
Mosaic AI Agent Framework を使用してツールを作成し、エージェントに追加するには、次の方法を任意に組み合わせて使用できます。
Unity Catalog の機能: Unity Catalog の機能は Unity Catalog 内で定義および管理され、組み込みのセキュリティ機能とコンプライアンス機能を提供します。 ツールを Unity Catalog 関数として記述すると、見つけやすさ、ガバナンス、再利用が容易になります。 Unity Catalog 関数は、大規模なデータセットに変換と集計を適用する場合に特に適しています。
エージェント コード ツール: これらのツールは、AI エージェントを定義するのと同じコードで定義されます。 このアプローチは、任意のコードまたはライブラリを使用して REST APIsを呼び出す場合、または低遅延ツールを実行する場合に便利です。 ただし、このアプローチには、Unity Catalog 関数によって提供される組み込みの検出可能性とガバナンスが欠けています。
どちらの方法も、カスタムPythonコードで記述されたエージェント、またはLangGraphなどのエージェントオーサリングライブラリを使用してエージェントと互換性があります。
Unity Catalog 関数ツールとエージェント コード ツールの例については、「エージェント ツールの例」を参照してください
ドキュメントによるツールコールの改善
明確で詳細なドキュメントは、AIエージェントが提供したツールをいつ、どのように使用するかを理解するのに役立ちます。 ツールを作成するときは、ツールのパラメーターと戻り値を徹底的に文書化して、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;
効果のないツールの文書化の例
次の例は、戻り値などの重要な情報を見逃している無効な COMMENT
文字列を示しています。
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;
エージェント ツールの例
エージェントツールの例については、次の記事を参照してください。
コードインタープリターツール を使用すると、エージェントはPythonなどの任意のコードを実行できます。
構造化データ取得ツールを使用すると 、エージェントはSQLテーブルなどの構造化データソースをクエリできます。
非構造化データ取得ツール を使用すると、エージェントはテキストコーパスなどの非構造化データソースをクエリして、取得拡張生成を実行できます。
Unity Catalog ツールをエージェントに追加する
Unity Catalog ツールを作成したら、エージェントに追加します。 LangChainエージェントは、 UCFunctionToolkit を活用してUCツールを組み込むことができます。
AI Playground からのツールコールエージェントのエクスポート
AI Playground は、Unity Catalog ツールを LLM に追加し、エージェントをテストし、そのコードをエクスポートする便利な方法を提供します。
AI Playground を使用してエージェントをエクスポートするには、ワークスペースが次の要件を満たしている必要があります。
Unity Catalog を有効にする必要があります。
サーバレス コンピュート を有効にする必要があります。
トークン単位の従量課金 基盤モデルまたは外部モデルのいずれかを有効にする必要があります。
次の手順を使用して、Tool-Calling エージェントのコードをエクスポートします。
AI Playground から、[ Tools enabled ] ラベルの付いたモデルを選択します。
[ツール] を選択し、[ツールの追加] をクリックします。
ドロップダウン メニューで、 Unity Catalog 機能を選択します。
プレイグラウンドを使用して、LLM、ツール、およびシステムプロンプトの現在の組み合わせをチャットしてテストします。 バリエーションを試して、現在のセットアップがどのように機能するかを感じてください。
ツールを追加した後、エージェントを Python ノートブックにエクスポートします。
[ エクスポート ] をクリックして、エージェントを定義してデプロイする Python ノートブックを生成します。
エージェントコードをエクスポートすると、ワークスペースに保存された3つのファイルが表示されます。
agent
ノートブック: LangChainを使用してエージェントを定義するPythonコードが含まれています。driver
ノートブック: エージェントフレームワークを使用してPython エージェントをログに記録、トレース、登録する デプロイするためのAI Mosaic AIコードが含まれています。config.yml
: ツール定義など、エージェントに関する構成情報が含まれます。
agent
ノートブックを開いて、エージェントを定義するLangChainコードを確認します。このノートブックを使用して、エージェントをプログラムでテストおよび反復処理します (他のツールの定義など)。エージェントの出力に問題がなければ、
driver
ノートブックを実行してログに記録し、エージェントをモデルサービング エンドポイントにデプロイします。