OpenClaw モデル許可リスト拒否と本番修正(MacLogin クラウド Mac 2026-04-23):HK・JP・KR・SG・US ゲートウェイで Model not allowed のサイレント退行を止める
OpenClaw のログが詳細なスタックから一気に短い Model not allowed だけになると、多くのチームはプロバイダー障害と決めつけます。 レンタルした Apple Silicon ゲートウェイでは、2026 年 4 月時点でより多い根本原因は 許可リストのドリフト です。agents.defaults.models が、マイナーアップグレード後にルーターや cron が要求するカタログ ID と交差しなくなります。 本稿はポリシー対カタログのマトリクス、揃えておくべき JSON5 キー、明示的ロールバック付きの 7 段階ロールアウト、偽陽性を拾う curl プローブ、MacLogin リージョン向け FAQ をまとめます。
出発点は doctor 診断、インストール スクリプトと npm グローバル の比較、本番カットオーバー健全性チェック の規律です。レート制限は プロバイダー バックオフ と併用。ハブ:OpenClaw トピック索引。運用:ヘルプ、料金、VNC。
MacLogin の多リージョンでは、許可リスト変更は東京 staging で検証し、香港の汎用自動化ホスト、シンガポールとソウルの読み取り中心エージェント、最後に米国本番へと進めます。各段で拒否カウンタと p95 尾遅延を残さないと「staging は成功、本番だけサイレント拒否」が起きます。変更票には doctor JSON の diff とゲートウェイの git describe を必須にし、JSON5 テキストだけで semver が見えないレビューを防ぎます。
規制顧客には、マスクした curl と健全性ボディを少なくとも 1 つの cron 周期保管し、cron 子と対話シェルが同じモデル ID であることを示します。launchd の環境注入とディスクが食い違う場合は、plist の OPENCLAW_MODEL を除く恒久修正をチケットに明記し、再起動だけで隠さないでください。
「設定を変えていない週」の後に Model not allowed が出る理由
上流 OpenClaw はルーティング別名の改名、デフォルト拒否リストの強化、プレビューと安定 SKU の分割を行うことがあります。ゲートウェイ JSON5 は短いレガシー ID のままで、ランタイムはベンダー修飾文字列を期待します。YAML でモデルを固定する cron スキルは対話オンボーディングを迂回するため不一致が目立ちにくくなります。
- 環境注入: launchd plist が
OPENCLAW_MODELをエクスポートすると、ある子プロセスだけ JSON5 を上書きし、cron 子が動くまでdoctorでは隠れます。 - 部分マージ: Git 昇格で tools だけが取り込まれ
agents.defaultsが抜けると、本番が staging より厳しくなります。 - 地域カタログ: US と JP エンドポイントでモデル一覧が数分差で出ると、同じ文字列でも可用性フラグが違い JP だけ拒否されます。
ポリシー対カタログ ドリフト マトリクス
| シグナル | ポリシー側 | カタログ側 | 検証 |
|---|---|---|---|
| プロバイダー 401 | 可能性低い | キー ローテーション | curl プロバイダー /models |
| 即時 200 かつ空の補完 | 未知 ID へのマッピング | モデル退役 | ゲートウェイ ログで拒否 ID を grep |
| cron のみ断続拒否 | cron 環境に新 ID なし | 同上 | launchd ジョブ内 printenv |
| npm アップグレード後のみ拒否 | schema デフォルト強化 | ピア依存がルーター変更 | openclaw doctor --json diff |
JSON5 の形とチームが忘れるキー
agents.defaults.models は文字列の明示配列に保ち、パーサーを壊す末尾カンマや cherry-pick で蘇るコメント行を避けます。プロバイダー ID は逐語一致。-latest と固定ハッシュの両方がある場合、本番は固定ハッシュ、staging は soak 用に1 つの別名だけ残します。
各エントリに JSON5 コメントで担当チームと四半期レビュー日を書きます。説明のないワイルドカードは監査で不合格になります。編集後は openclaw doctor --fix で不正キーを正規化し、--fix なしで安定を再確認します。
7 段階ロールアウト(JP カナリア → US 本番)
- 状態ディレクトリ バックアップ に従い
~/.openclawをスナップショット。 - JP staging リースに許可リスト diff を適用。合成負荷は 5 RPS 未満。
- doctor を 2 回。警告がベースラインより 1 多いなら失敗。
- 香港の汎用自動化ホストへ昇格し 24 時間拒否を監視。
- SG と KR の読み取り中心エージェントへ。尾遅延 p95 を見る。
- 取引分析に触れるモデルは財務承認後のみ米国本番へ。
- いずれかのリージョンで拒否が時間 15 を超えたら tarball を戻し launchd を再起動してロールバック。
再起動後の curl プローブ(偽の緑を避ける)
ローカル健全性エンドポイントを 200 ms 間隔で 5 回叩きます。1 回目は成功しても 2 回目で許可リストを再強制するプラグインが載ります。ビルド ハッシュ付きヘッダーを保存し、どのバイナリが答えたか特定します。TLS 終端がリバースプロキシなら 127.0.0.1:18789 でも curl し、ネットワーク方針と OpenClaw 方針を切り分けます。
| プローブ | 合格条件 | 失敗の意味 |
|---|---|---|
| GET /health(ローカル) | HTTP 200、本文 OK | 再起動後にゲートウェイがバインドされていない |
| 補完サンプル | アシスタント本文が空でない | サイレント許可リスト拒否経路 |
| cron ドライラン | 手動と同じモデル ID | 環境ドリフト |
プロキシが X-OpenClaw-Build を落とす場合、インシデント チャンネルにゲートウェイの git describe を貼り、許可リスト schema 版の diff 対象を揃えます。この相関を飛ばすチームは、混雑した npm ミラーで数時間離れた 2 つの semver の JSON5 を無意識に比較し、平均 47 分余分に doctor を回します。
FAQ
一時的に allow-all にできますか? 使い捨てクローン内のみ。他テナントのスキルが同じホームレイアウトを継ぐ共有 MacLogin リースでは禁止。
大文字小文字は? はい。モデル ID は大文字小文字を区別する不透明文字列として扱います。
四半期カタログレビューの所有者は? プラットフォーム工学と AI ガバナンス承認。ヘルプ にリンクした runbook に名簿を書きます。
Mac mini M4 が許可リスト検証サイクルを短縮する理由
M4 クラスの Apple Silicon は doctor と npm link ゲートウェイ再起動を壁時計 90 秒以内に抑え、営業前に 5 メトロを回す反復に効きます。統合メモリで tokenizer キャッシュを温めたまま curl プローブを並行でき、手順省略の誘惑を減らします。HK・JP・KR・SG・US のフリートにより、JP 優先のモデル可用性を固定しても、すべての微調整で米国エンジニアを起こす必要はありません。
料金 からカナリアを追加するのは本番拒否リスクより安いです。厳しい許可リストのレプリカを 24/7 稼働させ、完全な cron 周期を生き延びた後だけ JSON5 を昇格させます。
専用 Apple Silicon で OpenClaw 許可リスト変更を実行
doctor でゲートした JSON5 を HK・JP・KR・SG・US の MacLogin ノードとペアにします。