Azure Databricks にエージェントをデプロイする

本番環境でエージェントを動かすには、そのコードをマネージド コンピューティング環境にデプロイし、ユーザーやアプリケーションからのリクエストに対応します。 デプロイされたエージェントは、フレームワークやハーネス、エージェントサーバー、エージェントランタイムという3つの要素から成り立っています。 Agent Bricksは、Databricksアプリ上で DurableAgentServer からエージェントランタイムまでの各レイヤーでオプションを提供します。

エージェント計算スタック

デプロイされたエージェントには3つの層があります。 各層はその上の層に包まれています。

エージェントのコンピュートスタック: Agent Runtime上で動作し、呼び出しAPIを公開するエージェントサーバーでラップされた、フレームワークまたはハーネス。

レイヤー それが何をするか Azure Databricks のオプション
フレームワークまたはハーネス エージェントループを実行し、モデルやツールを呼び出し、次に何をするかを決めます。 LangGraphやOpenAIエージェントSDKのようなフレームワークやハーネス、あるいはOmnigentのようなメタハーネスなど、あらゆるものが対象です。
エージェントサーバー エージェントループをHTTPサーバーでラップします。 エージェントサーバーは呼び出しAPIを公開し、クライアント接続を管理し、永続性を処理します。 DurableAgentServer (推奨)、レガシーエージェントサーバー、またはご自身のサーバーなどです。
エージェントランタイム 管理されたコンピュートでエージェントサーバーを運用し、ホスティング、アイデンティティ、スケーリングを担当します。 Databricksアプリ上のエージェントランタイム。

以下の用語は、層がどのように連携して機能するかを表しています。

任期 意味
呼び出しAPI クライアントがエージェントを実行するために呼び出すHTTP APIです。 Azure DatabricksにデプロイされたQuery agentsを参照してください。
提供する エージェントランタイムはエージェントサーバーを実行し、そのサーバーはインボケーションAPIを通じてエージェントを利用可能にします。
Deploy エージェントのコードをエージェントランタイムに配置してください。

Note

Databricks Sandbox は計算スタックの層ではありません。 これは、エージェントが呼び出して、エージェントのランタイムとは別の隔離された環境でコードを実行し、管理対象データに限定されたアクセス権でアクセスできるようにするツールです。 エージェントがデータ分析スクリプトなどのコードを書いて実行する際には、サンドボックスを活用しましょう。 CLIプロジェクトにサンドボックスツールを与えるには、 agentbricks tools add sandboxを実行します。

フレームワークまたはハーネス

フレームワークやハーネスはあなたのエージェントコードです。 モデルを使って推論し、ツールを呼び出し、いつ応答するかを決めるループを実行します。 Agent Bricksは特定のフレームワークを必要としません。

フレームワークまたはハーネス いつ使用するか
Templates 新しいエージェントを開始しています。 Agent Bricks CLIはLangGraphおよびOpenAIエージェントSDK向けのプロジェクトのひな形を生成します。 テンプレートはフレームワークコードを、エージェントサーバーに接続するコードから分離しておきます。
既存のエージェント すでにLangGraphやOpenAI Agents SDKで構築したエージェントを持ち込むこと。 そのディレクトリ内で agentbricks init --existing を実行してください。 「既存のエージェントを追加」を参照してください。
メタハーネス Omnigentを使って、複数のハーネス(例えばコードエージェント)を1つのエージェントにまとめること。

エージェントサーバー

エージェントサーバーは、エージェントループをラップしてサービスに変換するライブラリです。 クライアントが呼び出すAPIを定義し、各実行を追跡し、実行が割り込まれたときに何が起こるかを決定します。

エージェントサーバー いつ使用するか
DurableAgentServer (推奨) Agent Bricks CLIで構築された新しいエージェント
レガシーエージェントサーバー アプリのテンプレートから作成したエージェントのメンテナンス。 DurableAgentServerをレガシーエージェントサーバーと比較するには、Databricksのエージェントサーバーを参照してください。
自分のサーバー カスタムエンドポイント、リクエストフォーマット、プロトコルを必要とするエージェント。 agentbricks init --server custom を実行するか、既存のサーバーを維持しましょう。

エージェント ランタイム

エージェントランタイムは、エージェントサーバーを動かす管理型コンピュートです。 自分でサーバーをプロビジョニングするのではなく、コードをデプロイします。

エージェント ランタイム いつ使用するか
エージェント ランタイム 新しいエージェント。 Databricksアプリでエージェントを動かします。 agentbricks deploy は、エージェントが必要とするリソースをプロビジョニングし、エージェントにそれらへのアクセス権を与え、安定的で認証されたエンドポイントにデプロイします。
モデルサービング (レガシー) 以前のエージェントはモデルサービングエンドポイントにデプロイされていました。 AI アプリケーションのエージェントのデプロイ (モデル サービス) に関する説明を参照してください。 それらをDatabricks Appsに移行するには、「 Model Serving から Databricks Apps へエージェントを移行する」をご覧ください。

Agent Bricks CLIでデプロイ

Agent Bricks CLIは3つのレイヤーを接続します。 フレームワークコードをスキャフォールディングし、ローカルで DurableAgentServer 上で実行し、Agent Runtimeにデプロイします:

agentbricks init my-agent --framework langgraph
cd my-agent
agentbricks dev
agentbricks deploy my-agent

最初のエージェントをビルド・デプロイするには、 Agent Bricksクイックスタートをご覧ください。

エージェント展開の権限

agentbricks deploy を実行するユーザーまたはサービス プリンシパルには、以下を行うためのアクセス許可が必要です。

  • Databricksアプリを作成したり、既存のアプリを管理して再デプロイしたりします。 Databricks アプリのアクセス許可の構成を参照してください。
  • agent.tomlで宣言されたメモリとセッションストアを作成するか、既存のストアを管理して、Agent Bricksがアプリのサービス プリンシパルにそれらへのアクセス権を付与できるようにします。
  • プロジェクトがトレースに使うMLflow実験を作成するか、すでに存在していれば編集してください。
  • アプリのサービスプリンシパルに、Unity Catalog 関数の CAN RUN、Genie Agent の SELECT、またはサンドボックス スコープ内のテーブルの --auth app など、ツールが EXECUTE で宣言するリソースへのアクセス権を付与します。

エージェントブリックスは、 agent.toml が直接宣言したリソースのみへのアクセスを許可します。 ツールがGenieエージェントの背後にあるテーブルやUnity Catalog関数が呼び出すオブジェクトなど他のリソースを使用している場合は、アプリのサービスプリンシパルに自分でアクセス権を与えてください。 もしデプロイが必要な権限を適用できない場合、コードをアップロードする前に停止し、現在のデプロイメントをそのまま実行します。

その他のリソース