Linuxでマルチサンドボックスを用いてllama.cppネイティブツール(exec_shell_command)を安全に実行する方法

✍️ OpenClawRadar📅 公開日: June 7, 2026🔗 Source
Linuxでマルチサンドボックスを用いてllama.cppネイティブツール(exec_shell_command)を安全に実行する方法
Ad

llama.cppプロジェクトは最近、llama-serverにネイティブツールサポートを追加し、モデルがget_datetimeや、強力だが危険なexec_shell_commandのような関数を呼び出せるようになりました。Redditユーザーが、ホストシステムを危険にさらすことなく、Web RAG(ライブURLの取得)などのタスクにexec_shell_commandを安全に使用するための詳細なマルチサンドボックス化ワークフローを共有しています。

ソースからの主な詳細

  • 使用モデル: 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をインストール(例:Archでは sudo pacman -S firejail
  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. ~vmagents/.local/bin/minivm-execを作成:
    #!/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. 自分のユーザーの~/.local/bin/vm-execを作成:
    #!/bin/sh
    sudo su - vmagents -c "minivm-exec $*"
    実行可能にする。
  8. llama-server Web UIで、モデルにラッパーとしてvm-execを使用するよう指示。例:
    実行するコマンドの前にサンドボックスラッパーvm-execを付けてください。Webコンテンツを取得するにはwgetを使用し、ブラウザのユーザーエージェント文字列としてオプション"-U Mozilla"を追加してください。
    次に、ライブURLを取得して内容を分析するよう依頼します。

サンドボックス化の仕組み

コマンドは、smolvmが作成した一時的なAlpine Linux VM(minivm)内で実行され、さらにそのVM自身がFirejailサンドボックスでラップされています。これにより、ネットワークアクセス、ファイルシステム、プロセス空間が隔離されます。ホスト上のvm-execスクリプトが、vmagentsユーザーとしてチェーン全体を起動し、ホストユーザーのホームディレクトリや重要なシステムファイルへのエスカレーションを防ぎます。各コマンドの実行後にはVMが停止されるため、悪意のあるアクションによる永続的な状態が残りません。

こんな方におすすめ

ローカルでLLMサーバーを実行し、ホストOSを危険にさらすことなくエージェンティックツールによるコード実行やWeb取得を安全に許可したい開発者向け。

📖 全文を読む: r/LocalLLaMA

Ad

👀 See Also

実用的なOpenClawアドバイス:小さく始めて、よくある落とし穴を避ける
Guides

実用的なOpenClawアドバイス:小さく始めて、よくある落とし穴を避ける

ある開発者がr/openclawで、最初のOpenClawプロジェクトから得た実践的な教訓を共有。初期の混乱から、機能的な個人用健康トラッカーを構築するまでの過程を紹介。

OpenClawRadar
RTX 3090におけるQwen 3.6 27B/35Bの最適化:フラグ、量子化、自動ルーティング
Guides

RTX 3090におけるQwen 3.6 27B/35Bの最適化:フラグ、量子化、自動ルーティング

あるユーザーが、RTX 3090(24GB)上でQwen 3.6 27Bおよび35B GGUFモデルに対するllama-serverのフラグを共有し、35Bの速度低下と27Bの信頼性の低いコード出力を報告しています。投稿では、より良い量子化、フラグの調整、モデルの自動切り替えについてアドバイスを求めています。

OpenClawRadar
OpenClaw 101: 初心者向けクイックスタート概要
Guides

OpenClaw 101: 初心者向けクイックスタート概要

新規ユーザーが知っておくべきすべてを網羅した簡潔ガイド。142件の賛成票と66件のコメントにより、定番のクイックリファレンスとなっています。

u/mehdiweb
ChatGPTからClaudeへのユーザーコンテキスト転送方法
Guides

ChatGPTからClaudeへのユーザーコンテキスト転送方法

Redditユーザーが、ChatGPTから詳細な認知プロファイルを抽出し、Claudeに転送可能なポータブルなAI憲章を作成する2プロンプト手法を共有。AIシステム間での移行の難しさに対処。

OpenClawRadar