Como executar com segurança as ferramentas nativas do llama.cpp (exec_shell_command) com multi-sandboxing no Linux

✍️ OpenClawRadar📅 Publicado: June 7, 2026🔗 Source
Como executar com segurança as ferramentas nativas do llama.cpp (exec_shell_command) com multi-sandboxing no Linux
Ad

O projeto llama.cpp recentemente adicionou suporte nativo a ferramentas em seu llama-server, permitindo que o modelo chame funções como get_datetime e — a poderosa, mas perigosa — exec_shell_command. Um usuário do Reddit compartilhou um fluxo de trabalho detalhado com múltiplos sandboxes para usar exec_shell_command com segurança em tarefas como RAG web (buscar URLs ao vivo) sem arriscar o sistema host.

Detalhes principais da fonte

  • Modelo usado: Qwen3.6-35B-A3B_MTP-UD-Q8_K_XL.gguf com decodificação especulativa MTP
  • Flags do servidor: --jinja --tools get_datetime,exec_shell_command --temp 0.6 --top-p 0.95 --top-k 20 --presence-penalty 1.5 --min-p 0.00 --chat-template-kwargs '{"preserve_thinking":true}' --spec-type draft-mtp --spec-draft-n-max 1
  • Pilha de múltiplos sandboxes: Firejail + smolvm (VM Alpine Linux) + usuário Linux dedicado para execução de ferramentas
Ad

Configuração passo a passo

  1. Habilitar ferramentas no llama-server: inicie com --tools get_datetime,exec_shell_command (teste com get_datetime primeiro)
  2. Instalar o Firejail (ex.: sudo pacman -S firejail no Arch)
  3. Criar usuário isolado: sudo useradd -m vmagents; sudo passwd vmagents
  4. Mudar para vmagents e instalar smolvm: curl -sSL https://smolmachines.com/install.sh | bash
  5. Criar uma VM Alpine mínima:
    smolvm machine create minivm --image alpine --net
    smolvm machine start --name minivm
  6. Criar minivm-exec em ~vmagents/.local/bin/:
    #!/bin/sh
    smolvm machine start --name minivm >/dev/null
    firejail smolvm machine exec --name minivm -- $* 2>/dev/null
    smolvm machine stop --name minivm >/dev/null
    Tornar executável: chmod +x minivm-exec
  7. Criar vm-exec no diretório ~/.local/bin/ do seu próprio usuário:
    #!/bin/sh
    sudo su - vmagents -c "minivm-exec $*"
    Tornar executável.
  8. Na interface web do llama-server, instrua o modelo a usar vm-exec como wrapper, ex.:
    Anteponha qualquer comando a ser executado com o wrapper de sandbox vm-exec. Use wget para buscar conteúdo web adicionando a opção "-U Mozilla" como string de user agent do navegador.
    Depois peça para recuperar uma URL ao vivo e analisar o conteúdo.

Como o sandbox funciona

Os comandos são executados dentro de uma VM Alpine Linux temporária (minivm) criada pelo smolvm, que por sua vez é encapsulada em um sandbox Firejail. Isso isola acesso à rede, sistema de arquivos e espaço de processos. O script vm-exec no host invoca toda a cadeia como o usuário vmagents, impedindo qualquer escalada para o diretório home do usuário host ou arquivos críticos do sistema. A VM é parada após cada comando, garantindo que nenhum estado persistente de ações maliciosas permaneça.

Para quem é este guia

Desenvolvedores que executam servidores LLM locais e desejam permitir com segurança a execução de código ou busca na web por meio de ferramentas agênticas sem expor o sistema operacional host.

📖 Leia a fonte completa: r/LocalLLaMA

Ad

👀 See Also