LLM Sandbox: Implementando um Agente com Ambiente Isolado (Parte 2 - Prática)

LLM Sandbox: Implementando um Agente com Ambiente Isolado (Parte 2 - Prática)

Explore a implementação prática de um agente LLM que executa código em um ambiente Docker isolado. Este artigo detalha a arquitetura, os componentes e os desafios de custo associados à execução de código seguro em larga escala.

MundiX News·27 de junho de 2026·8 min de leitura·👁 1 views

LLM Sandbox: Implementando um Agente com Ambiente Isolado (Parte 2 - Prática)

Este artigo é a segunda parte de uma série focada na criação de um "LLM Sandbox", um ambiente seguro para a execução de código gerado por Large Language Models (LLMs). Na primeira parte, abordamos os riscos inerentes à execução de código por LLMs, as limitações de ambientes isolados (sandboxes) e exploramos diversas técnicas de isolamento como Docker, Wasm, gVisor e microVMs, além de apresentar uma arquitetura mínima para um agente com sandbox. Agora, mergulharemos na prática, detalhando a implementação de um agente que escreve e executa código dentro de um sandbox Docker.

O código completo, os "skills" (conjuntos de instruções para tarefas específicas), logs detalhados e artefatos deste exemplo estão disponíveis em um repositório público no GitHub. Para quem não me conhece, sou Evgeniy, um desenvolvedor e líder de equipe de ML, com foco em agentes, LLMs e Processamento de Linguagem Natural (NLP). Compartilho minhas experiências práticas e insights técnicos sobre IA e ML em meu canal no Telegram.

Arquitetura e Implementação do Agente com Sandbox

O agente opera seguindo um padrão híbrido ReAct + Plan-Execute, utilizando o framework LangGraph. Sua arquitetura é composta por:

  • Orchestrator (Orquestrador): O "cérebro" do agente. Ele recebe a tarefa do usuário, planeja a solução decompondo-a em sub-tarefas, delega essas sub-tarefas aos "sub-agentes" e, finalmente, agrega os resultados para sintetizar a resposta final.
  • Sub-agent (Sub-agente): Uma sessão dedicada com um LLM e um contexto limpo. O orquestrador envia uma tarefa específica e o contexto necessário para o sub-agente, permitindo que as sub-tarefas sejam executadas de forma independente sem sobrecarregar o agente principal.
  • LLM: Tanto o orquestrador quanto os sub-agentes interagem com um LLM, cada um com seus "system prompts" (instruções de sistema) específicos.
  • Skills Catalog (Catálogo de Habilidades): Um conjunto de instruções detalhadas para tarefas específicas. Por exemplo, o diretório skills/presentation descreve o processo completo de criação de apresentações. O orquestrador e os sub-agentes acessam essas instruções através da ferramenta read_skill.

As ferramentas disponíveis para o agente incluem:

  • Gerenciamento de Sub-tarefas: create_todo_list, complete_todo, start_next_todo, revise_todo_list, block_todo.
  • Gerenciamento de Arquivos: list_input_files, list_output_files, read_file_content, read_skill.
  • Execução de Código: write_python_file (salva scripts Python em /workspace/code) e run_python_file (executa scripts na sandbox).

O Docker Sandbox é o ambiente de execução isolada. Para cada sub-tarefa, um contêiner Docker é criado temporariamente. Ele é configurado com flags de segurança rigorosos como --network=none, --read-only, --cap-drop=ALL, --security-opt=no-new-privileges, executado como usuário não-root, com limites de CPU/RAM/PIDs, e utiliza tmpfs para /tmp e montagens read-only para diretórios de entrada e código. É crucial notar que esta configuração de Docker é uma solução prática para um MVP local; ambientes de produção podem exigir isolamento mais robusto.

Exemplo de Execução: Análise do Titanic e Criação de Apresentação

Para ilustrar o funcionamento, consideramos a tarefa: "Analise um conjunto de dados e prepare uma apresentação com as principais conclusões da EDA (Exploratory Data Analysis)". O conjunto de dados utilizado é o do famoso "Titanic". O objetivo principal deste exemplo é demonstrar a interação do agente com o sandbox, e não a capacidade do LLM de escrever código complexo.

O agente, utilizando o modelo Qwen3.5-27B (configurável via LLM_MODEL), primeiro cria uma lista de sub-tarefas: eda-analysis para a análise exploratória e create-presentation para a geração da apresentação. Cada sub-tarefa especifica as habilidades necessárias, arquivos de entrada/saída e critérios de sucesso.

O agente então inicia a sub-tarefa eda-analysis. Ele lista os arquivos de entrada, lê um fragmento do CSV (basic_dataset.csv) e utiliza write_python_file para gerar um script Python. Este script é executado na sandbox via run_python_file. O resultado da execução, incluindo estatísticas e resumos, é capturado no STDOUT e um arquivo eda_summary.csv é gerado no diretório de saída. Após o sucesso, a sub-tarefa é marcada como completa usando complete_todo.

