Databricks Sandbox を使うと、Databricks ワークスペース内でエージェントのシェルコマンドを実行したり、ファイルを操作したりできます。サンドボックスはアプリケーションが管理します。サンドボックス内のエグゼキューター codex exec-server は、セッションの environment.id と environment.remote_url を使って OpenAI へのアウトバウンド接続を確立します。
Databricks Sandbox はベータ版です。ワークスペースが対応リージョンにあることを確認してから、ワークスペースの「プレビュー」ページで Databricks Sandbox を有効にしてください。
事前準備
- ワークスペース用の Databricks プロファイルで認証します。以下の例では、
my-workspaceをそのプロファイル名に置き換えてください。 OPENAI_API_KEYにはアプリケーションキーを設定します。OPENAI_EXECUTOR_API_KEYには、アプリケーションキーと同じ組織、プロジェクト、ユーザーまたはサービスアカウントに属する別の環境キーを設定します。サンドボックスには、環境キーだけがCODEX_API_KEYとして渡されます。- OpenAI の組織で IP 許可リストを適用している場合は、サンドボックスの送信元 IP アドレスが変わるたびにリストを更新してください。ワークスペースでサーバーレスコンピュートファイアウォールのプレビューを利用している場合は、リージョン別の IP アドレス範囲に関する Databricks のガイダンスに従ってください。
サンプルの実行
OpenAI Cookbook リポジトリのルートディレクトリで、uv と Python 3.11 以降を使ってサンプルを実行します。サンプルは終了時にサンドボックスを削除するため、未使用のサンドボックス ID を指定してください。
uv run examples/agents_api/sandboxes/databricks/application_managed/main.py \
--profile my-workspace --sandbox-id "openai-agent-$(date +%s)"
サンプルはセルフホスト型のセッションを作成し、サンドボックス内でエグゼキューターを起動して、挨拶文をファイルに書き込むようエージェントに指示します。そのファイルを読み込み、書き込みを確認できると Verified the agent's file write. と表示します。その後、エグゼキューターを停止し、セッションとサンドボックスを削除します。