Databricks Sandboxクイックスタート
ベータ版
この機能はベータ版です。ワークスペースでこの機能プレビューを有効にするには、ワークスペースの「プレビュー」ページで Databricks Sandbox 設定を有効にします。Databricksのプレビューを管理するを参照してください。
Databricks Sandboxはコードを隔離されたServerless環境で実行するため、エージェントは自分が作成したコードを安全に実行できます。エージェント、Pythonコード、またはターミナルからサンドボックスを使用できます。以下の各パスは単独で機能するため、自分の作業方法に合ったものを選択してください:
-
既存のエージェントにサンドボックス ツールを提供して、エージェントが作成したコードをサンドボックスでランするようにします。
-
Python SDKを使用してサンドボックスを作成し、Pythonコードからコマンドを実行します。
-
Databricks CLIを使用してサンドボックスを作成し、SSH経由で接続します。
-
Omnigentをサンドボックスでランすると、マネージドクラウドホストでエージェントセッションを実行できます。
コンピュート サイズ、ストレージ、制限を含むDatabricks Sandboxの概要については、 Databricks Sandboxを参照してください。
要件
- ワークスペースは、サポートされているリージョンにある必要があります。 地域限定で利用できる機能を参照してください。
- SDKを使用するには、Python 3.10以降が必要です。
- Databricks CLIを使用するには、Databricks CLIをインストールし、
databricks auth loginで認証します。
既存のエージェントに、コードを安全に実行するためのサンドボックス ツールを提供します
Agent Bricks CLIでエージェントを構築し、Pythonでのデータ分析など、エージェントが書き込むコードを、エージェント自体の環境で実行するコードなしで実行したい場合に、このパスを使用します。
サンドボックスは最初に作成しません。サンドボックスツールは、エージェントをDatabricks管理のsystem.ai.sandboxサービスに接続し、サンドボックスでエージェントのコードを実行します。サンドボックスがアクセスできるデータと書き込みが可能かどうかのみを構成します。
ツールを追加するには、サンドボックスがアクセスできるデータを制限する1つ以上のスコープでagentbricks tools add sandboxをランします:
# 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 サービスを通じてサンドボックスを呼び出します。デフォルトでは、サンドボックスはリクエストを送信したユーザーの権限でランされます。代わりにアプリのService Principalを使用するには、 --auth appを追加します。agentbricks deployでデプロイする場合、Agent Bricksは --auth appを使用するツールのスコープ対象リソースへのアクセス権をアプリのService Principalに付与します。
Python SDKを使用してサンドボックスを作成する
アプリケーションや独自のサンドボックスを管理するカスタム エージェントなど、独自の Python コードからサンドボックスを作成してコマンドを実行する場合に、このパスを使用します。Databricks SDK for Pythonは、コードからサンドボックスを操作するための推奨される方法です。
-
SDKをインストールまたはアップグレードします。
Bashpip install --upgrade databricks-sdk -
サンドボックスを作成:
Pythonfrom 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を呼び出します。Pythonfrom 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" -
完了したら、サンドボックスを削除します。サンドボックスを削除すると、そのホーム ディレクトリが削除され、課金が停止されます。
Pythonw.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が構成されている場合、Databricksは初回接続時にClaudeやCodexなどの一般的なコーディングハーネスもUnity Gatewayを使用するように構成します。「カスタム モデルサービスを作成する」を参照してください。サンドボックスからGitを使用するには、Git資格情報を構成します。Git プロバイダーを Databricks に接続するを参照してください。
すべてのコマンドについては、databricks sandbox -hを実行するか、sandboxコマンド・グループを参照してください。
サンドボックスでOmnigentをランする
Omnigentで作業を行う際、ラップトップではなくマネージドクラウドホストでエージェントセッションを実行したい場合は、このパスを使用します。マネージドOmnigentは、エージェントセッションを実行するホストとしてサンドボックスを使用できます。ラップトップの電源がオフの場合でもサンドボックスは実行し続け、モデルはAPIキーなしでUnity Gatewayを介してルーティングされます。
- ウェブブラウザで
<workspace-url>/omnigentに移動します。 - [新しいセッション] を選択します。
- ホストピッカーを開き、 サンドボックス を選択します。
- コンポーザーでタスクを記述し、それを送信してセッションを起動します。
ホストとランナーの詳細については、Omnigentクイックスタートを参照してください。