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;

エージェント ツールの例

エージェントツールの例については、次の記事を参照してください。

Unity Catalog ツールをエージェントに追加する

Unity Catalog ツールを作成したら、エージェントに追加します。 LangChainエージェントは、 UCFunctionToolkit を活用してUCツールを組み込むことができます。

AI Playground からのツールコールエージェントのエクスポート

AI Playground は、Unity Catalog ツールを LLM に追加し、エージェントをテストし、そのコードをエクスポートする便利な方法を提供します。

AI Playground を使用してエージェントをエクスポートするには、ワークスペースが次の要件を満たしている必要があります。

次の手順を使用して、Tool-Calling エージェントのコードをエクスポートします。

  1. AI Playground から、[ Tools enabled ] ラベルの付いたモデルを選択します。

    ツール呼び出し LLM を選択します
  2. [ツール] を選択し、[ツールの追加] をクリックします。

  3. ドロップダウン メニューで、 Unity Catalog 機能を選択します。

    ツールを選択
  4. プレイグラウンドを使用して、LLM、ツール、およびシステムプロンプトの現在の組み合わせをチャットしてテストします。 バリエーションを試して、現在のセットアップがどのように機能するかを感じてください。

    LLMのプロトタイプ作成

    ツールを追加した後、エージェントを Python ノートブックにエクスポートします。

  5. [ エクスポート ] をクリックして、エージェントを定義してデプロイする Python ノートブックを生成します。

    エージェントコードをエクスポートすると、ワークスペースに保存された3つのファイルが表示されます。

    • agent ノートブック: LangChainを使用してエージェントを定義するPythonコードが含まれています。

    • driver ノートブック: エージェントフレームワークを使用してPython エージェントをログに記録、トレース、登録する デプロイするためのAI Mosaic AIコードが含まれています。

    • config.yml: ツール定義など、エージェントに関する構成情報が含まれます。

  6. agentノートブックを開いて、エージェントを定義するLangChainコードを確認します。このノートブックを使用して、エージェントをプログラムでテストおよび反復処理します (他のツールの定義など)。

  7. エージェントの出力に問題がなければ、 driver ノートブックを実行してログに記録し、エージェントをモデルサービング エンドポイントにデプロイします。