Comece a usar o Claude Managed Agents auto-hospedado
Inicie o Claude Managed Agents auto-hospedado em uma única máquina com Docker Compose e execute uma primeira sessão em um contêiner de sandbox.
Neste guia de início rápido, você inicia o Claude Managed Agents auto-hospedado em uma única máquina com Docker Compose. A stack do Compose é composta pelo servidor, seu banco de dados PostgreSQL e um conjunto de “workers” (processos de trabalho) que executam cada sessão em um contêiner de “sandbox” (ambiente isolado) próprio. Em seguida, você conversa com um agente a partir do seu terminal e confirma que as chamadas de ferramentas dele foram executadas em um contêiner de sandbox. Depois, você pode abrir a sessão no console do seu servidor.
Para produção, a Anthropic recomenda os dois Helm charts da versão. Consulte Implantar no Kubernetes.
Claude Code
Deixe o Claude Code executar este guia de início rápido para você
Configure o Claude Managed Agents auto-hospedado nesta máquina seguindo https://platform.claude.com/docs/en/managed-agents/self-hosted/quickstart.md. Eu já baixei o arquivo compactado da versão.Pré-requisitos
- O arquivo compactado da versão: Para solicitar acesso ao download, entre em contato com a equipe da sua conta na Anthropic.
- Uma chave de API do Claude: O servidor a usa para chamadas ao modelo. Crie uma no Claude Console.
- Docker: A versão mais recente do Docker Engine com o plugin Compose (
docker compose, não o antigodocker-compose). - Um host com pelo menos duas CPUs: x86-64 ou Arm. Em um host menor, defina
CMA_SANDBOX_CPUScom o número de CPUs dele ao criar o.env. - Acesso à rede na primeira inicialização: O primeiro build baixa conteúdo do Docker Hub, dos repositórios de pacotes do Alpine e de releases do GitHub.
- Ferramentas: Na máquina onde você executa o Docker, você precisa do
openssle da CLIant.
Inicie a stack
Extraia o arquivo compactado
Extraia o arquivo compactado e trabalhe a partir do diretório
composedele. No comando, substitua<archive>pelo nome do seu arquivo compactado, sem.tar.gz.tar -xzf <archive>.tar.gz && cd <archive>/composeSe a sua umask for mais restritiva que
022, os binários perdem a permissão de execução para outros usuários, e o contêiner do servidor não consegue iniciá-los. Nesse caso, defina-a como022e extraia o arquivo compactado novamente.Crie o arquivo .env
O Compose lê os segredos da stack de um arquivo
.envao lado dodocker-compose.yml. Crie o arquivo:cat > .env <<EOF CMA_PG_PASSWORD=$(openssl rand -hex 32) ANTHROPIC_API_KEY=sk-ant-... CMA_SERVER__API_KEY=$(openssl rand -hex 32) CMA_STORE__CREDENTIALS_ENCRYPTION_KEY=$(openssl rand -base64 32) EOF chmod 600 .envAbra o
.envem um editor e substituask-ant-...pela sua chave de API do Claude. O bloco gera o restante: a senha do banco de dados, a chave de API do servidor que suas aplicações enviam e a chave que criptografa os segredos armazenados do servidor.Inicie os contêineres
Faça o build e inicie a stack e, em seguida, acompanhe o log do servidor:
docker compose up --build -d docker compose logs -f cma-serverQuando o log mostrar uma linha com
msg="cma-server listening", pressione Ctrl+C para parar de acompanhá-lo.Verifique se o servidor está pronto
curl -s http://127.0.0.1:8400/cma-server/readyzUm servidor pronto responde com
"status":"ready". Logo após a inicialização, ele pode responder"status":"degraded"por alguns segundos enquanto suas primeiras verificações são executadas. Se ele permanecerdegradedou responder"status":"not_ready", consulte Solução de problemas.
Execute sua primeira sessão
Crie um agente e converse com ele a partir do seu terminal com a CLI ant.
Aponte a CLI para o seu servidor
Abra um segundo terminal no mesmo diretório e reserve-o para o
ant. Os comandos a seguir definemANTHROPIC_API_KEYcom a chave de API do seu servidor, não com a sua chave de API do Claude, como explica Chamar a API em um servidor auto-hospedado:export ANTHROPIC_BASE_URL=http://127.0.0.1:8400 export ANTHROPIC_API_KEY=$(grep '^CMA_SERVER__API_KEY=' .env | cut -d= -f2)Mantenha os comandos
docker composeno primeiro terminal. Se você executardocker compose upneste terminal, o Compose passa essas variáveis para o servidor, e o servidor chama a si mesmo em vez da API do Claude.Crie um agente
Salve o arquivo que vem depois do comando como
quickstart-agent.mde, em seguida, execute o comando. O arquivo dá ao agente as ferramentas integradas e permite que ele as execute sem perguntar a você primeiro.CLIant apply --yes quickstart-agent.mdquickstart-agent.md--- name: Quickstart agent model: claude-opus-5-5 tools: - type: agent_toolset_20260401 --- You are a helpful assistant.O comando primeiro exibe um aviso de que
could not determine the organization and workspace, com um erro404, e depois cria o agente. Isso é esperado no seu próprio servidor.Inicie uma sessão
Estes comandos encontram o agente e o ambiente da stack, iniciam uma sessão e guardam o ID da sessão em
SESSION_ID. A stack chama seu ambiente decompose-sandbox.AGENT_ID=$(ant beta:agents list --format raw \ --transform 'data.#(name=="Quickstart agent").id' --raw-output) ENVIRONMENT_ID=$(ant beta:environments list --format raw \ --transform 'data.#(name=="compose-sandbox").id' --raw-output) SESSION_ID=$(ant beta:sessions create --agent "$AGENT_ID" \ --environment-id "$ENVIRONMENT_ID" --transform id --raw-output)Peça ao agente para executar um comando
Conecte seu terminal à sessão:
ant beta:sessions connect "$SESSION_ID"O comando abre uma visualização de chat da sessão. Envie esta mensagem:
Run `hostname` with the bash tool and tell me the output.O agente responde com um hostname que começa com
cma-sandbox-. Esse é o nome do contêiner de sandbox que executou o comando, o que confirma que a ferramenta foi executada em um sandbox e não na sua máquina.Encontre o contêiner de sandbox
Deixe o chat aberto. No primeiro terminal, liste os contêineres de sandbox:
docker ps --filter label=cma-server.sandboxA lista mostra o contêiner que o agente informou. O contêiner é encerrado cerca de um minuto depois que um turno termina, e a próxima mensagem da sessão inicia um novo contêiner. Se a lista estiver vazia, peça ao agente para executar
hostnamenovamente e liste os contêineres outra vez enquanto ele responde.Para sair do chat, pressione Ctrl+C no terminal dele. A sessão continua em execução.
Experimente o console no seu servidor
Esta seção é opcional. O console exige single sign-on. Para experimentá-lo, reinicie a stack com o provedor de login simulado da versão. A porta 8080 da sua máquina precisa estar livre.
Reinicie a stack com o provedor de login simulado
Execute estes comandos no primeiro terminal:
export COMPOSE_FILE=docker-compose.yml:docker-compose.oidc.yml docker compose up --build -dA linha
exportvale apenas para o primeiro terminal, então execute-a novamente em qualquer novo terminal que você abrir para odocker compose. Para alterar as configurações do servidor nesta stack, editecompose.config.oidc.yaml, nãocompose.config.yaml, e depois executedocker compose restart cma-server.Abra a sessão
Em um navegador na mesma máquina, abra
http://127.0.0.1:8400/, clique em Continue with SSO e selecione alice, a administradora de demonstração. Na barra lateral, selecione Sessions e, em seguida, selecione a sessão.A página é atualizada à medida que o agente trabalha, e você pode enviar uma mensagem ao agente a partir dela.
Para também criar agentes e iniciar sessões no console, consulte Executar um agente a partir do console.
Pare a stack
No primeiro terminal, execute este comando:
docker compose down --remove-orphansO comando exclui os contêineres e mantém o banco de dados. Para excluir também o banco de dados, com todos os agentes, sessões e históricos de sessões nele, execute docker compose down --remove-orphans -v.
Solução de problemas
- Seu arquivo compactado não tem um diretório
compose: O arquivo compactado contém uma versão anterior, e os comandos desta página não correspondem a ela. Solicite a versão atual à equipe da sua conta na Anthropic. Para migrar uma implantação em execução para a versão atual, consulte Atualizar o Claude Managed Agents auto-hospedado. - O servidor nunca fica disponível: Execute
docker compose logs migrate. O contêinermigratede execução única cria as tabelas do banco de dados. Ele precisa encerrar com status0antes de o servidor ser iniciado. - A verificação de prontidão permanece
degradedou todos os turnos falham: Se você executoudocker compose upem um terminal em queANTHROPIC_BASE_URLéhttp://127.0.0.1:8400, o servidor chama a si mesmo em vez da API do Claude. Executedocker compose up -dnovamente no primeiro terminal, onde a variável não está definida. Caso contrário, o log do servidor mostra o que falhou. Para lê-lo, executedocker compose logs -f cma-servernovamente. - A verificação de prontidão responde
not_ready: Na resposta, encontre a verificação com o estadofailed:upstream: A API do Claude rejeitou a sua chave de API do Claude. CorrijaANTHROPIC_API_KEYno.enve, em seguida, executedocker compose up -dnovamente no primeiro terminal. Se o seu shell também defineANTHROPIC_API_KEY, o Compose usa o valor do shell, então executeunset ANTHROPIC_API_KEYantes.database: Ou o banco de dados rejeitou o login do servidor, por exemplo por causa de uma senha errada, ou uma conexão aberta com o banco de dados foi interrompida. Para ver qual dos dois, executedocker compose logs -f cma-servernovamente.
- O agente responde, mas sua chamada de ferramenta nunca termina: Nenhum worker está consultando o ambiente. Verifique o log dos workers com
docker compose logs sandbox. Um worker que não consegue acessar o socket do daemon do Docker encerra com uma mensagem que mencionaCMA_DOCKER_SOCKET. Defina essa variável no.envcom o caminho do socket do seu daemon e, em seguida, executedocker compose up -dnovamente no primeiro terminal. - Os workers estão em execução, mas uma chamada de ferramenta ainda nunca termina: A stack inicia 10 workers, e cada um executa o contêiner de uma sessão por vez. Uma sessão ocupa um worker livre quando você a cria, e uma sessão que nunca recebe uma mensagem mantém seu worker por até uma hora. Com todos os 10 ocupados, as chamadas de ferramentas de qualquer outra sessão aguardam um worker. Se o comando
docker psda etapa “Encontre o contêiner de sandbox” listar 10 contêineres, arquive as sessões que você não usa:- No primeiro terminal, execute
docker ps --filter label=cma-server.sandbox --format '{{.Label "cma-server.session"}}'. Ele exibe o ID da sessão por trás de cada contêiner. A sessão que aguarda ainda não tem contêiner, então ela não está na lista. - No segundo terminal, pressione Ctrl+C para sair do chat e execute
ant beta:sessions archive --session-id <session-id>para cada sessão listada que você não usa. - Execute
ant beta:sessions connect "$SESSION_ID"novamente. A chamada de ferramenta termina quando um worker assume a sessão dela.
- No primeiro terminal, execute
Próximos passos
Aponte o SDK e a CLI ant para o seu servidor.
Verifique quais recursos se comportam de forma diferente ou não estão disponíveis.
Configure o login e crie agentes e execute sessões em um navegador.
Esta página foi útil?