AIエージェントを作成し、 Databricks Appsにデプロイする
実験段階
この機能は実験的なもので、変更される可能性があります。
AIエージェントを構築し、 Databricks Appsを使用してデプロイします。 Databricks Apps使用すると、エージェント コード、サーバー構成、展開ワークフローを完全に制御できます。 このアプローチは、カスタム サーバー動作、Git ベースのバージョン管理、またはローカル IDE 開発が必要な場合に最適です。
このエージェント デプロイ ワークフローは、 Databricksインフラストラクチャを管理するモデルサービング エンドポイントにエージェントをデプロイする代わりの方法です。

前提条件
ワークスペースでDatabricks Apps有効にします。 Databricks Appsワークスペースと開発環境をセットアップする 」を参照してください。
エージェントアプリテンプレートのクローンを作成する
Databricks アプリ テンプレート リポジトリから事前に構築されたエージェント テンプレートを使用して開始します。
このチュートリアルでは、次の内容を含むagent-openai-agents-sdkテンプレートを使用します。
- OpenAI Agent SDKを使用して作成されたエージェント
- 会話型 REST API と対話型チャット UI を備えたエージェント アプリケーションのスターター コード
- MLflowを使用してエージェントを評価するコード
テンプレートを設定するには、次のいずれかのパスを選択します。
- Workspace UI
- Clone from GitHub
ワークスペース UI を使用してアプリ テンプレートをインストールします。 これにより、アプリがインストールされ、ワークスペース内のコンピュート リソースにデプロイされます。 その後、アプリケーション ファイルをローカル環境に同期して、さらに開発を進めることができます。
-
Databricks ワークスペースで、 [+ 新規] > [アプリ] をクリックします。
-
[エージェント] > [OpenAI エージェント SDK エージェント] を選択します。
-
openai-agents-templateという名前で新しいMLflow拡張機能を作成し、残りのセットアップを完了してテンプレートをインストールします。 -
アプリを作成したら、アプリの URL をクリックしてチャット UI を開きます。

アプリを作成したら、ソース コードをローカル マシンにダウンロードしてカスタマイズします。
-
ファイルの同期 の最初のコマンドをコピーします

