Claude Platform Docs
Managed Agents자체 호스팅 샌드박스

자체 호스팅 워커 참조

자체 호스팅 샌드박스 워커에 대한 참조: ant CLI 플래그, 환경 변수, 호스트 요구 사항, 파일 시스템 경로 및 SDK 헬퍼 옵션.

이 페이지는 self_hosted 환경을 처리하는 사전 빌드된 워커를 설명합니다. 작업 중심 가이드는 자체 호스팅 샌드박스와 자체 호스팅 워커 배포부터 시작하세요.

CLI 명령 및 플래그

명령설명
ant beta:worker poll환경의 큐에서 작업 항목을 가져와(claim) 각 세션을 프로세스 내에서 실행합니다. --on-work를 사용하면 대신 각 작업 항목에 대해 사용자의 스크립트를 호출합니다.
ant beta:worker run가져온 세션 하나를 처리한 후 종료합니다. 세션별 샌드박스의 진입점으로 사용하세요.
플래그설명
--environment-id작업을 폴링할 환경입니다. ANTHROPIC_ENVIRONMENT_ID에서도 읽습니다.
--environment-key이 환경에 대해 워커를 인증합니다. ANTHROPIC_ENVIRONMENT_KEY에서도 읽습니다.
--workdir스킬이 다운로드되고 도구가 파일을 읽고 쓰는 디렉터리입니다. 기본값은 .(현재 디렉터리)입니다.
--on-work도구를 프로세스 내에서 실행하는 대신 가져온 각 작업 항목에 대해 호출할 스크립트입니다. 세션 세부 정보를 환경 변수로, 작업 항목을 표준 입력의 JSON으로 받습니다.
--max-idle세션이 end_turn 중지 이유로 유휴 상태가 된 후 종료하기 전까지 대기하는 시간입니다. 기본값은 60s입니다.
--log-format로그 출력 형식입니다. 구조화된 로그 수집에는 json을 사용하세요. 기본값은 text입니다.

환경 변수

변수설명설정 주체
ANTHROPIC_ENVIRONMENT_ID워커가 처리하는 큐가 속한 환경입니다.사용자가 워커 호스트에서 설정합니다. 폴러가 이를 --on-work 스크립트에 전달합니다.
ANTHROPIC_ENVIRONMENT_KEY워커를 해당 큐에 인증합니다.사용자가 워커 호스트에서 설정합니다. 폴러가 이를 --on-work 스크립트에 전달합니다.
ANTHROPIC_SESSION_ID가져온 작업 항목이 나타내는 세션입니다.폴러가 --on-work 스크립트를 위해 설정합니다.
ANTHROPIC_WORK_ID가져온 작업 항목입니다.폴러가 --on-work 스크립트를 위해 설정합니다.
ANTHROPIC_WORK_SECRET작업 항목의 세션별 시크릿입니다.사용자가 설정합니다. 폴러는 이를 설정하지 않습니다. 작업 항목의 시크릿 전달을 참조하세요.
ANTHROPIC_BASE_URL기본 API 엔드포인트를 재정의합니다. 선택 사항입니다.사용자가 워커 호스트에서 설정합니다.
ANTHROPIC_WEBHOOK_SIGNING_KEY수신되는 웹훅 페이로드를 검증합니다.사용자가 웹훅 핸들러 호스트에서 설정합니다.

호스트 요구 사항

워커요구 사항
모든 워커정확히 해당 경로에 /bin/bash가 있는 Linux 호스트. 워커의 bash 도구는 PATH를 참조하지 않고 이를 직접 호출합니다.
TypeScript SDKPATH에 있는 unzip 및 tar, 그리고 Node.js 22 이상.
Python 및 Go SDK추가 바이너리가 필요하지 않습니다. 이 SDK들은 아카이브 추출에 표준 라이브러리를 사용합니다.

메모리 스토어에는 자체 요구 사항이 추가됩니다.

샌드박스 파일 시스템

경로내용
/workspace도구 실행 및 스킬 다운로드를 위한 시스템 기본 작업 디렉터리입니다. 다른 작업 디렉터리를 사용하는 경우 Claude가 스킬 파일을 찾을 수 있도록 에이전트의 시스템 프롬프트를 업데이트하세요.
<workdir>/skills/<name>/에이전트의 다운로드된 스킬입니다.
/mnt/memory/<store>/연결된 메모리 스토어마다 하나의 디렉터리로, 스토어의 mount_path에 위치합니다(예: /mnt/memory/user-preferences/). 워커는 세션을 가져올 때 이 디렉터리를 생성하고 세션이 끝나면 제거합니다.

자체 호스팅 환경에서는 세션의 시스템 프롬프트에 Anthropic 관리형 샌드박스에서 사용되는 /mnt/session/outputs 지침이 포함되지 않습니다. 최종 결과물은 에이전트가 샌드박스 파일 시스템에 기록하는 위치에 저장되며, 일반적으로 작업 디렉터리 아래에 있습니다.

