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

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ユーザー
ステップバイステップのセットアップ
- llama-serverでツールを有効化:
--tools get_datetime,exec_shell_commandで開始(まずget_datetimeでテスト) - Firejailをインストール(例:Archでは
sudo pacman -S firejail) - 隔離ユーザーを作成:
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 ~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- 自分のユーザーの
~/.local/bin/にvm-execを作成:
#!/bin/sh sudo su - vmagents -c "minivm-exec $*"
実行可能にする。 - 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
👀 See Also
5マイクロ秒でJITコンパイル:Postgres pgrust用の高速JITの構築
pgrustのJITコンパイラはSQLクエリを約5μsでコンパイルし、すべてのクエリにJITを可能にします。著者は、AI支援によるアセンブリターゲティングが高速JITを実用的にする方法を説明しています。

AGENTS.mdを正しく使う:正確性が25%向上するか、30%低下するか
Augment CodeがAGENTS.mdファイルを直接比較テストした結果、最良のものはHaikuからOpusへのモデルアップグレードに匹敵する効果をもたらし、最悪のものは出力を悪化させることがわかりました。決定表、手続き的ワークフロー、段階的開示が効果的です。

開発チームのための実践的Claudeコードワークフロー
RedditユーザーがClaude Codeのベストプラクティスに関する内部プレゼンテーションを共有。モデル選択、構造化されたワークフロー、出力品質を向上させる具体的なプロンプト技術などを含む。

エージェントスキルの安全性評価:導入前の重要な考慮事項
新しいエージェントスキルをインストールすることで機能が向上する一方、リスクも伴います。システムを保護するために、これらのスキルの安全性を評価する方法を学びましょう。