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

Claude AIプロジェクトにおけるタイムトラッキングの導入
Guides

Claude AIプロジェクトにおけるタイムトラッキングの導入

Claude AIを利用する方法では、作業セッションを追跡し休憩リマインダーを送信するために、応答にタイムスタンプを付与します。

OpenClawRadar
小規模モデルの評価プロンプトが誤解を招く理由とその修正方法
Guides

小規模モデルの評価プロンプトが誤解を招く理由とその修正方法

Redditの投稿によると、小規模モデルの評価プロンプトは、トランスフォーマーの誤った認知経路をトリガーするため、しばしば誤解を招く結果を生み出します。具体的には、事実の想起、応用・指示の遵守、感情的・共感的推論という3つの異なるモードを特定しています。

OpenClawRadar
ローカルClaudeコードセットアップ:llama.cpp経由のQwen3.5 27B
Guides

ローカルClaudeコードセットアップ:llama.cpp経由のQwen3.5 27B

開発者が、llama.cppを使用してQwen3.5 27BでClaude Codeをローカルで実行するための設定を共有しています。これには、環境変数、サーバーパラメータ、および7つのコーディングタスクにわたるパフォーマンスベンチマークが含まれます。

OpenClawRadar
Claude Code O365 MCP 条件付きアクセス設定の問題と解決策
Guides

Claude Code O365 MCP 条件付きアクセス設定の問題と解決策

開発者が、条件付きアクセスポリシーの下でClaude CodeのO365 MCPコネクタを設定する際に遭遇した2つの問題とその具体的な解決策を共有しています。それは、ポリシールールのための正しいアプリケーションIDを見つけることと、サーバーの所在地に関連する認証エラーの解決です。

OpenClawRadar