스킬에는 에이전트가 직접 실행할 수 있는 실행 파일이 포함될 수 있습니다. CLI 및 SDK 워커는 스킬 번들을 추출할 때 번들에 기록된 실행 권한을 유지합니다. 스킬 다운로드를 수동으로 구현하는 경우 실행 권한 설정은 사용자의 책임입니다.

SDK 헬퍼

Python, TypeScript 및 Go SDK는 서로 다른 제어 수준의 세 가지 헬퍼를 제공합니다:

헬퍼기능사용 시점
EnvironmentWorker폴링, 설정 및 실행을 처음부터 끝까지 처리합니다.대부분의 경우.
work.poller()작업 큐를 폴링하고 가져온 각 세션을 제공합니다.각 세션에서 일어날 일을 직접 결정하는 경우. 예를 들어 도구를 프로세스 내에서 실행하는 대신 샌드박스를 시작하는 경우.
client.beta.sessions.events.tool_runner()세션 ID와 도구 목록이 주어지면 단일 세션에 대한 도구 호출을 실행합니다.이미 작업을 가져왔고 실행 계층만 필요한 경우.

EnvironmentWorker

메서드설명
run()무기한 실행되며 세션이 도착하는 대로 가져옵니다.
handle_item()가져온 단일 작업 항목을 처리하고 반환합니다. 작업, 세션 및 환경 식별자와 work_secret을 명시적으로 전달하거나, ANTHROPIC_* 변수를 읽도록 하세요.
옵션설명
tools세션의 AgentToolContext를 받아 도구 목록을 반환하는 팩토리입니다. 기본값은 표준 에이전트 도구 세트입니다.
memory_sync_interval세션이 실행되는 동안 연결된 메모리 스토어가 서버와 조정되는 빈도입니다. 동기화 간격을 참조하세요.
memory_sync_deletions에이전트가 로컬에서 삭제한 파일을 스토어에서도 삭제할지 여부입니다. 삭제를 참조하세요.

EnvironmentWorker는 AgentToolContext와 도구 세트를 자동으로 관리합니다. 도구 목록을 사용자 지정하려면 tools 팩토리를 전달하세요:

EnvironmentWorker(client, ..., tools=lambda env: [beta_bash_tool(env), my_custom_tool])

작업 폴러

옵션설명
drain새 작업을 기다리지 않고 큐가 비면 폴링을 중지할지 여부입니다.
block_ms각 폴링이 반환하기 전에 작업이 도착하기를 기다리는 시간(밀리초)입니다. 1에서 999 사이여야 하며, 헬퍼가 자동으로 다시 폴링합니다. 비차단 확인을 하려면 None을 전달하세요. 기본값은 999ms 롱 폴링입니다.
reclaim_older_than_ms가져왔지만 이 밀리초 내에 확인(acknowledge)되지 않은 작업 항목을 다시 가져옵니다.
auto_stop루프 본문이 각 작업 항목 처리를 마치면 해당 작업 항목에 대한 중지 신호를 게시할지 여부입니다. 작업 항목을 실행하는 주체가 직접 중지를 게시하는 경우 False로 설정하세요. handle_item()이 그렇게 하며, 사용자가 시작한 샌드박스가 중지 호출을 담당하는 경우도 마찬가지입니다.

전체 예제는 SDK 폴러에서 샌드박스 시작을 참조하세요.

세션 도구 러너

client.beta.sessions.events.tool_runner()는 도구 목록을 tools로 받습니다. 해당 목록을 만들려면 AgentToolContext를 직접 설정하고 beta_agent_toolset_20260401(env)를 호출하세요:

from anthropic.lib.tools.agent_toolset import (
    AgentToolContext,
    beta_agent_toolset_20260401,
)

async with AgentToolContext(
    workdir="/workspace", client=client, session_id=work.data.id
) as env:
    # /workspace/skills/<name>/에 다운로드된 스킬
    tools = beta_agent_toolset_20260401(env)

AgentToolContext 및 에이전트 도구 세트

AgentToolContext는 도구 호출을 위한 실행 컨텍스트입니다. 작업 디렉터리와 경로 정책을 정의하며, 세션의 스킬을 다운로드할 수 있습니다.

옵션설명
allowed_roots작업 디렉터리 외에 파일 도구(read, write, edit, glob, grep)가 접근할 수 있는 디렉터리입니다.
read_only_rootswrite 및 edit가 경로를 거부하는 디렉터리입니다.

EnvironmentWorker는 세션의 메모리 스토어 디렉터리를 allowed_roots에 직접 추가하고, access: "read_only"로 연결된 스토어의 디렉터리를 read_only_roots에 추가합니다.

이 제한은 파일 도구에만 적용되는 보호 장치이며 샌드박스가 아닙니다. bash는 제한하지 않습니다.

beta_agent_toolset_20260401(env)는 AgentToolContext를 받아 표준 도구 구현(bash, read, write, edit, glob, grep)을 반환합니다.

Was this page helpful?