Por padrão, o Managed Agents executa ferramentas e código dentro de sandboxes em nuvem gerenciados pela Anthropic. Os sandboxes auto-hospedados mantêm a orquestração do lado da Anthropic, mas movem a execução de ferramentas para a infraestrutura que você controla, de modo que o código, o sistema de arquivos e a saída de rede do agente nunca saiam do seu ambiente.
A execução de ferramentas permanece no seu host: o sistema de arquivos que o agente lê e grava, os processos que ele gera e a rede que ele pode alcançar estão todos sob seu controle. As entradas e saídas das ferramentas ainda fluem para o plano de controle da Anthropic (onde o Claude é executado) para que o modelo possa ver os resultados e determinar o que fazer a seguir. Consulte o modelo de segurança para ver o limite completo do fluxo de dados.
| Ambiente em nuvem | Sandbox auto-hospedado | |
|---|---|---|
| Onde as ferramentas são executadas | Sandboxes gerenciados pela Anthropic | Sua infraestrutura |
| Alcance de rede | Controles de saída da Anthropic | Sua política de rede |
| Montagem de arquivos e repositórios GitHub | Gerenciada pela Anthropic | Gerenciada por você |
| Ciclo de vida | Gerenciado pela Anthropic | Gerenciado por você |
A auto-hospedagem é uma boa opção quando o agente precisa operar em dados que não podem sair do limite da sua rede, alcançar serviços internos que não são roteáveis publicamente ou ser executado sob os próprios controles de conformidade e auditoria da sua organização.
Para elegibilidade de Zero Data Retention e HIPAA BAA, consulte API e retenção de dados.
A auto-hospedagem controla onde o código do agente é executado. Os túneis MCP controlam como a Anthropic alcança servidores MCP na sua rede. Eles são independentes: uma sessão executada nos sandboxes em nuvem da Anthropic ainda pode alcançar servidores MCP privados através de um túnel, e uma sessão auto-hospedada pode usar servidores MCP tunelados ou públicos. Use ambos quando quiser que a execução e o acesso a ferramentas permaneçam dentro do seu limite. Para dar ao agente ferramentas de um servidor MCP dentro da sua rede sem executar um túnel, você também pode encapsular o servidor como ferramentas personalizadas servidas pelo seu worker.
Um worker de ambiente é um processo que você executa na sua própria infraestrutura. Ele recebe solicitações de execução de ferramentas da Anthropic e as executa localmente. O ambiente self_hosted atua como uma fila de trabalho: quando uma sessão é atribuída a ele, a Anthropic enfileira a sessão como um item de trabalho. Seu worker reivindica itens de trabalho dessa fila, gera um contexto de execução para cada um, baixa as skills do agente (recursos reutilizáveis baseados em sistema de arquivos que dão ao agente expertise específica de domínio), executa as chamadas de ferramentas e envia os resultados de volta.
Os itens de trabalho são reivindicados por meio de polling na fila do ambiente: seja por um worker sempre ativo que faz polling continuamente, ou por um handler acionado por webhook que desperta em session.status_run_started e começa a fazer polling.
Tanto a CLI quanto o SDK incluem workers pré-construídos. A CLI ant suporta apenas o padrão sempre ativo; o SDK suporta tanto o sempre ativo quanto o acionado por webhook. Ambos são configuráveis: consulte Worker auto-hospedado na referência para as flags da CLI, e Helpers do SDK nesta página para as opções do SDK. Para mais controle, chame os endpoints Environments Work diretamente e implemente seu próprio worker.
/workspace: o diretório de trabalho padrão do sistema para execução de ferramentas e download de skills. A flag --workdir da CLI usa o diretório atual como padrão; passe --workdir /workspace para corresponder ao padrão do sistema. As skills são baixadas para <workdir>/skills/<name>/. Se você usar um diretório de trabalho diferente, atualize o prompt do sistema do seu agente para que o Claude possa localizar os arquivos de skill./mnt/session/outputs usada nos sandboxes gerenciados pela Anthropic, então os entregáveis finais ficam onde quer que o agente os grave no sistema de arquivos do seu sandbox, normalmente sob o diretório de trabalho.Você precisa de:
/bin/bash nesse caminho exato. A ferramenta bash do worker o invoca diretamente, sem consultar o PATH. O SDK TypeScript adicionalmente requer unzip e tar no PATH e Node.js 22 ou posterior; os SDKs Python e Go usam suas bibliotecas padrão para extração de arquivos e não têm requisitos binários adicionais.ant ou um SDK da Anthropic (Python, TypeScript ou Go) no host do worker.Crie um ambiente auto-hospedado
No Console: Workspace > Environments > New > Self-hosted
Ou através da API:
client = anthropic.Anthropic()
environment = client.beta.environments.create(
name="self-hosted", config={"type": "self_hosted"}
)
print(environment.id)Gere uma chave de ambiente
No Console, abra o ambiente e clique em Generate environment key. A geração de chaves é feita apenas no Console, independentemente de você ter criado o ambiente através do Console ou da API. Em seguida, exporte o ID e a chave do ambiente no host do worker:
export ANTHROPIC_ENVIRONMENT_KEY="sk-ant-oat01-..."
export ANTHROPIC_ENVIRONMENT_ID="env_..."Escolha sempre ativo para a configuração mais simples: um processo de longa duração faz polling na fila continuamente e precisa apenas de HTTPS de saída. Escolha acionado por webhook para evitar executar um poller ocioso; isso requer um endpoint de webhook que a Anthropic possa alcançar (consulte Webhooks para configuração de endpoint e verificação de assinatura).
Instale a CLI ant
Execute isto no host do worker.
Para ambientes Linux, baixe o binário de release diretamente.
VERSION=1.22.1
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
case $(uname -m) in
x86_64) ARCH=amd64 ;;
aarch64) ARCH=arm64 ;;
esac
curl -fsSL "https://github.com/anthropics/anthropic-cli/releases/download/v${VERSION}/ant_${VERSION}_${OS}_${ARCH}.tar.gz" \
| sudo tar -xz -C /usr/local/bin antVocê pode encontrar todos os releases na página de releases do GitHub.
Execute o worker
No processo
ant beta:worker poll reivindica itens de trabalho atribuídos ao ambiente, baixa skills, executa chamadas de ferramentas no diretório de trabalho e envia os resultados de volta. Ele lê ANTHROPIC_ENVIRONMENT_KEY e ANTHROPIC_ENVIRONMENT_ID do ambiente.
ant beta:worker poll \
--workdir "/workspace"O worker encerra de forma limpa em SIGTERM ou SIGINT: ele cancela qualquer chamada de ferramenta em andamento, envia seu resultado de erro e libera o item de trabalho antes de parar.
Sandbox por sessão
Se você precisar de isolamento mais forte (um sistema de arquivos novo, limites de recursos ou controles de rede por sessão), execute cada sessão em seu próprio sandbox. Construa uma imagem com ant instalado e ant beta:worker run como entrypoint. A imagem base deve fornecer /bin/bash; curl é usado apenas em tempo de build. Quando um sandbox inicia, ele lê os detalhes da sessão das variáveis de ambiente, processa essa sessão e encerra:
FROM your-base-image
ARG ANT_VERSION=1.22.1
ARG TARGETARCH
RUN ARCH=$([ "$TARGETARCH" = "arm64" ] && echo arm64 || echo amd64) && \
curl -fsSL "https://github.com/anthropics/anthropic-cli/releases/download/v${ANT_VERSION}/ant_${ANT_VERSION}_linux_${ARCH}.tar.gz" \
| tar -xz -C /usr/local/bin ant
WORKDIR /workspace
VOLUME /workspace
ENTRYPOINT ["ant", "beta:worker", "run"]Em seguida, escreva um script de spawn que encaminhe os detalhes da sessão para um sandbox novo. O poller injeta ANTHROPIC_SESSION_ID, ANTHROPIC_WORK_ID, ANTHROPIC_ENVIRONMENT_ID e ANTHROPIC_ENVIRONMENT_KEY no ambiente do script. ANTHROPIC_BASE_URL é opcional e é repassado apenas se tiver sido definido no host do poller; ele substitui o endpoint padrão da API. No exemplo, /host/outputs é um diretório do host que você escolhe; ele é montado via bind no diretório de trabalho do sandbox (/workspace) para que você possa recuperar os entregáveis da sessão depois que o sandbox encerrar. Em ambientes auto-hospedados, o agente grava os entregáveis sob o diretório de trabalho em vez de /mnt/session/outputs (consulte Sistema de arquivos do sandbox), então montar o diretório de trabalho é o que os captura; a montagem também captura a árvore skills/ baixada e quaisquer arquivos intermediários que o agente criar.
#!/bin/bash
# spawn.sh: chamado uma vez por item de trabalho reivindicado
mkdir -p "/host/outputs/$ANTHROPIC_SESSION_ID"
exec docker run --rm \
-e ANTHROPIC_SESSION_ID -e ANTHROPIC_ENVIRONMENT_KEY \
-e ANTHROPIC_WORK_ID -e ANTHROPIC_ENVIRONMENT_ID -e ANTHROPIC_BASE_URL \
-v "/host/outputs/$ANTHROPIC_SESSION_ID":/workspace \
your-imageInicie o poller apontando para o script:
ant beta:worker poll \
--on-work ./spawn.shO SDK fornece três helpers em diferentes níveis de controle. EnvironmentWorker cobre a maioria dos casos de uso; desça para os helpers de nível mais baixo quando precisar iniciar seu próprio processo por sessão ou executar ferramentas em uma sessão já reivindicada.
EnvironmentWorker: o worker pronto para uso. Lida com polling, configuração e execução de ponta a ponta.
.run(): executa indefinidamente, capturando sessões à medida que chegam..handle_item(): processa um único item de trabalho reivindicado e encerra. Passe os identificadores de trabalho, sessão e ambiente explicitamente, ou deixe-o ler as variáveis ANTHROPIC_* que ant beta:worker poll --on-work define para o processo que ele gera.work.poller(): faz polling na fila de trabalho em seu nome e fornece cada sessão reivindicada. Use isto quando quiser decidir o que acontece para cada sessão, por exemplo, iniciar um sandbox em vez de executar ferramentas no processo.
drain: se deve parar de fazer polling assim que a fila estiver vazia em vez de esperar por novo trabalho.block_ms: quanto tempo esperar pela chegada de trabalho antes de retornar, em milissegundos. Deve estar entre 1 e 999 (espera por poll; o helper refaz o polling automaticamente). Passe null (None em Python, param.Null[int64]() em Go) para uma verificação não bloqueante; omitir o parâmetro usa o long-poll padrão de 999 ms.reclaim_older_than_ms: reivindicar novamente itens de trabalho que foram reivindicados mas nunca confirmados dentro deste número de milissegundos.auto_stop: se deve enviar um sinal de parada para cada item de trabalho assim que o corpo do seu loop terminar com ele. O poller Go não tem opção de desativação e sempre envia o sinal de parada, então bloqueie no corpo do loop até que a sessão seja concluída em vez de desanexar.client.beta.sessions.events.tool_runner(): executa chamadas de ferramentas para uma única sessão, dado o ID da sessão e uma lista de ferramentas. Use quando você já tiver reivindicado o trabalho e precisar apenas da camada de execução.Use o work poller diretamente quando quiser iniciar seu próprio processo por sessão, por exemplo, criando um sandbox para cada sessão reivindicada:
import asyncio
import os
from anthropic import AsyncAnthropic
from anthropic.types.beta.environments import BetaSelfHostedWork
async def launch_container(work: BetaSelfHostedWork) -> None:
# Substitua pelo seu próprio inicializador de sandbox por sessão. Passe
# ANTHROPIC_ENVIRONMENT_KEY para o sandbox iniciado, nunca
# sua chave de API.
print(f"claimed session {work.data.id}")
async def main() -> None:
environment_key = os.environ["ANTHROPIC_ENVIRONMENT_KEY"]
environment_id = os.environ["ANTHROPIC_ENVIRONMENT_ID"]
async with AsyncAnthropic(auth_token=environment_key) as client:
async for work in client.beta.environments.work.poller(
environment_id=environment_id,
environment_key=environment_key,
auto_stop=False, # the launched sandbox owns the stop call
):
await launch_container(work)
asyncio.run(main())AgentToolContext é o contexto de execução para chamadas de ferramentas. Ele define o diretório de trabalho e a política de caminhos, e pode baixar as skills da sessão. beta_agent_toolset_20260401(env) recebe um AgentToolContext e retorna as implementações de ferramentas padrão (bash, read, write, edit, glob, grep).
Com EnvironmentWorker: ambos são gerenciados automaticamente. Passe uma factory tools para personalizar a lista de ferramentas:
EnvironmentWorker(client, ..., tools=lambda env: [beta_bash_tool(env), my_custom_tool])Com work.poller() e tool_runner(): passe uma lista de ferramentas como tools para client.beta.sessions.events.tool_runner(). Para construir essa lista, configure AgentToolContext você mesmo e chame 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:
# skills baixadas para /workspace/skills/<name>/
tools = beta_agent_toolset_20260401(env)De um shell separado, com ANTHROPIC_API_KEY definido como sua chave de API do Claude (não a chave de ambiente), confirme que workers_polling é pelo menos 1:
ant beta:environments:work stats --environment-id "$ANTHROPIC_ENVIRONMENT_ID"Se workers_polling permanecer em 0, o worker não está alcançando a fila: confirme que ANTHROPIC_ENVIRONMENT_KEY e ANTHROPIC_ENVIRONMENT_ID estão definidos no host do worker. Consulte Ler profundidade da fila para a resposta completa de estatísticas e exemplos em outras linguagens.
Assim que seu worker estiver em execução, crie uma sessão que tenha como alvo o ambiente. Defina AGENT_ID como o ID do agente que você anotou em Antes de começar. A sessão entra na fila de trabalho do ambiente e espera lá até que um worker a reivindique; se nenhum worker estiver conectado, a sessão permanece na fila em vez de falhar.
A Anthropic não monta arquivos ou repositórios GitHub em sandboxes auto-hospedados. Para disponibilizar arquivos específicos da sessão, passe referências de arquivo (como um caminho S3 ou SHA de commit) no campo metadata da sessão. O item de trabalho reivindicado não carrega os metadados da sessão, mas carrega o ID da sessão: seu script de spawn ou handler --on-work recupera a sessão (GET /v1/sessions/{session_id}) para ler o campo metadata, e então prepara os arquivos no diretório de trabalho antes que a execução de ferramentas comece.
session = client.beta.sessions.create(
agent=agent.id,
environment_id=environment.id,
metadata={"input_file": "s3://my-bucket/data.csv"},
)Consulte Worker auto-hospedado na referência para a lista completa de flags da CLI, e Helpers do SDK para as opções de helpers do SDK.
Ferramentas personalizadas são ferramentas que seu próprio código executa: o agente emite um evento agent.custom_tool_use e espera por um user.custom_tool_result correspondente. O worker pode ser esse código, e como ele é executado dentro do seu sandbox, a ferramenta alcança os serviços internos, credenciais e saída de rede que você configurou para o sandbox, e nada mais. A chave de ambiente autoriza o envio de resultados de ferramentas personalizadas, então sua chave de API do Claude fica fora do host do worker.
Declare a ferramenta no agente
Adicione uma entrada custom ao tools do agente cujo name corresponda à ferramenta que seu worker registra. Consulte Ferramentas personalizadas para o formato completo da declaração.
{
"type": "custom",
"name": "get_order_status",
"description": "Look up an order in the internal fulfillment system by order ID.",
"input_schema": {
"type": "object",
"properties": {
"order_id": { "type": "string", "description": "The order ID" }
},
"required": ["order_id"]
}
}Registre a implementação com o worker
Passe a ferramenta através da factory tools do worker (consulte Helpers do SDK), junto com o conjunto de ferramentas integrado:
import asyncio
import os
from anthropic import AsyncAnthropic, beta_async_tool
from anthropic.lib.environments import EnvironmentWorker
from anthropic.lib.tools.agent_toolset import beta_agent_toolset_20260401
@beta_async_tool
async def get_order_status(order_id: str) -> str:
"""Look up an order in the internal fulfillment system by order ID."""
# Executa no host do worker: chame qualquer coisa que o sandbox possa alcançar.
return f"Order {order_id}: shipped"
async def main() -> None:
environment_key = os.environ["ANTHROPIC_ENVIRONMENT_KEY"]
environment_id = os.environ["ANTHROPIC_ENVIRONMENT_ID"]
async with AsyncAnthropic(auth_token=environment_key) as client:
await EnvironmentWorker(
client,
environment_id=environment_id,
environment_key=environment_key,
workdir="/workspace",
tools=lambda env: [*beta_agent_toolset_20260401(env), get_order_status],
).run()
asyncio.run(main())O worker responde apenas às ferramentas registradas com ele. Uma ferramenta personalizada que é declarada no agente mas não registrada com nenhum worker ou cliente deixa a sessão pausada com um stop reason requires_action até que algo envie seu resultado; consulte Lidando com chamadas de ferramentas personalizadas para o fluxo de eventos.
O conector MCP conecta-se a servidores MCP do lado da Anthropic, então um servidor deve expor um endpoint HTTP que a Anthropic possa alcançar, diretamente ou através de um túnel MCP. Para usar um servidor que apenas sua rede pode alcançar, faça do worker o cliente MCP e declare as ferramentas do servidor como ferramentas personalizadas. O servidor MCP não precisa de conectividade de entrada de fora da sua rede; a Anthropic recebe as definições de ferramentas que você declara no agente, a entrada de cada chamada e o resultado que seu worker envia de volta. Em tempo de execução, o modelo chama uma ferramenta encapsulada como qualquer outra ferramenta personalizada:
agent.custom_tool_use.user.custom_tool_result.Os helpers MCP do lado do cliente dos SDKs convertem as ferramentas do servidor nas ferramentas executáveis que o worker aceita; instale um SDK MCP junto com o SDK da Anthropic (pip install "anthropic[mcp]" "mcp>=1.24", npm install @modelcontextprotocol/sdk, go get github.com/modelcontextprotocol/go-sdk). Os exemplos conectam sem autenticação; para enviar credenciais, configure o cliente HTTP ou as opções de requisição que você passa para o transporte MCP (http_client em Python, requestInit em TypeScript, HTTPClient em Go).
Declare as ferramentas do servidor no agente
Liste as ferramentas do servidor MCP e declare cada uma como uma ferramenta custom; o name, description e inputSchema do MCP mapeiam um a um para os campos da ferramenta personalizada. Se o servidor paginar sua lista de ferramentas, declare todas as páginas; o worker deve listar as mesmas páginas.
import asyncio
from typing import Any, cast
from anthropic import AsyncAnthropic
from anthropic.types.beta import BetaManagedAgentsCustomToolParams
from mcp import ClientSession, types
# Requer mcp >= 1.24, que renomeou streamablehttp_client para streamable_http_client.
from mcp.client.streamable_http import streamable_http_client
MCP_SERVER_URL = "http://mcp.internal.example.com:8000/mcp"
def to_custom_tool(tool: types.Tool) -> BetaManagedAgentsCustomToolParams:
# Os campos MCP mapeiam um a um para uma declaração de ferramenta personalizada. O cast
# entrega o dicionário do schema ao parâmetro tipado do SDK sem alterações.
return {
"type": "custom",
"name": tool.name,
"description": tool.description or tool.name,
"input_schema": cast(Any, tool.inputSchema),
}
async def main() -> None:
# Execute isto onde você cria agentes, não no host worker: ele
# autentica com sua chave de API do Claude (ANTHROPIC_API_KEY).
async with (
streamable_http_client(MCP_SERVER_URL) as (read, write, _),
ClientSession(read, write) as mcp_session,
AsyncAnthropic() as client,
):
await mcp_session.initialize()
listed = await mcp_session.list_tools()
agent = await client.beta.agents.create(
name="Internal tools agent",
model="claude-opus-5",
tools=[
{"type": "agent_toolset_20260401"},
*[to_custom_tool(tool) for tool in listed.tools],
],
)
print(agent.id)
asyncio.run(main())Sirva as ferramentas a partir do worker
Conecte-se ao mesmo servidor MCP na inicialização, converta suas ferramentas com os helpers MCP e registre-as junto com o conjunto de ferramentas integrado. Mantenha uma sessão MCP aberta durante toda a vida do worker.
import asyncio
import os
from datetime import timedelta
from anthropic import AsyncAnthropic
from anthropic.lib.environments import EnvironmentWorker
from anthropic.lib.tools.agent_toolset import beta_agent_toolset_20260401
from anthropic.lib.tools.mcp import async_mcp_tool
from mcp import ClientSession
# Requer mcp >= 1.24, que renomeou streamablehttp_client para streamable_http_client.
from mcp.client.streamable_http import streamable_http_client
MCP_SERVER_URL = "http://mcp.internal.example.com:8000/mcp"
async def main() -> None:
environment_key = os.environ["ANTHROPIC_ENVIRONMENT_KEY"]
environment_id = os.environ["ANTHROPIC_ENVIRONMENT_ID"]
# Conecta ao servidor MCP uma vez na inicialização e mantém a sessão aberta durante
# toda a vida do worker. O timeout transforma uma chamada de ferramenta travada em um
# resultado de erro em vez de uma chamada paralisada.
async with (
streamable_http_client(MCP_SERVER_URL) as (read, write, _),
ClientSession(read, write, read_timeout_seconds=timedelta(seconds=60)) as mcp_session,
AsyncAnthropic(auth_token=environment_key) as client,
):
await mcp_session.initialize()
listed = await mcp_session.list_tools()
mcp_tools = [async_mcp_tool(tool, mcp_session) for tool in listed.tools]
await EnvironmentWorker(
client,
environment_id=environment_id,
environment_key=environment_key,
workdir="/workspace",
tools=lambda env: [*beta_agent_toolset_20260401(env), *mcp_tools],
).run()
asyncio.run(main())Tenha o seguinte em mente ao encapsular um servidor MCP:
tools de um agente aceita no máximo 128 entradas (cada ferramenta encapsulada é uma entrada, e o conjunto de ferramentas integrado é mais uma). A API rejeita uma declaração que reutiliza um nome de ferramenta, nomeia uma ferramenta personalizada com o nome de uma ferramenta integrada do agente como bash ou read, ou usa o prefixo reservado mcp__. Os helpers MCP mantêm os nomes e descrições do servidor, então renomeie ou reduza onde necessário. Quando dois servidores expõem o mesmo nome de ferramenta, defina o wrapper você mesmo sob um nome prefixado e faça-o chamar o nome original da ferramenta do servidor.additionalProperties e title. Ela rejeita palavras-chave de referência como $ref em qualquer lugar no input_schema de uma ferramenta personalizada, então faça inline dos schemas que geradores como pydantic fatoram em $defs. Ela também rejeita oneOf, anyOf e allOf no nível superior, e nomes de propriedades fora de letras, dígitos, underscores, pontos e hífens (1–64 caracteres).read_timeout_seconds. Sem um, uma chamada travada se torna um resultado de erro apenas quando o timeout padrão de requisição do SDK MCP TypeScript dispara (cerca de um minuto) ou quando o próprio backstop do worker dispara: cerca de dois minutos e meio em Python, e dois minutos em Go, onde o worker cancela uma chamada de ferramenta que ultrapassa seu padrão de 120 segundos e envia um resultado de erro.bash no host do worker. Declare apenas as ferramentas que você pretende que o agente use.Essas chamadas são executadas a partir das suas ferramentas de monitoramento ou operações, autenticadas com sua chave de API do Claude, para observar e gerenciar a frota de workers. O loop de reivindicação e keep-alive é tratado dentro dos helpers do worker, então você não chama esses endpoints diretamente.
work.stats retorna o estado da fila para um ambiente:
depth é o número de itens esperando para serem reivindicados. Escale sua frota de workers ou alerte sobre backlog com base neste valor.pending é o número de itens reivindicados por um worker mas ainda não confirmados. Os helpers do worker confirmam cada item antes de processá-lo, então este valor permanece próximo de zero em operação normal; um valor não zero sustentado significa que um worker travou entre reivindicar e confirmar.oldest_queued_at é o timestamp do item mais antigo ainda na fila, esperando para ser reivindicado ou reivindicado mas ainda não confirmado, ou null quando não há nenhum.workers_polling é o número de workers que fizeram polling nos últimos 30 segundos. Use isto para alertas de liveness.import os
import anthropic
client = anthropic.Anthropic()
stats = client.beta.environments.work.stats(os.environ["ANTHROPIC_ENVIRONMENT_ID"])
print(f"depth={stats.depth} pending={stats.pending}"){
"type": "work_queue_stats",
"depth": 0,
"pending": 0,
"oldest_queued_at": null,
"workers_polling": 0
}Use work.stop para solicitar que o worker responsável por uma sessão específica a encerre. Por padrão, o work item passa para stopping: o worker percebe isso no próximo heartbeat do lease, cancela a chamada de ferramenta em andamento da sessão e confirma o encerramento, momento em que o work item se torna stopped. Passe force: true no corpo da requisição (com a CLI, passe --force) para marcar o work item como stopped imediatamente, em vez de aguardar a confirmação do worker.
Como essas chamadas são executadas a partir das suas ferramentas de operações, e não do host do worker, ANTHROPIC_WORK_ID não é definido automaticamente. Defina-o como o ID do work item de destino antes de executar os exemplos a seguir. Para encontrar o ID de um work item, liste os work items do ambiente por meio dos endpoints de Work de Environments.
import os
import anthropic
client = anthropic.Anthropic()
work = client.beta.environments.work.stop(
os.environ["ANTHROPIC_WORK_ID"],
environment_id=os.environ["ANTHROPIC_ENVIRONMENT_ID"],
)
print(work.state)Modelo de responsabilidade compartilhada para ambientes de sandbox auto-hospedados.
Crie uma sessão para executar seu agente e começar a executar tarefas.
Conecte o Claude com segurança a servidores MCP em execução na sua rede privada sem abrir portas de entrada ou expor serviços à internet pública.
Was this page helpful?