Databricks Appsでのエージェントのデプロイ
本番運用でエージェントを実行するには、ユーザーやアプリケーションからのリクエストを処理する管理されたコンピュートにそのコードをデプロイします。デプロイされたエージェントには、フレームワークまたはハーネス、エージェントサーバー、エージェントランタイムの3つの層があります。Agent Bricks は、DurableAgentServer から Databricks Apps上の Agent ランタイムに至るまで、各レイヤーでオプションを提供します。
エージェント コンピュート スタック
デプロイされたエージェントには3つのレイヤーがあります。各レイヤーは、その上のレイヤーをラップします。
レイヤー | 動作内容 | Databricks のオプション |
|---|---|---|
エージェントループのランを実行します。モデルとツールを呼び出し、次に何をするかを決定します。 | LangGraphやOpenAI Agents SDKなどの任意のフレームワークまたはハーネス、あるいはOmnigentなどのメタハーネス。 | |
エージェントループを HTTP サーバーでラップします。エージェントサーバーは、呼び出しAPIを公開し、クライアント接続を管理し、耐久性を処理します。 |
| |
管理されたコンピュート上でエージェントサーバーを実行し、ホスティング、アイデンティティ、スケーリングを処理します。 | Databricks Apps上のエージェント ランタイム。 |
以下の用語は、レイヤーがどのように連携して動作するかを説明しています:
期間 | 意味 |
|---|---|
呼び出しAPI | クライアントがエージェントを実行するために呼び出すHTTP API。Databricksにデプロイされたエージェントのクエリーをご覧ください。 |
サーブ | エージェントランタイムはエージェントサーバーを実行し、呼び出しAPIを通じてエージェントを提供します。 |
デプロイ | エージェントのコードをエージェントのランタイムに配置します。 |
Where サンドボックス fit
Databricks Sandbox は、コンピュート スタックのレイヤーではありません。これは、エージェントがガバナンス対象データへのスコープ付きアクセスを使用して、エージェントのランタイムとは別の隔離された環境でコードをランするために呼び出すツールです。データ分析スクリプトなどのコードをエージェントが記述してランする場合は、サンドボックスを使用します。CLI プロジェクトにサンドボックス ツールを付与するには、agentbricks tools add sandbox をランします。
フレームワークまたはハーネス
フレームワークまたはハーネスは、エージェントのコードです。モデルで推論を行い、ツールを呼び出し、応答するタイミングを決定するループをランします。Agent Bricks は特定のフレームワークを必要としません。
フレームワークまたはハーネス | 使用するタイミング |
|---|---|
Template | 新しいエージェントを開始します。Agent Bricks CLIは、LangGraphおよびOpenAI Agents SDK用のプロジェクトのテンプレートを作成します。Templateにより、フレームワークコードと、それをエージェントサーバーに接続するコードを分離した状態に保つことができます。 |
既存のエージェント | LangGraph または OpenAI Agents SDK を使用してすでに構築したエージェントを持ち込む。ディレクトリ内で |
メタハーネス | コーディングエージェントなどの複数のハーネスを、Omnigentを使用して1つのエージェントに組み合わせます。 |
エージェントサーバー
エージェントサーバーは、エージェントループをラップしてサービスに変換するライブラリです。クライアントが呼び出す API を定義し、各ランを追跡し、ランが中断されたときの動作を決定します。
Agent server | 使用するタイミング |
|---|---|
Agent Bricks CLI で構築された新しいエージェント。 | |
レガシーエージェントサーバー | アプリTemplateから構築されたエージェントの保守を行います。 |
独自のサーバー | カスタムEndpoint、リクエスト形式、またはプロトコルを必要とするエージェント。 |
エージェントランタイム
エージェントランタイムは、エージェントサーバーを実行するマネージドコンピュートです。自分でサーバーをプロビジョニングする代わりに、そこにコードをデプロイします。
エージェントランタイム | 使用するタイミング |
|---|---|
新しいエージェント。Databricks Apps上でエージェントをランします。 | |
モデルサービング (レガシー) | Model Serving Endpointにデプロイされた以前のエージェント。AI アプリケーションのエージェントのデプロイ (Model Serving) を参照してください。Databricks Apps に移行するには、Model Serving から Databricks Apps へのエージェントの移行を参照してください。 |
Agent Bricks CLIでデプロイする
Agent Bricks CLIは3つの層を接続します。フレームワークコードのスコフォールド(土台)を作成し、DurableAgentServer上でローカルにランして、エージェントランタイムにデプロイします。
agentbricks init my-agent --framework langgraph
cd my-agent
agentbricks dev
agentbricks deploy my-agent
最初のエージェントを構築してデプロイするには、Agent Bricks クイックスタートを参照してください。
エージェントをデプロイするための権限
agentbricks deployを実行するユーザーまたは Service Principalには、次の操作を行うための権限が必要です。
- Databricks Appsを作成するか、再デプロイ用に既存のアプリを管理します。See Configure permissions for a Databricks app.
agent.tomlで宣言されたメモリおよびセッションストアを作成するか、既存のストアを管理して、Agent BricksがアプリのService Principalからそれらへのアクセス権を付与できるようにします。- プロジェクトがトレースに使用する MLflow エクスペリメントを作成するか、既に存在する場合は編集します。
- アプリのService Principalに、Unity Catalog関数上の
EXECUTE、Genie Agent上のCAN RUN、またはサンドボックススコープ内のテーブル上のSELECTなど、ツールが--auth appで宣言するリソースへのアクセス権を付与します。
Agent Bricks は、agent.toml が直接宣言するリソースへのアクセスのみを許可します。ツールが Genie Agent の背後にあるテーブルや Unity Catalog 関数が呼び出すオブジェクトなどの他のリソースを使用する場合は、アプリの Service Principal にそれらへのアクセス権をご自身で付与してください。デプロイメントで必要な権限付与を適用できない場合、コードを uploadする前に停止し、現在のデプロイメントを実行したままにします。