Databricks サンドボックス クイックスタート

Important

この機能は ベータ版です。 ワークスペースでこの機能プレビューを有効にするには、ワークスペースプレビューページの Databricksサンドボックス 設定に切り替えてください。 Manage Azure Databricks プレビューを参照してください。

Databricks Sandboxは、分離されたサーバーレス環境でコードを実行するため、エージェントは自分が書いたコードを安全に実行できます。 エージェント、Pythonコード、またはターミナルからサンドボックスを使うことができます。 以下の各パスはそれぞれ独立して機能するので、自分のやり方に合ったものを選びましょう。

Databricks Sandboxの概要(コンピュートサイズ、ストレージ、制限事項など)については、Databricks Sandboxを参照してください。

Requirements

既存のエージェントに安全にコードを実行できるサンドボックスツールを与えましょう

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は、コードからサンドボックスを扱う推奨方法です。

  1. SDKのインストールまたはアップグレード:

    pip install --upgrade databricks-sdk
    
  2. サンドボックスを作成する:

    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"
    
  3. サンドボックスでコマンドを実行してください。 このコマンドはシェルなしで直接実行されるため、シェルコマンドを実行するには /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"
    
  4. 終わったらサンドボックスを削除してください。 サンドボックスを削除すると、そのホームディレクトリが削除され、請求が停止されます:

    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 コマンド グループを参照してください。

その他のリソース