AI / 自動化 2026年5月13日

2026-05-13 OpenClaw マルチエージェント agents.json 役割分離ヘッドレス レンタル Apple Silicon クラウド Mac(HK / JP / KR / SG / US

MacXCode Engineering Team 2026年5月13日 約 21 分

単一ゲートウェイ・単一人格・単一の誤削除物語——OpenClaw を明示的なマルチエージェント構成に分けるまで続く。香港・東京・ソウル・シンガポール・米国でレンタルした Mac mini M4 では同一 UID に xcodebuild レーン、署名ツリー、Slack 応答アシスタントが同居しがちである。2026-05-13 の本稿は agents.json を運用契約として扱う:どのルートに触れよいか、どの OPENCLAW_STATE_DIR が checkpoint を所有するか、インバウンドをどう一意のエージェントへ割り当てるか。ワークスペース許可リストセッション checkpoint と再起動onboard と doctor のトリアージを接続し、launchd 再起動後も durable 状態が混ざらない 開発 vs 運用 分離を再現可能にする。

共有レンタル ビルダーでマルチエージェント設計が効く理由

リポジトリを読めるアシスタントと、デーモン再起動やトークン ローテーションを担うオートメーションはリスク階級が異なる。同一状態ディレクトリを共有すると、重複排除キャッシュ、プラグインマニフェスト、書きかけの JSON がバースト Webhook 下で交錯する——特に npm 更新や launchctl kickstart の嵐のあとに顕在化する。設計の中心は爆発半径:ロールごとにツール面を狭め、ログ接頭辞を分け、スコープ拡大は人のレビューを必須にする。agents.json はインフラコードとして扱い、ピアレビュー、デプロイ tarball のチェックサム、リージョンごとのカナリアを徹底する。

運用デフォルト:インバウンドを一意のペルソナへマッピングできない場合はフェイルクローズし、nginx アクセスログと同じ相関 ID で記録する。自由形式チャットだけから人格を推測しない。

agents.json とゲートウェイ プロセスモデルの層構造

トランスポート(HTTP、Slack、Telegram)、ゲートウェイ(ルーティング・認証・レート制限)、エージェント実行時(ツール実行・モデル呼び出し・ファイルシステム方針)の三層で考える。agents.json は実行時に属し、名前付きエージェント、既定モデル、スキル束、ポリシー項目を宣言する。ゲートウェイは起動時に読み込むため、制御された再起動なしにホット変更するとメモリに旧方針が残る。ビルドごとにホットリロード可能フィールドを文書化し、不可なら checkpoint 手順 に沿った停止順序を守る。

  • アイデンティティ — ルーティングとメトリクスが参照する安定した id
  • スコープモノレポ ガードレール の許可ルートと一致させる。
  • ツール — 明示的 allow/deny。運用ペルソナだけがサービス制御ツールを持つ構成が一般的。

開発と運用:相互に継承してはいけない権限

開発アシスタント は読み多めのナビゲーション、diff に優しい小さな編集、CI チェックアウト配下に閉じたテストコマンドを主眼とする。運用オートメーション はホスト内省を広げてもよいが、対話プロンプトや無制限 shell は避ける。いずれのインライン プロンプトにも秘密を埋め込まず、キーチェーンや plist 参照の密封 env ファイルから読み込む。「一時的に」境界を曖昧にすると、アシスタント スレッドが運用ツールを継承し launchd plist に触れる事故が起きる。

ガードレール:Git レビュー済み JSON に各エージェントの一行ミッション文を書き、インシデント時はツール表だけでなく意図の diff を見られるようにする。

1 台複数エージェントでの OPENCLAW_STATE_DIR 分離

~/Library/Application Support/OpenClaw/state-dev.../state-ops のようにプレフィックスで兄弟ツリーを切る。製品ライン共有ならテナント別サブディレクトリを追加する。一方の状態木を他方へ symlink しない。APFS firmlink とバックアップが境界を潰すことがある。エージェント別 TMPDIR で並列ジョブの中途アップロード削除競合を避ける。移行後は doctor 手順 で非対話シェルが意図したパスを解決するか検証する。

# launchd ラッパー例 #!/bin/bash set -euo pipefail export OPENCLAW_STATE_DIR="$HOME/.openclaw-state/ops" exec /usr/local/bin/openclaw gateway --config "$HOME/.openclaw/ops-gateway.json"

ルーティング:相関キー、チャンネル、衝突回避

Webhook には安定 ID を載せる——リポジトリ full name + delivery id、Slack team + channel + thread ts、署名済み内部ジョブ トークンなど。パターンごとに単一 id へ写像し、正規表現のフォールスルーで運用向けトラフィックをデフォルト アシスタントへ誤送しない。デュアル ゲートウェイでは上流ラベルのアイデアを再利用してもよいが、ペルソナ ルーティングは A/B トラフィック分割と直交させる。ロールアウト初期は info でルーティング決定をログし、エラー予算が安定したらレベルを下げる。

意思決定マトリクス:単一エージェント / agents.json 分割 / ゲートウェイ分割

シグナル 単一エージェント寄り agents.json 分割寄り ゲートウェイ プロセス分割寄り
ツール面の重なり 高重複・同リスククラス 低重複・同一ゲートウェイ認証 認証ドメインまたは TLS 証明書が異なる
リリース頻度 週次プロンプト調整のみ JSON を別チームが所有 独立 SLO またはメンテ窓
状態ディレクトリ競合 書き込み少・キャッシュ小 checkpoint やプラグイン IO が重い コンプライアンス監査で硬い隔離が必要
運用コスト 最小構成 中:ディレクトリとルート検証が増える 最大:launchd とヘルスプローブが二倍

レンタル Apple Silicon でマルチエージェント OpenClaw を展開する 8 ステップ

  1. 過去 30 日のゲートウェイ入口(人と自動)を棚卸しする。
  2. 開発と運用プロファイルを含む agents.json を起案し、ルートは 許可リスト指針 に合わせる。
  3. 兄弟 OPENCLAW_STATE_DIR を所有権とクォータ付きで作成する。
  4. 決定的ルールとサンプル ペイロードのユニットテストを書く。
  5. ペルソナ別 plist またはラッパーを配備し、ステージングで launchctl kickstart を検証する。
  6. 誤ルーティング時に必ず失敗する合成ジョブを走らせる。
  7. 拒否ツール試行とゲートウェイ p95 を前後比較する。
  8. ロールバック手順を文書化:状態 tarball と Git タグ付き旧 JSON。

マルチエージェント ゲートウェイの SLO シグナル

シグナル しきい値 アクション
ルーティング曖昧率 リクエストの > 0.1% ルーティング変更を凍結し明示マッチャーを追加
状態ディレクトリ横断書き込み 宣言ルート外への書き込みが1 件でも ゲートウェイ停止し checkpoint スナップショットから復元
Git JSON とホストのドリフト 未デプロイの手編集があれば即 ホストを戻し PR のみ運用を強制

FAQ

質問 実務回答(2026-05-13)
開発と運用は同一モデル許可リストを共有してよいか コスト一元管理ならプロバイダ一覧は共有しやすい。オフライン安価エンドポイントが運用に必須なら禁止モデルリストを分ける。
インシデント中に SSH で agents.json をホット編集してよいか ペアの再起動計画と Git タグがある場合のみ。そうでなければルータ側フラグの方が爆発半径が小さい。

マルチエージェント OpenClaw に Mac mini M4 レンタルが向く理由

高速 NVMe と十分な unified memory により複数状態木、並列モデル キャッシュ、同時ヘルスチェックを swap 圧迫なしで回せる——ルーティング変更のリハーサル中に CI がフルビルドしていても効く。地域キャパは 料金 で比較し、ツール拡大の前に SSH/VNC ガイド へ誘導する。

マルチエージェント方針をディスク上で強制できるビルダーをレンタル

HK / JP / KR / SG / US · SSH / オプション VNC