Em seguida, o agente inicia a sub-tarefa create-presentation. Ele carrega as habilidades relevantes (presentation, python-scripts) e gera o código para criar a apresentação. Durante este processo, podem ocorrer erros (como um AttributeError ao tentar acessar slide_width), que o agente tenta corrigir em iterações subsequentes. O resultado final é um arquivo .pptx contendo os principais achados da EDA, juntamente com o arquivo eda_summary.csv e gráficos gerados.

Custo em Tokens e Considerações Práticas

A execução deste exemplo, monitorada pelo Langfuse, revela insights sobre o custo em tokens. O tempo total de execução foi de aproximadamente 182,6 segundos, com 29 chamadas LLM. O orquestrador consumiu uma pequena fração dos tokens (4,7%), pois foca em planejamento e síntese. O sub-agente de apresentação foi o principal consumidor (76% dos tokens e 70% do tempo), devido às múltiplas iterações de geração e execução de código, correções de erros e o crescimento do contexto ao longo do tempo. As chamadas para write_python_file foram significativamente mais caras em termos de tokens do que as de run_python_file.

O sandbox isola a execução do código, mas não o custo em tokens. Para gerenciar o orçamento de tokens, é essencial aplicar técnicas de engenharia de contexto, como sub-agentes com janelas de contexto limpas, limites para o tamanho do output das ferramentas, redução de stdout/stderr e carregamento de skills sob demanda (read_skill).

Conclusão

A implementação prática demonstra que o Docker Sandbox pode ser integrado como uma ferramenta valiosa no ciclo de um agente, ao lado de planejamento e operações de arquivo. A configuração de sandbox com flags de segurança rigorosos é viável para MVPs locais, proporcionando isolamento e um fluxo claro de artefatos. A arquitetura de orquestrador e sub-agentes ajuda a separar o planejamento do contexto de execução de código "sujo".

É fundamental entender que o sucesso do sandbox garante a execução do código e a criação de artefatos, mas não a correção automática do resultado. Para relatórios de usuário confiáveis, validação de conteúdo, qualidade visual e verificação de informações factuais ainda são necessárias. A teoria sobre riscos, limitações e alternativas (Wasm, gVisor, microVM) pode ser encontrada na primeira parte desta série. O código completo e os artefatos estão disponíveis no repositório do GitHub.

Convido a todos a se juntarem ao canal "Em Busca do NLP" (@chasing_nlp) no Telegram para mais novidades sobre IA/ML, anúncios de artigos e experiências no desenvolvimento de projetos com LLMs e agentes.

Série "LLM Sandbox":

  • Parte 1. Teoria: Riscos, limitações e métodos de isolamento.
  • Parte 2. Prática: Esta artigo.

Outros artigos:

  • Agent Harness: Um LLM, resultados diferentes - Qual o segredo?
  • Segundo Cérebro e LLM-Wiki: Guia prático para criar e manter sua base de conhecimento pessoal.

Tags: agente, llm, sandbox, docker, ai, agents, mops, devops

Tempo estimado de leitura: 8 min

🛡️⚡

Pare de pesquisar. Comece a hackear.

O MundiX é seu copiloto de pentest com IA: comandos exatos, análise de outputs e próximo passo na kill chain — em segundos.

Testar grátis por 7 dias →

Sem cartão para começar · Planos a partir de R$49/mês

📤 Compartilhar & Baixar

🧰 Ferramentas recomendadas

Divulgação: alguns links são patrocinados. Podemos receber comissão se você comprar — sem custo extra para você. Só indicamos o que faz sentido para a comunidade.

Aprendendo Kali Linux: Teste de segurança, pentest e hacking ético

Aprendendo Kali Linux: Teste de segurança, pentest e hacking ético

Com centenas de ferramentas pré-instaladas, a distribuição Kali Linux facilita o trabalho de os profissionais de segurança começarem a fazer testes de segurança rapidamente. No entanto, com mais de 600 ferramentas em seu arsenal, o Kali Linux também pode ser desafiador. A nova edição deste prático livro abrange as atualizações nas ferramentas e inclui uma melhor abordagem da análise forense e da engenharia reversa. Ric Messier, autor, não fica apenas no teste de segurança, mas também faz uma abordagem sobre a execução de análise forense, incluindo a análise em disco e na memória, assim como alguma análise básica de malware. • Explore as diversas ferramentas disponíveis no Kali Linux • Entenda o valor do teste de segurança e examine os tipos de teste disponíveis • Aprenda os aspectos básicos do pentest em todo o ciclo de vida do ataque • Instale o Kali Linux em vários sistemas, tanto físicos quanto virtuais • Descubra como usar diferentes ferramentas destinadas à segurança • Estruture um teste de segurança baseado nas ferramentas do Kali Linux • Estenda as ferramentas do Kali para criar técnicas de ataque avançadas • Use o Kali Linux para ajudar a criar relatórios quando o teste terminar “A abordagem concisa, clara e baseada na experiência adotada por Ric Messier para a introdução do Kali Linux e dos testes de cibersegurança é incomparável. Este livro é uma leitura excelente e acessível para iniciantes e um recurso valioso para qualquer pessoa.” —Alexander Arlt, Consultor sênior de segurança, Google

