Cloudflare Sandboxes e Containers: Disponibilidade Geral e o que Há de Novo

Vamos lá, devs! 🌟 Quando a Cloudflare lançou os Sandboxes em junho do ano passado, a premissa era simples: agentes de IA precisam de um lugar seguro para desenvolver e executar código. Como os agentes estão cada vez mais agindo como desenvolvedores—clonando repositórios, compilando código, rodando servidores de desenvolvimento—eles precisam de um computador completo. Muitos desenvolvedores estão juntando soluções com VMs ou contêineres, mas enfrentam problemas difíceis como explosão de demanda, restauração rápida de estado, segurança, controle e ergonomia.

A Cloudflare resolveu esses problemas, e hoje, Sandboxes e Containers estão ambos em disponibilidade geral. Este artigo detalha os principais novos recursos e por que eles são importantes para seus workflows com agentes de IA.

Fonte: Blog da Cloudflare - Sandbox GA

Cloudflare Sandbox dashboard showing container management and agent sessions Software Concept Art

Mergulho nos Recursos Principais

Injeção Segura de Credenciais

Um dos problemas mais difíceis em cargas de trabalho com agentes é a autenticação. Agentes geralmente precisam acessar serviços privados, mas você não pode confiar neles com credenciais brutas. Os Sandboxes resolvem isso injetando credenciais na camada de rede usando um proxy de egress programável.

class OpenCodeInABox extends Sandbox {
  static outboundByHost = {
    "my-internal-vcs.dev": (request, env, ctx) => {
      const headersWithAuth = new Headers(request.headers);
      headersWithAuth.set("x-auth-token", env.SECRET);
      return fetch(request, { headers: headersWithAuth });
    }
  }
}

Essa abordagem garante que os agentes nunca tenham acesso às credenciais, enquanto permite personalização completa da lógica de autenticação. Para um mergulho mais profundo, confira nosso artigo Beyond Prototypes: How Vercel's New v0 Brings AI Coding to Production para uma perspectiva sobre plataformas de codificação com IA em produção.

Terminal Real com Suporte a PTY

Sistemas antigos de agentes modelavam o acesso ao shell como um loop de requisição-resposta. A Cloudflare agora oferece suporte a PTY, dando aos agentes um terminal real por WebSocket, compatível com xterm.js.

// Worker: atualiza uma conexão WebSocket para uma sessão de terminal ao vivo
export default {
  async fetch(request: Request, env: Env) {
    const url = new URL(request.url);
    if (url.pathname === "/terminal") {
      const sandbox = getSandbox(env.Sandbox, "my-session");
      return sandbox.terminal(request, { cols: 80, rows: 24 });
    }
    return new Response("Not found", { status: 404 });
  },
};

Interpretadores de Código Persistentes

Os Sandboxes permitem criar contextos de execução persistentes onde variáveis e imports sobrevivem entre chamadas, similar a um Jupyter notebook.

// Cria um contexto Python. O estado persiste por toda a vida útil.
const ctx = await sandbox.createCodeContext({ language: "python" });

// Primeira execução: carrega dados
await sandbox.runCode(`
import pandas as pd
df = pd.read_csv('/workspace/sales.csv')
df['margin'] = (df['revenue'] - df['cost']) / df['revenue']
`, { context: ctx });

// Segunda execução: df ainda está lá
const result = await sandbox.runCode(`
df.groupby('region')['margin'].mean().sort_values(ascending=False)
`, { context: ctx, onStdout: (line) => console.log(line.text) });

Snapshots para Inicialização Rápida

Snapshots preservam o estado completo do disco do contêiner, permitindo restaurá-lo rapidamente depois. Isso é crucial para workflows de agentes onde você precisa retomar o trabalho sem pagar por computação ociosa.

class AgentDevEnvironment extends Sandbox {
  sleepAfter = "5m";
  persistAcrossSessions = {type: "disk"};
}

