Как безопасно запускать нативные инструменты llama.cpp (exec_shell_command) с мульти-песочницей на Linux

Проект llama.cpp недавно добавил встроенную поддержку инструментов для llama-server, позволяя модели вызывать такие функции, как get_datetime и — мощную, но опасную — exec_shell_command. Пользователь Reddit поделился подробным рабочим процессом с несколькими уровнями изоляции для безопасного использования exec_shell_command для задач вроде веб-RAG (загрузка живых URL) без риска для хост-системы.
Ключевые детали из источника
- Используемая модель:
Qwen3.6-35B-A3B_MTP-UD-Q8_K_XL.ggufс MTP-спекультивным декодированием - Флаги сервера:
--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 - Стек изоляции: Firejail + smolvm (Alpine Linux VM) + выделенный пользователь Linux для выполнения инструментов
Пошаговая настройка
- Включите инструменты в llama-server: запустите с
--tools get_datetime,exec_shell_command(сначала протестируйте сget_datetime) - Установите Firejail (например,
sudo pacman -S firejailна Arch) - Создайте изолированного пользователя:
sudo useradd -m vmagents; sudo passwd vmagents - Переключитесь на
vmagentsи установите smolvm:curl -sSL https://smolmachines.com/install.sh | bash - Создайте минимальную Alpine VM:
smolvm machine create minivm --image alpine --net
smolvm machine start --name minivm - Создайте
minivm-execв~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
Сделайте исполняемым:chmod +x minivm-exec - Создайте
vm-execв папке~/.local/bin/вашего пользователя:
#!/bin/sh sudo su - vmagents -c "minivm-exec $*"
Сделайте исполняемым. - В веб-интерфейсе llama-server попросите модель использовать обёртку
vm-exec, например:
Добавьте sandboxing-обёртку vm-exec перед каждой командой. Используйте wget для загрузки веб-страниц с опцией "-U Mozilla" в качестве строки User-Agent.
Затем попросите её загрузить живой URL и проанализировать содержимое.
Как работает изоляция
Команды выполняются внутри временной Alpine Linux VM (minivm), созданной smolvm, которая сама по себе обёрнута в песочницу Firejail. Это изолирует сетевой доступ, файловую систему и пространство процессов. Скрипт vm-exec на хосте запускает всю цепочку от имени пользователя vmagents, предотвращая доступ к домашней директории хост-пользователя или критическим системным файлам. Виртуальная машина останавливается после каждой команды, не оставляя постоянного состояния после вредоносных действий.
Для кого это
Для разработчиков, запускающих локальные LLM-серверы и желающих безопасно разрешить выполнение кода или загрузку веб-страниц через инструменты-агенты, не подвергая хост-ОС риску.
📖 Читать полный источник: r/LocalLLaMA
👀 Смотрите также

Файлы CLAUDE.md часто организованы для разработчиков, а не для ИИ-моделей — вот почему это важно
Файлы CLAUDE.md часто помещают жесткие правила в строку 47, после контекста и технологического стека. К тому времени, когда модель читает ограничения, она уже построила противоречивые предположения. Лучшая структура ставит жесткие правила на первое место.

Использование Claude для анализа стилей письма с целью улучшения пользовательских инструкций
Пользователь Reddit описывает метод создания более эффективных пользовательских инструкций, предлагая Клоду проанализировать 10 образцов письма для выявления конкретных паттернов, таких как избегание определённых знаков препинания и источники аналогий, вместо того чтобы полагаться на субъективные описания тона.

Клод против GPT для академического письма PhD: Сохранение технического смысла в разделах методов
Докторант сравнивает Claude и GPT при доработке статей по компьютерному зрению/совместному проектированию аппаратного обеспечения, обнаружив, что Claude более надежно сохраняет технический смысл и структуру аргументов, тогда как GPT иногда чрезмерно упрощает утверждения.

Qwen 3.5 122B MoE на уровне 35 т/с на одном 3090 с ik_llama.cpp MTP
Локальный стек, запускающий Qwen 3.5 122B MoE на одной 3090 со скоростью 35 т/с, используя слитые MoE операции ik_llama.cpp для MTP. Стандартный llama.cpp показал улучшение только на +4%; форк ik дает +20%.