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

✍️ OpenClawRadar📅 Опубликовано: 7 июня 2026 г.🔗 Source
Как безопасно запускать нативные инструменты llama.cpp (exec_shell_command) с мульти-песочницей на Linux
Ad

Проект 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 для выполнения инструментов
Ad

Пошаговая настройка

  1. Включите инструменты в llama-server: запустите с --tools get_datetime,exec_shell_command (сначала протестируйте с get_datetime)
  2. Установите Firejail (например, sudo pacman -S firejail на Arch)
  3. Создайте изолированного пользователя: sudo useradd -m vmagents; sudo passwd vmagents
  4. Переключитесь на vmagents и установите smolvm: curl -sSL https://smolmachines.com/install.sh | bash
  5. Создайте минимальную Alpine VM:
    smolvm machine create minivm --image alpine --net
    smolvm machine start --name minivm
  6. Создайте 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
  7. Создайте vm-exec в папке ~/.local/bin/ вашего пользователя:
    #!/bin/sh
    sudo su - vmagents -c "minivm-exec $*"
    Сделайте исполняемым.
  8. В веб-интерфейсе 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

Ad

👀 Смотрите также

Файлы CLAUDE.md часто организованы для разработчиков, а не для ИИ-моделей — вот почему это важно
Гайды

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

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

OpenClawRadar
Использование Claude для анализа стилей письма с целью улучшения пользовательских инструкций
Гайды

Использование Claude для анализа стилей письма с целью улучшения пользовательских инструкций

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

OpenClawRadar
Клод против GPT для академического письма PhD: Сохранение технического смысла в разделах методов
Гайды

Клод против GPT для академического письма PhD: Сохранение технического смысла в разделах методов

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

OpenClawRadar
Qwen 3.5 122B MoE на уровне 35 т/с на одном 3090 с ik_llama.cpp MTP
Гайды

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%.

OpenClawRadar