Important
이 기능은 베타 버전으로 제공됩니다. 작업 공간에서 이 기능 미리보기를 활성화하려면 작업 공간 Previews 페이지에서 Databricks 샌드박스 설정에 선택하세요. 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을 실행하세요:
# 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와 같은 일반적인 코딩 도구도 처음 연결할 때 Unity Gateway를 사용하도록 설정해 줍니다. 자세한 내용은 Create a Custom Model Service 를 참조하세요. 샌드박스에서 Git을 사용하려면 Git 자격 증명을 설정하세요. Databricks에 Git 공급자 연결을 참조하세요.
모든 명령어에 대해 databricks sandbox -h를 실행하거나, sandbox 명령어 그룹을(를) 참조하세요.