6 pontos por GN⁺ 2025-08-09 | Ainda não há comentários. | Compartilhar no WhatsApp
  • Como montar um workspace de IA usando execução de LLM local e ambiente de sandbox de código, sem depender da nuvem
  • Com Ollama para executar um LLM local, executar código em uma VM isolada com Apple Container e habilitar automação e acesso à internet via navegador headless com Playwright
  • Baseado em assistant-ui, implementei um ambiente de execução de código seguro com menu suspenso de seleção de modelo e integração com ai-sdk e MCP (Model Context Protocol)
  • No VM Coderunner conectada por MCP é possível executar servidor Jupyter e navegador para lidar com criação de gráficos, edição de imagem/vídeo, instalação de ferramentas do GitHub e busca web em modo de proteção de privacidade
  • No momento, é exclusivo para Apple Silicon, e os próximos passos incluem melhorias de UI, evasão de detecção de navegador e melhoria do gerenciamento de ferramentas

Requisitos e contexto

  • Objetivo: executar tudo localmente, sem execução de código em nuvem ou remoto
  • Apps de chat com LLM existentes (como ChatGPT, Claude) oferecem chat de LLM baseado em nuvem, execução de código em nuvem/local e acesso à internet
  • Com o crescimento do uso de LLMs open source, surgiu a dúvida se todas essas funções poderiam ser realizadas totalmente de forma local
  • Como o LLM local sozinho é insuficiente, é necessário que o código seja executado em ambiente isolado e que haja acesso a conteúdos por meio de navegador

Ideia

  • Executar LLMs em ambiente completamente local
  • Processar a execução de código apenas dentro de VMs leves para bloquear riscos no sistema host
  • Adicionar navegador headless para suportar automação, descoberta de novas informações e de ferramentas
  • Montar um fluxo de trabalho com foco em proteção de privacidade, no qual do planejamento da IA à execução de código tudo acontece localmente
  • Realizar múltiplas tarefas, como edição de fotos e vídeos, localmente sem enviar dados para serviços externos

Stack tecnológica

  • LLM: Ollama (suporte a modelos locais e alguns modelos externos)
  • UI: assistant-ui + ai-sdk (com recurso de seleção de modelo)
  • Runtime de VM: Apple container (fornece ambiente de VM isolado)
  • Orquestração: instavm/coderunner (conexão com servidor Jupyter via MCP)
  • Automação de navegador: Playwright (exposto como ferramenta MCP)

Tentativa e transição no app Mac

  • Tentou-se desenvolver um app nativo para Mac com a0.dev, mas houve dificuldade por ser voltado para iOS
  • Também foi tentado envolver Electron + NextJS, mas foi abandonado por questões de complexidade
  • A migração final foi para assistant-ui local baseado na web

Customização do Assistant-UI

  • A expectativa era oferecer suporte a múltiplos LLMs com menu suspenso de seleção de modelo, mas ela era limitada
  • Com base em exemplos, a seleção de múltiplos modelos foi implementada diretamente via ai-sdk
  • No início, também houve suporte a modelos cloud como OpenAI/Anthropic, com estratégia de migração gradual para o local

Desafios de suporte a modelos e tool-calling

  • Era necessário um modelo com suporte a tool-calling, porém alguns, como Ollama, não suportam na prática
  • Mesmo quando a documentação oficial indica suporte a ferramentas, a implementação real é frequentemente insuficiente
  • A rápida mudança da ecologia open source traz alta volatilidade em status de suporte a ferramentas e preços de token

Execução de código isolada com base em container

  • Usando a ferramenta Container da Apple, que oferece isolamento total da VM para cada container em comparação ao Docker, o código gerado por IA pode ser executado com mais segurança
  • O ambiente VM é implantado com servidor Jupyter e exposto via MCP, permitindo uso imediato em várias ferramentas (Claude Desktop, Gemini CLI etc.)
  • O código do servidor MCP coderunner foi aberto com exemplos de integração com ferramentas externas
  • A ferramenta Apple Container ainda é instável, exigindo reinícios repetidos quando surgem problemas de build/imagem
  • Em testes práticos de edição de vídeo, foi verificado o funcionamento correto da combinação UI + LLM + coderunner

Integração de navegador headless

  • Implantado navegador headless baseado em Playwright dentro do container e exposto como ferramenta MCP
  • Espera-se uso para descoberta de novas ferramentas/informações, busca de uso do GitHub e automação de pesquisa
  • Fluxo básico concluído: combinação de LLM local + execução de código em sandbox + navegador headless

Exemplos de tarefas possíveis

  • Pesquisa e resumo de temas específicos
  • Criação e renderização de gráficos CSV por comandos em linguagem natural
  • Edição de vídeo com ffmpeg (corte de trechos etc.)
  • Redimensionar, recortar e converter formato de imagem
  • Instalação no container de ferramentas do GitHub
  • Rastreamento e resumo de páginas web com navegador headless, entre outros

Montagem de volumes de arquivos e isolamento

  • Mapear ~/.coderunner/assets do host para /app/uploads do container, com arquivos armazenados com segurança em espaço compartilhado
  • O código em execução não consegue acessar diretamente o sistema host, garantindo segurança

Limitações e próximos passos

  • Funciona apenas em ambiente Apple Silicon, e macOS 26 é opcional
  • Melhorias em UI, como gerenciamento de ferramentas e streaming de saída, ainda são necessárias
  • Há bloqueio em alguns sites por detecção de bot no navegador headless

Conclusão

  • Este projeto é mais do que um experimento e é um modelo com foco em soberania computacional e proteção de privacidade
  • Oferece uma experiência de processamento seguro de dados em uma máquina local pessoal sem dependência de nuvem ou servidor remoto
  • Mesmo que os melhores LLMs permaneçam nos grandes clouds, o objetivo é avançar ferramentas de IA local que preservem a privacidade individual
  • O projeto open source coderunner-ui está disponível no GitHub; feedback e colaboração são bem-vindos

Recursos relacionados

Ainda não há comentários.

Ainda não há comentários.