Comment exécuter en toute sécurité les outils natifs de llama.cpp (exec_shell_command) avec multi-sandboxing sur Linux

✍️ OpenClawRadar📅 Publié: June 7, 2026🔗 Source
Comment exécuter en toute sécurité les outils natifs de llama.cpp (exec_shell_command) avec multi-sandboxing sur Linux
Ad

Le projet llama.cpp a récemment ajouté le support natif des outils à son llama-server, permettant au modèle d'appeler des fonctions comme get_datetime et — la puissante mais dangereuse — exec_shell_command. Un utilisateur de Reddit a partagé un workflow détaillé de multi-sandboxing pour utiliser exec_shell_command en toute sécurité pour des tâches comme le RAG web (récupération d'URL en direct) sans risquer le système hôte.

Détails clés de la source

  • Modèle utilisé : Qwen3.6-35B-A3B_MTP-UD-Q8_K_XL.gguf avec décodage spéculatif MTP
  • Drapeaux du serveur : --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
  • Pile de multi-sandboxing : Firejail + smolvm (VM Alpine Linux) + utilisateur Linux dédié pour l'exécution des outils

Configuration étape par étape

  1. Activer les outils dans llama-server : démarrer avec --tools get_datetime,exec_shell_command (tester d'abord avec get_datetime)
  2. Installer Firejail (par exemple, sudo pacman -S firejail sur Arch)
  3. Créer un utilisateur isolé : sudo useradd -m vmagents; sudo passwd vmagents
  4. Passer à vmagents et installer smolvm : curl -sSL https://smolmachines.com/install.sh | bash
  5. Créer une VM Alpine minimale :
    smolvm machine create minivm --image alpine --net
    smolvm machine start --name minivm
  6. Créer minivm-exec dans ~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
    Rendre exécutable : chmod +x minivm-exec
  7. Créer vm-exec dans le ~/.local/bin/ de votre propre utilisateur :
    #!/bin/sh
    sudo su - vmagents -c "minivm-exec $*"
    Rendre exécutable.
  8. Dans l'interface web llama-server, demander au modèle d'utiliser vm-exec comme wrapper, par exemple :
    Préfixez toute commande à exécuter avec le wrapper de sandboxing vm-exec. Utilisez wget pour récupérer le contenu web en ajoutant l'option "-U Mozilla" comme chaîne d'agent utilisateur du navigateur.
    Ensuite, demandez-lui de récupérer une URL en direct et d'analyser le contenu.
Ad

Comment fonctionne le sandboxing

Les commandes sont exécutées dans une VM Alpine Linux temporaire (minivm) créée par smolvm, elle-même encapsulée dans un sandbox Firejail. Cela isole l'accès réseau, le système de fichiers et l'espace des processus. Le script vm-exec sur l'hôte invoque toute la chaîne en tant qu'utilisateur vmagents, empêchant toute escalade vers le répertoire personnel de l'utilisateur hôte ou les fichiers système critiques. La VM est arrêtée après chaque commande, évitant tout état persistant résultant d'actions malveillantes.

À qui cela s'adresse

Développeurs exécutant des serveurs LLM locaux et souhaitant autoriser en toute sécurité l'exécution de code ou la récupération web via des outils agentiques sans exposer le système d'exploitation hôte.

📖 Lire la source complète : r/LocalLLaMA

Ad

👀 See Also

Utiliser l'IA comme partenaire cognitif plutôt que comme usine à code
Guides

Utiliser l'IA comme partenaire cognitif plutôt que comme usine à code

Un post sur Reddit propose un prompt système appelé 'Cognitive Authorship Copilot' qui force l'IA à agir comme un partenaire de programmation en binôme plutôt que comme un générateur de solutions autonome, avec trois niveaux d'intervention basés sur la complexité de la tâche.

OpenClawRadar
Arrêtez de demander quel modèle d'IA utiliser : Acheminez les tâches vers les niveaux Haiku, Sonnet et Opus
Guides

Arrêtez de demander quel modèle d'IA utiliser : Acheminez les tâches vers les niveaux Haiku, Sonnet et Opus

Utilisez au moins trois modèles par type de tâche : niveau Haïku pour la lecture/résumé, niveau Sonnet pour écrire du code, et niveau Opus uniquement pour les refontes multi-fichiers et le débogage. La configuration d'un utilisateur achemine 40 % vers des modèles bon marché, 35 % vers des modèles intermédiaires, 25 % vers des modèles de pointe, pour un coût d'environ 30 à 40 $/mois.

OpenClawRadar
Gestion des Déconnexions de Passerelle pour une Automatisation Efficace
Guides

Gestion des Déconnexions de Passerelle pour une Automatisation Efficace

Découvrez des solutions pratiques pour maintenir les opérations des agents de codage IA face aux déconnexions de passerelle. Les conseils incluent la surveillance avec Grafana, les scripts de reconnexion automatisés et l'utilisation de chemins redondants pour la fiabilité.

OpenClawRadar
Liste de configuration d'OpenClaw : six étapes cruciales pour les nouveaux utilisateurs
Guides

Liste de configuration d'OpenClaw : six étapes cruciales pour les nouveaux utilisateurs

Un post Reddit détaille six étapes de configuration essentielles pour les utilisateurs d'OpenClaw : changer le modèle par défaut d'Opus à Sonnet pour réduire les coûts, verrouiller l'hôte de la passerelle sur 127.0.0.1 pour la sécurité, créer un fichier SOUL.md pour la personnalité de l'agent, éviter d'installer des compétences initialement, ne pas créer plusieurs agents, et utiliser la commande /new pour gérer le contexte de conversation.

OpenClawRadar