本番環境でエージェントを動かすには、そのコードをマネージド コンピューティング環境にデプロイし、ユーザーやアプリケーションからのリクエストに対応します。 デプロイされたエージェントは、フレームワークやハーネス、エージェントサーバー、エージェントランタイムという3つの要素から成り立っています。 Agent Bricksは、Databricksアプリ上で DurableAgentServer からエージェントランタイムまでの各レイヤーでオプションを提供します。
エージェント計算スタック
デプロイされたエージェントには3つの層があります。 各層はその上の層に包まれています。
| レイヤー | それが何をするか | 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関数が呼び出すオブジェクトなど他のリソースを使用している場合は、アプリのサービスプリンシパルに自分でアクセス権を与えてください。 もしデプロイが必要な権限を適用できない場合、コードをアップロードする前に停止し、現在のデプロイメントをそのまま実行します。