Ver na Amazon
Gshield 2 em 1 Hub Extensor Conector USB-C + USB-A e Adaptador de Rede Ethernet LAN RJ45 com 3 Entradas USB 3.0 até 5 Gbps em Liga de Alumínio para Computador e Notebook, Cinza

Gshield 2 em 1 Hub Extensor Conector USB-C + USB-A e Adaptador de Rede Ethernet LAN RJ45 com 3 Entradas USB 3.0 até 5 Gbps em Liga de Alumínio para Computador e Notebook, Cinza

Compatível com portas USB-C e USB-A, ideal para ampliar a conectividade de dispositivos como MacBook Pro e outros com portas USB-C. Inclui um adaptador USB-A extra, proporcionando uma conexão Ethernet estável e veloz de até 1 Gbps, perfeita para filmes, jogos online e videoconferências. Oferece três portas USB 3.0 com velocidades de transferência de até 5 Gbps, permitindo conectar mouse, teclado, discos rígidos e outros periféricos. Fabricado em alumínio durável, garantindo longa vida útil e resistência ao uso diário. Design compacto e leve, ideal para viagens de negócios e uso diário, facilitando o transporte e armazenamento. Funciona com Windows 10/8.1/8, Mac OS e Chrome OS, oferecendo versatilidade incomparável para diversas necessidades de conectividade. Assegura uma conectividade estável e rápida, perfeita para tarefas exigentes como transferência de dados, streaming e mais.

Ver na Amazon
Hacking APIs: Breaking Web Application Programming Interfaces

Hacking APIs: Breaking Web Application Programming Interfaces

Hacking APIs is a crash course on web API security testing that will prepare you to penetration-test APIs, reap high rewards on bug bounty programs, and make your own APIs more secure. You'll learn how REST and GraphQL APIs work in the wild and set up a streamlined API testing lab with Burp Suite and Postman. Then you'll master tools useful for reconnaissance, endpoint analysis, and fuzzing, such as Kiterunner and OWASP Amass. Next, you'll learn to perform common attacks, like those targeting an API's authentication mechanisms and the injection vulnerabilities commonly found in web applications. You'll also learn techniques for bypassing protections against these attacks. In the book's nine guided labs, which target intentionally vulnerable APIs, you'll practice: Enumerating APIs users and endpoints using fuzzing techniques Using Postman to discover an excessive data exposure vulnerability Performing a JSON Web Token attack against an API authentication process Combining multiple API attack techniques to perform a NoSQL injection Attacking a GraphQL API to uncover a broken object level authorization vulnerability

Ver oferta
Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition

Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition

Up-to-date strategies for thwarting the latest, most insidious network attacks This fully updated, industry-standard security resource shows, step by step, how to fortify computer networks by learning and applying effective ethical hacking techniques. Based on curricula developed by the authors at major security conferences and colleges, the book features actionable planning and analysis methods as well as practical steps for identifying and combating both targeted and opportunistic attacks. Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition clearly explains the enemy's devious weapons, skills, and tactics and offers field-tested remedies, case studies, and testing labs. You will get complete coverage of Internet of Things, mobile, and Cloud security along with penetration testing, malware analysis, and reverse engineering techniques. State-of-the-art malware, ransomware, and system exploits are thoroughly explained. Fully revised content includes 7 new chapters covering the latest threats Includes proof-of-concept code stored on the GitHub repository Authors train attendees at major security conferences, including RSA, Black Hat, Defcon, and B-Sides

Ver na Amazon
Bloqueador USB de privacidade de porta USB para PC, notebook, bloco de laptop,

Bloqueador USB de privacidade de porta USB para PC, notebook, bloco de laptop,

Proteção de privacidade aprimorada: protege o link de transmissão de dados para evitar roubo de informações, fornecendo proteção de segurança robusta que protege a privacidade do usuário durante transferências de arquivos e garante uma conexão segura para interações de dispositivos sem preocupações em vários ambientes Uso a longo prazo: a camada protetora resistente ao desgaste, combinada com um corpo de metal resistente, oferece gerenciamento de calor confiável e qualidade duradoura durante o uso diário Entrega eficiente de energia: a tecnologia de chip inteligente garante a identificação automática dos requisitos de energia, fornecendo carregamento eficiente alinhando-se com vários protocolos de carregamento rápido para maior conveniência Proteção contra sobrecarga: evitando riscos de sobrecarga, este bloqueador de dados USB protege a vida útil da bateria e garante um desempenho estável, mantendo um fluxo estável de energia para melhorar a longevidade do dispositivo de forma eficaz Prático de transportar: com atenção à portabilidade, este bloqueador de dados USB oferece um design compacto que é leve e fácil de transportar, melhorando a conveniência do usuário e operação eficiente

Ver na Amazon

📩 Newsletter MundiX

Receba novidades de cibersegurança + um checklist de pentest grátis. Sem spam.

Ao assinar você concorda em receber e-mails. Cancele quando quiser.