運用環境でエージェントを実行するには、そのコードを、ユーザーやアプリケーションからの要求を処理する管理対象のコンピューティング リソースにデプロイします。 デプロイされたエージェントは、フレームワークまたはハーネス、エージェントサーバー、エージェントランタイムの 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 をレガシー エージェント サーバーと比較するには、「Azure Databricks のエージェント サーバーの比較」を参照してください。 |
| 自分のサーバー | カスタムエンドポイント、リクエストフォーマット、プロトコルを必要とするエージェント。
agentbricks init --server custom を実行するか、既存のサーバーを維持しましょう。 |
エージェント ランタイム
エージェントランタイムは、エージェントサーバーを動かす管理型コンピュートです。 自分でサーバーをプロビジョニングするのではなく、コードをデプロイします。
| エージェント ランタイム | いつ使用するか |
|---|---|
| エージェント ランタイム | 新しいエージェント。 Databricksアプリでエージェントを動かします。
agentbricks deploy は、エージェントが必要とするリソースをプロビジョニングし、エージェントにそれらへのアクセス権を与え、安定的で認証されたエンドポイントにデプロイします。 |
| モデルサービング (レガシー) | 以前に、エージェントが Model Serving エンドポイントにデプロイされていました。 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関数が呼び出すオブジェクトなど他のリソースを使用している場合は、アプリのサービスプリンシパルに自分でアクセス権を与えてください。 デプロイ時に必要な権限の付与が行えない場合、コードのアップロードを行う前に処理が中止され、現在の展開は実行されたままとなります。