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

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
- Experimente o SDK: Instale
@cloudflare/sandbox@lateste teste os exemplos deste artigo. - 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.
- Escale gradualmente: Comece com algumas instâncias concorrentes e monitore os custos usando o modelo de precificação de CPU ativa.
- 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.

Comparação de Recursos: Sandboxes vs. Contêineres Tradicionais
| Recurso | Cloudflare Sandbox | Contêiner Tradicional |
|---|---|---|
| Explosão de demanda | Sono/despertar automático, sem custo ocioso | Escalonamento manual, custo ocioso |
| Restauração de estado | Snapshots (disco), backup/restore | Reconstruir a partir da imagem |
| Segurança | Injeção de credenciais em camada de rede | Variáveis de ambiente manuais, gerenciamento de segredos |
| Terminal | PTY via WebSocket, compatível com xterm.js | Apenas SSH ou exec |
| Interpretador de código | Contexto persistente (Python, JS, TS) | Sem estado por invocação |
| Observação de arquivos | Inotify nativo via SSE | Polling ou observadores personalizados |
| Precificação | Apenas ciclos de CPU ativos | Sempre ligado, custo ocioso |
| Máx. instâncias (padrão) | 15.000 (lite), 6.000 (básico), 1.000+ (grande) | Varia por provedor |

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.