Important
この機能は ベータ版です。 ワークスペースでこの機能プレビューを有効にするには、ワークスペースプレビューページの Databricksサンドボックス 設定に切り替えてください。 Manage Azure Databricks プレビューを参照してください。
Databricks Sandboxは、分離されたサーバーレス環境でコードを実行するため、エージェントは自分が書いたコードを安全に実行できます。 エージェント、Pythonコード、またはターミナルからサンドボックスを使うことができます。 以下の各パスはそれぞれ独立して機能するので、自分のやり方に合ったものを選びましょう。
- 既存のエージェントにサンドボックス ツールを与え、エージェントが書いたコードをサンドボックス内でエージェントが実行するようにします。
- Python SDKを使ってサンドボックスを作成し、Pythonコードからコマンドを実行しましょう。
- DatabricksのCLIを使って サンドボックスを作成し、サンドボックスにSSH経由で接続してください。
Databricks Sandboxの概要(コンピュートサイズ、ストレージ、制限事項など)については、Databricks Sandboxを参照してください。
Requirements
- ワークスペースは、サポートされているリージョンに存在する必要があります。 「利用可能なリージョンに制限がある機能」を参照してください。
- SDKを使うには、Python 3.10以降が必要です。
- Databricks CLI を使用するには、Databricks CLI をインストールし、
databricks auth loginを使用して認証します。
既存のエージェントに安全にコードを実行できるサンドボックスツールを与えましょう
Agent Bricks CLIでエージェントを構築し、エージェント自身の環境でそのコードを実行させずに、例えばPythonでデータ解析を行うコードのような、エージェントが生成したコードを実行したい場合は、このパスを使いましょう。
最初にサンドボックスを作成するのではありません。 サンドボックス ツールは、Azure Databricks 管理の system.ai.sandbox サービスにエージェントを接続し、エージェントのコードをサンドボックス内で実行してくれます。 サンドボックスがアクセスできるデータと書き込み可能かどうかだけを設定するだけです。
ツールを追加するには、agentbricks tools add sandbox を、サンドボックスがアクセスできるデータを制限する1つ以上のスコープを付けて実行します。
# Read one table.
agentbricks tools add sandbox --scope table:samples.nyctaxi.trips
# Read a volume and a workspace folder.
agentbricks tools add sandbox --scope volume:main.default.reports --scope workspace:/Workspace/Shared/data
# Allow writes to a volume.
agentbricks tools add sandbox --scope volume:main.default.output --permission read_write
コマンドはツールをプロジェクトの agent.tomlに記録し、エージェントは system.ai.sandbox MCPサービスを通じて実行時にサンドボックスを呼び出します。 デフォルトでは、サンドボックスはリクエストを送信したユーザーの権限で動作します。 アプリのサービスプリンシパルを使うには、 --auth appを追加してください。
agentbricks deployでデプロイすると、Agent Bricksはアプリのサービスプリンシパルに、--auth appを使うツールのスコープ指定リソースへのアクセス権を付与します。
Python SDKを使ってサンドボックスを作成します
サンドボックスを作成し、自分の Python コード(自前のサンドボックスを管理するアプリケーションやカスタムエージェントなど)からその中でコマンドを実行したい場合に、このパスを使いましょう。 Python用のDatabricks SDKは、コードからサンドボックスを扱う推奨方法です。
SDKのインストールまたはアップグレード:
pip install --upgrade databricks-sdkサンドボックスを作成する:
from databricks.sdk import WorkspaceClient from databricks.sdk.service.sandbox import Sandbox w = WorkspaceClient() created = w.sandbox.create_sandbox( sandbox=Sandbox(), sandbox_id="my-sandbox", ) print(created.name) # "sandboxes/my-sandbox"サンドボックスでコマンドを実行してください。 このコマンドはシェルなしで直接実行されるため、シェルコマンドを実行するには
/bin/bash -cを呼び出してください:from google.protobuf.duration_pb2 import Duration resp = w.sandbox.execute_command_sync( "sandboxes/my-sandbox", "/bin/bash", args=["-c", "echo hello world && whoami"], execution_timeout=Duration(seconds=30), ) print(resp.exit_code) # 0 print(resp.stdout) # "hello world\nsandbox-agent\n"終わったらサンドボックスを削除してください。 サンドボックスを削除すると、そのホームディレクトリが削除され、請求が停止されます:
w.sandbox.delete_sandbox("sandboxes/my-sandbox")
サンドボックスを取得、一覧表示、更新、停止、再起動するには、「SDK でサンドボックスを作成および管理する」を参照してください。
DatabricksのCLIを使ってサンドボックスを作成します
ターミナルからサンドボックスでインタラクティブに作業したい場合、このパスを使いましょう。 SSH経由でサンドボックスに接続して、ローカルマシンを稼働させずに長いエージェントタスクを実行することができます。 たとえば、Databricks CLI からのコーディング エージェントを操作したり、デスクトップ IDE またはエージェント ハーネス (Cursor、Claude、Codex など) を接続したりできます。
サンドボックスを作成し接続するには、以下を実行します:
databricks sandbox create # create your sandbox
databricks sandbox register # optional: register SSH keys
databricks sandbox ssh # SSH to your default sandbox
接続すると、サンドボックス内のDatabricks CLIがインストールされ、サンドボックスが動作するワークスペースに対して認証されます。 ワークスペースに Unity Gateway が構成されている場合、Azure Databricks はそれを使用するように、Claude や Codex などの一般的なコーディング ハーネスも初回接続時に構成します。 「 カスタムモデルサービスを作成」 を参照してください。 サンドボックスからGitを使うには、Gitの認証情報を設定してください。 「 Git プロバイダーを Databricks に接続する」を参照してください。
すべてのコマンドについては、databricks sandbox -h を実行するか、sandbox コマンド グループを参照してください。