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

Claude AIプロジェクトにおけるタイムトラッキングの導入
Claude AIを利用する方法では、作業セッションを追跡し休憩リマインダーを送信するために、応答にタイムスタンプを付与します。

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

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

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