-
ローカル ターミナルで、コピーしたコマンドを実行します。
ローカル環境から開始するには、エージェント テンプレート リポジトリのクローンを作成し、 agent-openai-agents-sdkディレクトリを開きます。
git clone https://github.com/databricks/app-templates.git
cd app-templates/agent-openai-agents-sdk
エージェントアプリケーションを理解する
エージェント テンプレートは、次の 3 つの主要なコンポーネントを使用して本番運用に対応したアーキテクチャを示しています。
MLflow AgentServer : 組み込みのトレースと監視機能を使用してエージェント要求を処理する非同期 FastAPI サーバー。AgentServer は、エージェントを照会するための/invocationsエンドポイントを提供し、リクエストのルーティング、ログ記録、およびエラー処理を自動的に管理します。
OpenAI Agents SDK : このテンプレートは、会話管理とツール オーケストレーションのエージェント フレームワークとして OpenAI Agents SDK を使用します。任意のフレームワークを使用してエージェントを作成できます。重要なのは、エージェントを MLflow ResponsesAgentインターフェースでラップすることです。
ResponsesAgentインターフェース : このインターフェースにより、エージェントがさまざまなフレームワークで動作し、Databricks ツールと統合されることが保証されます。OpenAI SDK 、LangGraph、 LangChain 、または純粋なPythonを使用してエージェントを構築し、それをResponsesAgentでラップするとAI Playground 、エージェント評価、およびDatabricks Appsデプロイメントとの互換性が自動的に得られます。
MCP (モデル コンテキスト プロトコル) サーバー : テンプレートは、 Databricks MCP サーバーに接続して、エージェントからツールおよびデータ ソースにアクセスします。 Databricks のモデル コンテキスト プロトコル (MCP) を参照してください。
エージェントアプリをローカルで実行する
ローカル環境を設定します。
-
uv(Python パッケージ マネージャー)、nvm(Node バージョン マネージャー)、および Databricks CLI をインストールします。-
Node 20 LTS を使用するには、以下を実行します。
Bashnvm use 20
-
ディレクトリを
agent-openai-agents-sdkフォルダーに変更します。 -
提供されているクイックスタート スクリプトを実行して依存関係をインストールし、環境をセットアップしてアプリを起動します。
Bash./scripts/quickstart.sh
uv run start-app
ブラウザでhttp://localhost:8000にアクセスしてエージェントとのチャットを開始してください。
認証を構成する
エージェントは、 MLflowエクスペリメント、連続検索インデックス、サービス エンドポイント、 Unity Catalog機能などのDatabricksリソースにアクセスするために認証が必要です。
サービスプリンシパル認証(ほとんどのユースケースで推奨)または代理認証を選択します。
- Service Principal authentication
- On-Behalf-Of (OBO) authentication
当然、 Databricks Appsサービスプリンシパル (SP) を使用して認証します。 SP はアプリを作成するときに自動的に作成され、アプリの ID として機能します。
トレースと評価結果をログに記録するためのMLflowエクスペリメントに対する SP Can Edit権限を付与します。 これを設定するには、アプリのホームページでeditをクリックします。MLflowエクスペリメント リソースをDatabricksアプリに追加する」を参照してください。
エージェントが、ストッパー検索インデックス、サービス提供エンドポイント、UC Functions、UC Connections、Lakebase データベース、UC Volumes、またはGenie spacesなどの他のDatabricksリソースを使用している場合は、SP にそれらへのアクセス許可を付与できます。 リソースの完全なリストとアクセス許可の構成方法については、 「Databricks アプリへのリソースの追加」を参照してください。
選択する適切な権限レベルについては、 「エージェントの自動認証」の表を参照してください。
エージェントがアプリのサービスプリンシパルではなく、要求側ユーザーの ID を使用してリソースにアクセスする必要がある場合は、OBO 認証を使用します。 OBO 認証により、ユーザー固有の権限と監査証跡が有効になります。
エージェント コードに OBO 認証を実装するには:
-
認証ユーティリティをインポートします。このユーティリティは AgentServer を使用してヘッダー
x-forwarded-access-tokenをキャプチャし、ユーザー、アプリ、エージェント サーバー間の認証を処理します。Pythonfrom agent_server.utils import get_user_workspace_client -
get_user_workspace_client()を使用して、要求元ユーザーとして認証された WorkspaceClient を取得します。クエリ時に WorkspaceClient を初期化して、ユーザー資格情報にアクセスします。アプリの起動中に初期化すると、ユーザー資格情報がまだ利用できないため失敗します。Python# In your agent code
w = get_user_workspace_client()
# Now use w to access Databricks resources with user permissions
response = w.serving_endpoints.query(name="my-endpoint", inputs=inputs)
エージェントを通じて、ユーザーが使用する必要があるリソースへのアクセスを許可します。たとえば、エージェントがサービスエンドポイントをクエリする場合、そのエンドポイントに対するCan Query権限をユーザーに付与する必要があります。
「ユーザー認証資格情報の取得」を参照してください。
エージェントを評価する
テンプレートにはエージェント評価コードが含まれています。詳細については、 agent_server/evaluate_agent.pyを参照してください。 ターミナルで次のコマンドを実行して、エージェントの応答の関連性と安全性を評価します。
uv run agent-evaluate
エージェントをDatabricks Appsにデプロイする
認証を構成したら、エージェントを Databricks にデプロイします。Databricks CLIがインストールされ、構成されていることを確認してください。
-
リポジトリをローカルに複製した場合は、デプロイする前に Databricks アプリを作成します。ワークスペース UI を通じてアプリを作成した場合は、アプリとMLflowエクスペリメントがすでに構成されているため、このステップをスキップしてください。
Bashdatabricks apps create agent-openai-agents-sdk -
ローカル ファイルをワークスペースに同期します。「アプリをデプロイする」を参照してください。
BashDATABRICKS_USERNAME=$(databricks current-user me | jq -r .userName)
databricks sync . "/Users/$DATABRICKS_USERNAME/agent-openai-agents-sdk" -
Databricks アプリをデプロイします。
Bashdatabricks apps deploy agent-openai-agents-sdk --source-code-path /Workspace/Users/$DATABRICKS_USERNAME/agent-openai-agents-sdk
エージェントの今後の更新については、エージェントを同期して再デプロイしてください。
デプロイされたエージェントをクエリする
ユーザーは、OAuth トークンを使用して、デプロイされたエージェントにクエリを実行します。Databricks Appsでは、パーソナル アクセスウイルス (PAT) はサポートされていません。
Databricks CLI を使用して OAuth トークンを生成します。
databricks auth login --host <https://host.databricks.com>
databricks auth token
トークンを使用してエージェントにクエリを実行します。
curl -X POST <app-url.databricksapps.com>/invocations \
-H "Authorization: Bearer <oauth token>" \
-H "Content-Type: application/json" \
-d '{ "input": [{ "role": "user", "content": "hi" }], "stream": true }'
制限事項
中および大のコンピュート サイズのみがサポートされています。 Databricksアプリのコンピュート サイズを構成する」を参照してください。