async function forkDevEnvironment(baseId: string, numberOfForks: number) {
  const baseInstance = await getSandbox(baseId);
  const snapshotId = await baseInstance.snapshot();
  const forks = Array.from({ length: numberOfForks }, async (_, i) => {
    const newInstance = await getSandbox(`${baseId}-fork-${i}`);
    return newInstance.start({ snapshot: snapshotId });
  });
  await Promise.all(forks);
}

Precificação Baseada em CPU Ativa

Os Sandboxes agora cobram apenas pelos ciclos de CPU ativamente usados. Isso significa que você não paga por CPU ociosa enquanto seu agente espera a resposta de um LLM—uma enorme economia de custos para cargas de trabalho em produção.

Limitações e Considerações

  • Estado de memória do snapshot: A captura de estado de memória ao vivo ainda não está disponível (chegará em versões futuras). Atualmente, apenas o estado do disco é persistido.
  • Inicializações a frio: Embora os snapshots melhorem o tempo de inicialização a quente, a primeira inicialização ainda leva tempo. Iniciar um sandbox, clonar um repositório e instalar dependências leva cerca de 30 segundos.
  • Complexidade: O proxy de egress programável e a injeção de credenciais exigem configuração inicial e compreensão dos bindings do Cloudflare Workers.

Próximos Passos para Aprendizado

  1. Experimente o SDK: Instale @cloudflare/sandbox@latest e teste os exemplos deste artigo.
  2. Explore backup/restore: Se você precisa de persistência de estado de sessão antes dos snapshots estarem totalmente disponíveis, use os métodos backup e restore.
  3. Escale gradualmente: Comece com algumas instâncias concorrentes e monitore os custos usando o modelo de precificação de CPU ativa.
  4. Leia a documentação oficial: Confira a documentação da Cloudflare para configuração avançada e melhores práticas.

Conclusão

Os Cloudflare Sandboxes evoluíram de um simples executor de comandos para um ambiente de desenvolvimento completo para agentes de IA. Com recursos como injeção segura de credenciais, suporte a PTY, interpretadores de código persistentes, snapshots e precificação de CPU ativa, é agora uma plataforma pronta para produção para executar agentes em escala. O ciclo de feedback apertado que torna engenheiros humanos eficazes agora está disponível para seus agentes.

Developer using Cloudflare Containers for AI agent sandbox environment IT Technology Image

Comparação de Recursos: Sandboxes vs. Contêineres Tradicionais

RecursoCloudflare SandboxContêiner Tradicional
Explosão de demandaSono/despertar automático, sem custo ociosoEscalonamento manual, custo ocioso
Restauração de estadoSnapshots (disco), backup/restoreReconstruir a partir da imagem
SegurançaInjeção de credenciais em camada de redeVariáveis de ambiente manuais, gerenciamento de segredos
TerminalPTY via WebSocket, compatível com xterm.jsApenas SSH ou exec
Interpretador de códigoContexto persistente (Python, JS, TS)Sem estado por invocação
Observação de arquivosInotify nativo via SSEPolling ou observadores personalizados
PrecificaçãoApenas ciclos de CPU ativosSempre ligado, custo ocioso
Máx. instâncias (padrão)15.000 (lite), 6.000 (básico), 1.000+ (grande)Varia por provedor

Secure credential injection diagram for Cloudflare Sandbox egress proxy

Considerações Finais

Cloudflare Sandboxes não são apenas mais um serviço de contêiner—eles são construídos sob medida para a era dos agentes de IA. Ao resolver os problemas difíceis de explosão de demanda, segurança e gerenciamento de estado, eles permitem que você foque em construir agentes inteligentes em vez de infraestrutura.

Se você está construindo agentes de IA que precisam escrever código, executar testes ou interagir com servidores de desenvolvimento, experimente os Cloudflare Sandboxes. O SDK está na versão 0.8.9, e você pode começar com um simples npm install.

Além disso, confira nosso artigo sobre Python 3.15 Alpha 3: Uma Olhada nos Próximos Recursos para ver como o último lançamento do Python complementa essas capacidades de contêiner.

Este conteúdo foi elaborado com o auxílio de ferramentas de IA, com base em fontes confiáveis, e revisado pela nossa equipe editorial antes da publicação. Não substitui o aconselhamento de um profissional especializado.