まず答える:なぜ Agent を素の macOS 上で動かしてはいけないのか
多くのチームの第一声は「テストだけだから、SSH でクラウド Mac に入って Agent に任せればいい」だ。
問題は、LangGraph、AutoGen、Cursor Background Agent などの現行フレームワークが、ツール呼び出しを現在のユーザー権限で実行する点にある——
ファイル読み取り、子プロセス起動、ネットワークアクセスの境界は、自分でターミナルに入ったときと同一だ。
社内パイロットで、Agent に Swift リポジトリのスキャンとコンパイル警告の自動修正を任せたところ、
3 回目の反復で ~/Library/Keychains の読み取りと security find-identity の実行を試みた。
「署名証明書を探してあげる」という意図は理解できるが、Distribution 証明書を載せたビルドマシンにとっては致命的だ。
ユーザー切り替えやタスクごとの再インストールはコストが高い。Docker は macOS 上で完全な Xcode ツールチェーンをカバーできない。
OpenClaw の考え方は、Agent を実 macOS 上で動かし(xcodebuild や Apple Neural Engine が使える)、
各システムコールの前にポリシーエンジンで判定し、越権はブロック、すべて監査ログに残す。
本記事は「ゼロから初回サンドボックスタスクが通るまで」の最短ルートのみを扱う。アーキテクチャ、マルチユーザー零信頼、CI 配線は
OpenClaw 完全ガイドを参照。
ハードウェア:Mac mini M4 · 10 コア CPU · 16 GB ユニファイドメモリ · 256 GB NVMe · 1 Gbps 専用帯域(PixVPS 中国香港ノード)。
システム:macOS 15 Sequoia。OpenClaw CLI 0.9.4、ポリシー形式 v2。
サンプルタスク:Agent が公開リポジトリを clone → rg で TODO コメントをスキャン → Markdown レポート出力(読み取り中心、外向きネットワークなし)。
全工程 SSH ターミナルのみ。VNC は未使用。
着手前に揃える 3 つ
ローカル Mac は不要——Windows や Linux のノート PC から SSH できればよい。 以下 3 点を事前に確認しておかないと、途中で止まる:
クラウドノード:未契約なら注文ページでリージョンと期間を選択。
5 ノード(シンガポール、日本・東京、韓国・ソウル、中国香港、米国東部)はハードウェア・価格同一。レイテンシで選べばよい。
支払い後 1–5 分で SSH 認証情報がコンソールに表示される。
instance-token:コンソールの「セキュリティとサンドボックス」で OpenClaw を初めて有効化したときに発行。一度だけ表示されるので、チームのシークレット管理ツールへ即保存すること。
ポリシーファイル:第 4 節のコピペ用テンプレートを ~/policies/quickstart-readonly.yaml として保存。
5 分フロー:開設から初回サンドボックスタスクまで
以下は実測時間の目安。シンガポールノードで 5 回繰り返し、慣れれば全体で約 4 分 20 秒。 初回は 5–8 分を見込めば十分。各ステップに明確な完了条件がある——期待どおりの出力を確認してから次へ進む。
-
01
1 分目:コンソールで OpenClaw を有効化
PixVPS コンソールにログイン → インスタンス詳細 →「セキュリティとサンドボックス」→ OpenClaw をオン。 表示された
instance-tokenを 1Password / Bitwarden にコピー。 完了条件:OpenClaw の状態が「有効」になっている。 -
02
2 分目:SSH 接続と CLI インストール
コンソールの「接続情報」から SSH コマンドをコピーし、インストールスクリプトと認証を実行。 完了条件:
openclaw statusの Policy Engine、Sandbox Runtime、Audit Bus がすべてhealthy。 -
03
3 分目:最小読み取り専用ポリシーを配置
~/policies/を作成し、第 4 節の YAML を貼り付け。openclaw policy validate -f ~/policies/quickstart-readonly.yamlで構文チェック。 完了条件:policy validが表示され、パス競合の警告がない。 -
04
4 分目:サンドボックス作成とプローブ実行
openclaw sandbox create --name quickstart --policy ~/policies/quickstart-readonly.yaml、 続けてopenclaw sandbox exec quickstart -- /bin/zsh -lc 'ls -la /workspace'。 完了条件:サンドボックス内で空のワークスペース一覧が表示され、権限エラーがない。 -
05
5 分目:Agent エントリ実行と監査確認
サンドボックス内で Agent エントリ(または下記サンプル)を実行。 別ターミナルで
openclaw audit tail --sandbox quickstart --followを流し、リアルタイムログを確認。 終了後openclaw sandbox stop quickstart。 完了条件:監査ログにdecision: allowとdecision: denyの記録がある(禁止パスに触れた場合)。
インスタンスの SSH セッションで実行:
curl -fsSL https://api.pixvps.com/openclaw/install.sh | bash
openclaw auth login --token <instance-token>
openclaw status
最小権限 YAML:読み取り専用コードスキャン用テンプレート
クイックスタートの原則は先に厳しく、後から緩める。最初のポリシーはタスクに必要な最小集合だけを開放する。
下記テンプレートは /workspace の読み書き、git / rg / python3 の実行を許可し、
キーチェーンと SSH ディレクトリは拒否、外向きネットワークはすべて禁止——
「公開リポジトリ clone → 静的スキャン → レポート出力」に足りる。
apiVersion: openclaw.pixvps.com/v2
kind: SandboxPolicy
metadata:
name: quickstart-readonly
spec:
filesystem:
allow:
- path: /workspace
access: [read, write]
deny:
- path: "**/Keychains/**"
- path: "**/.ssh/**"
process:
allow: [git, rg, python3, zsh]
network:
egress: deny-all
補足:/workspace に書き込み権限があるのは、スキャンレポートをディスクに残すため。
純粋な読み取りタスクなら access を [read] に変更できる。
GitHub からコードを取得するには network.egress を allow-list にし github.com:443 を追加する必要がある——
クイックスタート後いちばん多い「第 2 段階の緩和」だ。ネットワークホワイトリストの詳細は
完全ガイド第 5 節を参照。
初回 Agent タスクを通す:コピペ用エントリスクリプト
LangGraph や自社オーケストレータを接続する前に、約 20 行の shell で「ポリシー + サンドボックス + 監査」のループを検証するのがおすすめ。
以下を /workspace/agent-entry.sh としてホスト側に保存(サンドボックスはそのディレクトリを自動マップする):
#!/bin/zsh
set -euo pipefail
cd /workspace
git clone --depth 1 https://github.com/apple/swift-sample-code.git repo 2>/dev/null || true
rg -n "TODO|FIXME" repo/ > scan-report.txt || true
echo "Scan done: $(wc -l < scan-report.txt) matches" > summary.txt
cat summary.txt
egress: deny-all のままだと git clone はネットワークポリシーでブロックされる——
これは意図したデモだ。監査 tail を開けば decision: deny の network 記録が見える。
GitHub をホワイトリストに追加して再実行すれば decision: allow と summary.txt の生成が確認できる。
実行コマンド:
openclaw sandbox exec quickstart -- /bin/zsh /workspace/agent-entry.sh。
M4 ノードでの計測では(clone 含む)約 38 秒。ポリシー判定の累計オーバーヘッドは 200 ms 未満で無視できる。
問題なければ openclaw sandbox stop quickstart でワークスペースを解放。ゾンビサンドボックスはディスクを消費する——インスタンスあたりの同時セッション上限はデフォルト 5。
よくある 3 つのつまずきと一行修正
初回はほぼ誰もが以下のいずれかに当たる。長いマニュアルを読まず、表どおりに対処すればよい。
| 現象 | 原因 | 一行修正 |
|---|---|---|
openclaw auth login が token 無効 |
コピー時の余分な空白、または token ローテーション済み | コンソールから再コピー。旧 token はローテーション後すぐ無効 |
Agent が E_POLICY_DENY: filesystem |
アクセスパスが allow リストにない | openclaw audit query --decision deny --since 1h でパス確認後 YAML を更新 |
git clone 失敗(ファイルエラーなし) |
ネットワークポリシーが deny-all | YAML の network.egress を allow-list にし github.com:443 を追加 |
instance-token を Git リポジトリにコミットしたり、Slack のスクリーンショットに載せたりしないこと。
パイロット後に複数メンバーが接続する場合は、コンソールで零信頼デバイス証明書と viewer / operator / admin ロールを設定する——
手順は完全ガイド第 6 節。
パイロット通過後:権限と規模を段階的に拡張
5 分で読み取り専用サンドボックスが通るのは出発点にすぎない。実運用では xcodebuild、npm registry、
push のたびにサンドボックスを作る CI が必要になる。これは「パイロットから本番」の領域——より細かいポリシー階層と監査エクスポート——
OpenClaw 完全ガイドで章立てして解説している(権限 YAML 応用、GitHub Actions 配線、90 日監査保持)。
クラウド Mac がまだない場合、代替案にはそれぞれ弱点がある。ローカルノート PC で Agent を 24/7 動かすと消費電力がかかり、固定の海外 IP も持てない。 パブリッククラウドの macOS VM は OpenClaw ネイティブ統合と操作レベルの監査がない。オフィスで Mac mini を購入すれば減価償却と運用工数がかかる。 PixVPS は専用物理 Mac mini M4(16 GB ユニファイドメモリ、38 TOPS、1 Gbps 専用帯域)を提供し、 OpenClaw は標準インスタンスに内蔵。支払い後 1–5 分でデリバリー、$21.1/日から—— Agent 実験は日単位で契約し、検証後は $105.7/月の常駐へ。不確実な需要のために先に機材を買うより柔軟だ。
推奨ルート:本記事で読み取り専用サンドボックスを今日通す → 明日タスク種別に合わせてポリシーテンプレートをコピー(ビルド / ドキュメント取得 / 運用パトロール——完全ガイドの比較表参照)→
3 週目に YAML を Git に入れ、CI で openclaw audit export を必須化。
ビルド Agent を並列させる場合、M4 16 GB 1 台で DerivedData 込みのサンドボックス 2 つが安定稼働する実測値がある。
さらに並列が必要なら Thunderbolt 5 クラスタリングで 80 Gbps のマルチマシンプールを検討。
5 分で Agent に OpenClaw 付きクラウド Mac を
PixVPS Mac mini M4 専用ノードに OpenClaw サンドボックス内蔵:操作レベル隔離、零信頼アクセス、追跡可能な監査ログ。 Agent と Xcode の並行に 16 GB ユニファイドメモリ——$21.1/日から、全世界 5 ノード。