Mac mini M4 上の OpenClaw 並列エージェントと同時実行:キュー、制限、安全なスケール(2026)
レンタル Mac mini で OpenClaw を動かしているなら、次のレバーは多くの場合 並列度 です。エージェント・ツール呼び出し・バックグラウンドジョブを増やします。Apple Silicon M4 はマルチコアに強い一方、LLM プロバイダーはトークン/分とリクエストの上限を設け、CPU より先に効いてきます。本稿では maxConcurrentTasks(またはオーケストレーター側の同等設定)を、git ワークスペース・ディスク I/O・API 予算を壊さずに上げる道筋を整理します。インストールとデプロイ、本番ワークフロー、トラブルシューティングと併読してください。ネットワークは egress / SOCKS5 / WireGuard、人間によるリモートは SSH と VNC および VNC を参照してください。
要点
- 同時タスク 1〜2 から始め、HTTP 429 と API p95 レイテンシを見ながらゆっくり上げる。
- ロックやエージェント別クローンがない限り、git working tree は単一ライター扱いにする。
- LaunchAgent は対話シェルの profile を読まない。同時実行フラグは plist の環境変数かデーモンが読む設定へ。
- 無制限 fan-out より キュー+バックプレッシャー。エージェントごとのツール子プロセス並列も上限を。
クラウド Mac mini で同時実行が「噛みつく」理由
ProxyMac の Mac mini M4 は十分速いため、「並列エージェントが多いほどスループットが上がる」と考えがちです。実際のボトルネック順は多くの場合 (1) プロバイダー rate limit、(2) ツール子プロセスとディスク競合、(3) 巨大リポジトリや埋め込みキャッシュによるメモリ圧力、最後に (4) CPU です。これらを測らず並列度だけ上げると実行が不安定になり、「OpenClaw が固まった」ように見えるタイムアウトは、実際にはキュー詰まりや git ロック争いであることがあります。
並列は 非決定性 も増幅します。両方が npm install を走らせたり生成ファイルを上書きしたりすると衝突します。同時実行は スケジューリング方針 であり、無料の倍率ではありません。
制限要因(スループットの上限になりうるもの)
| 層 | 兆候 | 緩和 |
|---|---|---|
| LLM API TPM / RPM | HTTP 429、長いリトライ、テイルレイテンシ悪化 | 並列度を下げる、指数バックオフ、キーや組織クォータの分割 |
| ディスク I/O(SSD) | diskutil activity が高い、git status が遅い | working tree を分離、同一ボリュームでの重複 clone を避ける |
| ツール子プロセス | CPU 張り付き、fork 嵐 | エージェントあたりのシェル並列を制限、重いビルドは直列化 |
| ネットワーク egress | ベンダーやレジストリへのタイムアウト | プロキシ NO_PROXY、リージョン選定。egress 記事参照 |
キューパターン:fan-out とパイプライン
運用者がスタック内の「並列」の意味を理解できるよう、パターンを明示します。
- Fan-out / fan-in:プランナーが N 件の独立調査を投げ、リデューサが集約。読み取り中心でパスが分散しているとき向き。
- パイプライン段階:Lint → テスト → 要約。各段は並列 1〜2 でもパイプライン全体は忙しい。ビルド成果物を共有するリポ向き。
- 優先レーン:対話チャットをバッチより優先。キューを分け、バッチ側により厳しい上限を。
どのパターンでもログに キュー深さと滞留時間 を出してください。深さが単調増加なら maxConcurrentTasks を上げても悪化しがちです。キー・クォータ・タスクの細分化が必要です。
Git・ビルド成果物・単一ライター規律
macOS のファイルロックは論理衝突を防ぎません。同一ブランチで二つのエージェントが commit / rebase / lockfile 更新を同時に行えます。安全なデフォルトは次のとおりです。
- クローンごとに 書き込みエージェントは1つ。書き込みツールを呼べない読み取り専用アナリストを足す。
- タスク系統ごとに working tree を分ける:
git worktree addまたは~/agents/配下の別ディレクトリ。 - パッケージ導入とコード生成は 直列化。準備フェーズで並列 1。
.git/index.lock や壊れた node_modules は OpenClaw ではなく並列設計の問題です。
LaunchAgent・ヘッドレス実行・設定の出どころ
ログアウト後に LaunchAgent で OpenClaw を起動すると、継承されるのは plist に書かれた環境(とシステム既定)だけです。~/.zshrc で並列度を調整してもデーモンには 効きません。同じ maxConcurrentTasks(とプロキシ変数)を EnvironmentVariables に入れるか、対話モードとデーモンが共通で読むディスク上の config.json に集約してください。
変更後は launchctl bootout / bootstrap でエージェントを載せ替え、管理ポートのリスナが一つだけか確認してください。plist 重複は「二重実行」になり、競合に見えます。
安全に拡張する6ステップ
- ベースライン:並列 1 でプロバイダー p50/p95、429 回数、load average、ディスクキュー深さを記録。
- 1 ずつ:
maxConcurrentTasksを 1→2→3 と段階的に。ピーク負荷が変化を踏むまで待つ。 - ツール並列の上限:スタックが許せばシェル/ブラウザツールの同時数を制限。
- 負荷分割:方針が許すなら別 mini や別 API キーへ。
- バックプレッシャー:キュー滞留が SLO を超えたら負荷を捨てる。バッチ停止、埋め込み再構築の延期。
- ロールバック記録:直前に動いていた plist と設定断片を Runbook に残し ヘルプ へリンク。
よくある質問
M4 Pro でも推奨は変わる?
性能コアが増えるとツール子プロセスとローカルビルドには有利ですが、プロバイダークォータはチップと無関係です。低く始めるのは同じで、CPU に当たるのが遅くなるだけです。
429 ばかりのときは?
並列度を下げ、リトライ間にジッターを。ベンダー条項が許す範囲でアカウント分散。同じバーストパターンのエージェントを10体立てない。グローバルスロットルに繋がります。
並列エージェントに VNC は必要?
スループット目的では不要。TCC やキーチェーンの一度きり GUI は VNC で済ませ、SSH と VNC のとおり SSH でヘッドレス運用へ。
2026-05-19 追記:プロンプトがアイドルなのに RSS だけが伸びる場合(429 だけでは説明できないとき)は、並列度を上げる前に OpenClaw MCP 子プロセス残留と launchd 衛生 を確認してください。
並列 OpenClaw に ProxyMac Mac mini M4 を選ぶ理由
専用ベアメタルは、5 エージェントが同時にディスクと子プロセスを叩くときのノイジーネイバーを避けられます。LLM エンドポイントとレジストリに近いリージョンを 料金ページ で選び、プロキシ / WireGuard で egress を明示し、並列を上げる前に OpenClaw セキュリティとシークレット の基線を整えてください。