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

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.ggufcom 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
Configuração passo a passo
- Habilitar ferramentas no llama-server: inicie com
--tools get_datetime,exec_shell_command(teste comget_datetimeprimeiro) - Instalar o Firejail (ex.:
sudo pacman -S firejailno Arch) - Criar usuário isolado:
sudo useradd -m vmagents; sudo passwd vmagents - Mudar para
vmagentse instalar smolvm:curl -sSL https://smolmachines.com/install.sh | bash - Criar uma VM Alpine mínima:
smolvm machine create minivm --image alpine --net
smolvm machine start --name minivm - Criar
minivm-execem~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 - Criar
vm-execno diretório~/.local/bin/do seu próprio usuário:
#!/bin/sh sudo su - vmagents -c "minivm-exec $*"
Tornar executável. - Na interface web do llama-server, instrua o modelo a usar
vm-execcomo 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
👀 See Also

Acessando Webcams USB no WSL2 para Detecção de Movimento Local
Um desenvolvedor compartilha como usar o usbipd-win para passar webcams USB do Windows para o WSL2, permitindo detecção de movimento local com OpenCV sem dependências de nuvem.

OpenClaw Mega Cheat Sheet: Seu Portal para o Domínio da Programação em IA
Mergulhe na Mega Folha de Dicas do OpenClaw do r/openclaw—um guia abrangente repleto de dicas essenciais para entusiastas de programação de IA e automação.

Pare de Perguntar Qual Modelo de IA Usar: Roteie Tarefas para os Níveis Haiku, Sonnet e Opus
Use pelo menos três modelos por tipo de tarefa: nível Haiku para ler/resumir, nível Sonnet para escrever código, e nível Opus apenas para refatorações multiarquivo e depuração. A configuração de um usuário direciona 40% para modelos baratos, 35% para intermediários, 25% para os mais avançados, custando cerca de $30-40/mês.

Configuração Local do Claude Code com Qwen3.5 27B via llama.cpp
Um desenvolvedor compartilha sua configuração para executar o Claude Code localmente usando Qwen3.5 27B com llama.cpp, incluindo variáveis de ambiente, parâmetros do servidor e benchmarks de desempenho em sete tarefas de programação.