Inteligência artificial, sem ruído.
Agentes de IA3 min

Como Deep Agents executa código não confiável sem sandbox tradicional usando WebAssembly

LangChain detalha como Deep Agents isola código de agentes usando WebAssembly e QuickJS em vez de sandboxes tradicionais, com três pilares: isolamento de execução, capacidade e pausas duráveis.

Como Deep Agents executa código não confiável sem sandbox tradicional usando WebAssembly
Imagem de apoio. Fonte: LangChain Blog.

A LangChain revelou em detalhes técnicos como o Deep Agents executa código escrito por agentes de forma segura, sem depender de sandboxes tradicionais. A solução usa WebAssembly (WASM) e QuickJS para isolar a execução dentro do próprio processo, combinando três requisitos de design: isolamento de execução, isolamento de capacidade e pausas duráveis.

O problema é mais difícil do que parece. Executar código não confiável é um problema bem estudado. Executar código escrito por um agente influenciado por entrada não confiável não é. Como a injeção de prompt permanece um problema não resolvido, a LangChain parte do princípio de que código escrito por agentes eventualmente fará algo que não deveria. Em vez de confiar no agente, eles restringem o que ele pode fazer.

Isolamento de execução com WebAssembly

WebAssembly executa dentro de uma VM sandboxada no próprio processo, com memória linear separada. Código rodando em WASM não pode dereferenciar ponteiros no processo host — não consegue ler ou corromper memória que não recebeu explicitamente. Os runtimes WASM aplicam limites rígidos de memória e execução de forma direta.

Para o engine de execução, a LangChain escolheu o QuickJS — um engine JavaScript pequeno, rápido e compatível com ECMA, escrito em C puro. Ele compila para WASM, então o próprio engine fica atrás da barreira de segurança, não ao lado dela. JavaScript é expressivo o suficiente para lógica de orquestração sem etapa de compilação, exatamente o formato dos programas curtos que agentes produzem.

Isolamento de capacidade: partindo do zero

A diferença mais importante entre intérpretes e sandboxes tradicionais está na superfície de ataque. Um sandbox começa “em forma de computador” — sistema de arquivos, dependências, shell — e o trabalho de segurança é redutivo: parte-se de acesso amplo e remove-se privilégios. Um intérprete de código começa com nada: sem acesso a arquivos, rede ou instalação de dependências. Tudo que é mais poderoso é adicionado deliberadamente através do harness.

O exemplo mais claro é a chamada de subagentes dentro do código. Em vez de um gerenciador de processos ou stack de rede, o agente recebe uma função com contrato restrito, e o harness gerencia a execução. A LangChain controla quantos subagentes podem rodar simultaneamente e quantos uma única chamada pode disparar — seguindo a “regra de dois” da Meta: até que injeção de prompt seja resolvida, um agente não deve poder fazer mais de duas entre três coisas perigosas simultaneamente.

Pausas duráveis

O terceiro pilar é a capacidade de interromper a execução para intervenção humana e retomar depois sem perder estado. Isso é crítico para agentes que operam em ambientes de produção onde supervisão humana é necessária em pontos de decisão.

O design representa uma alternativa real aos sandboxes tradicionais para workloads de orquestração, oferecendo segurança comparável com superfície de ataque significativamente menor. A abordagem está disponível no Deep Agents e nos Code Interpreters da plataforma LangSmith.

Fonte: LangChain Blog


Descubra mais sobre noticiAI

Assine para receber nossas notícias mais recentes por e-mail.

R
Sobre o autorRedação Noticiai

Equipe editorial dedicada a explicar inteligência artificial com clareza, independência e contexto.