AI / 自動化 2026年4月27日

2026-04-27 ヘッドレスレンタルクラウド Mac(HK / JP / KR / SG / US)における OpenClaw、上流 LLM HTTP 429/503、リトライ予算、組織単位のアウトバウンドリクエスト整形

MacXCode エンジニアリングチーム 2026年4月27日 読了約 19 分

OpenClawSSH とときどき VNC だけが窓口の レンタル Mac mini M4 で 24 時間稼働しているとき、いちばん騒がしい「レート制限」の症状はしばしば壊れたモデルに見えます。会話が途切れ、ツール呼び出しがトレースの途中で落ち、誰かが API キー を回したのではと疑います。しかし アウトバウンド LLM プロバイダ 経路の HTTP 429HTTP 503 は、nginx 側の インバウンド Webhook で自分が返す 429 とは別物ですし、egress / DNS / TLS の回復力記事で扱う経路断とも違います。本稿は 2026-04-27 時点で、SRE とスタッフエンジニアが「こちらのクォータ浪費」と「向こうの劣化」を繰り返し切り分けるための実務ガイドです。数値化されたバックオフの既定、ゲートウェイが越えてはならない組織別リトライ予算、そして今日から 構造化 JSON ログ でインデックスできるフィールドまで含めます。同じノードで Xcode ビルドも走らせているなら、姉妹編 複数 Xcode と CI マトリクス と対で読み、ツールチェーンのずれとモデル HTTP 飽和という別アラートを混ぜないようにしてください。

2 つの「429」表面:自前 nginx と相手の API ゲートウェイ

騒がしい日——大型モデルリリース、リージョン障害、マーケのデモスクリプトが一度に 40 並列スキルを起こす日——には、(A)意図的に絞ったインバウンド Webhook、(B)上流 429/503、(C)鍵違いや期限切れの 401/403 が混線しやすいです。実用的なトリアージは、ログの送信元 IP(プロセスへのループバック対パブリック縁)、プロバイダが返すユーザエージェントやライブラリタグ、そして retry-after が秒の小さな数か単位の長さか、の三点に落ちます。香港東京 のオペレータは企業プロキシが健全なのにバーストで 429 を返したり、その逆が起きたりするため、この分離が特に効きます。各行に edge=inbound|outbound を載せるスキーマを ログ設計 に入れておけば、後から振り返るときの負債になりません。

数値の碇:アウトバウンド の 5xx または 429 が全 LLM 往復に占める割合が 5 分より長く 全往復の約 2% を超えるなら、sev-2 ブリッジを開き、ネットワーク事故として扱い、「AI の品質ドリフト」として片付けないでください。

しきい値を運用手順書に書き、オンコールの通知経路と結べば、「チャットは荒れているがダッシュボードは静か」という逆説的な沈黙を減らせます。同時に、誰が一時的に並列を上げられる権限を持つかを変更管理に残し、トラフィック形状の急変を後から説明できるようにしてください。

HTTP 401/403 と 429 と 503/529:ゲートウェイの振る舞いを分ける

ステータス 実務的意味 既定のオペレータ姿勢
401 / 403 資格情報、許可リスト、組織の不一致——設定が変わるまで決定的なことが多い 自動リトライは0〜1 回のプローブまで。キーローテーションと launchd に置いた秘密 を確認。
429 プロバイダ側スロットルまたはトークン/リクエストバケツ枯渇 ジッタ付きバックオフ。「OpenClaw の不具合」にする前に進行中の仕事量を減らす
503 / 529(ベンダにより異なる) 過負荷またはリージョン/プール不可用 初回遅延は短く、最大試行は少なめ。方針が許せば副次 モデル へ(モデル許可リストのトリアージ)。

内部 HTTP クライアントの設定を誠実に保ってください。401 を無思考にリトライすると、プロバイダ側のブルートフォース検知でアカウントがロックされることがあります。503一切バックオフしないと、10 Gbps NIC を積んだ Mac ゲートウェイからの軽微な相手側の瞬断が、自己 DDoS に膨らみます。コードレビューのチェックリストに状態コード分岐を入れておくと、コピペ由来の事故を減らせます。

並列、トークン窓、組織レベルの予算(チャット単位だけにしない)

「レート制限に当たった」チケットの多くは自傷的並列です。launchd タスク の cron 的スケジュールが DiscordSlack のツール呼び出しピークと重なり、それぞれが人間が打つより巨大な HTTP ボディを並列に飛ばす、という形です。まずトラフィックの形を直します。

  • ツール利用ターンの同時実行数を、ポリシーに書ける数字に抑えます。例として ゲートウェイプロセス あたり4本の進行中のアウトバウンド HTTP(ローカルモデルルーティングで Neural Engine オフロードがあっても HTTP 経路には上限が要ります)。
  • 組織別の 1 日トークン上限をビジネス言語(サポート、マーケ、R&D)で決め、1 つの JSON に MAX_TOKENS だけ置くのをやめます。
  • cron/launchd 層 で定時ジョブをずらし、UTC 時境界に積み上がらないようにします。米国欧州 の勤務時間が SGJP リージョンで重なると特に効きます。

組織予算は財務との突合もセットにすると、「より大きいプランを買う」か「プロンプトを直す」かをデータで選べます。感覚だけでノードを足すループから抜け出せます。

ジッタ、指数の上限、壁時計予算(3 つの具体数)

オンコールがそのままチケットに貼れる文章として方針を持ちましょう。感覚値ではなく運用契約です。

  • 最初の 429 リトライ前に 0.4〜1.2 秒 のジッタ。ゼロ秒の熱ループは禁止。
  • 指数バックオフは試行間 32〜64 秒 で頭打ち。ベンダがインシデント中に「2 分後」と言っても、それ以上は人間のエスカレーション領域。
  • ユーザーに見える会話ターンでは、ジョブ全体の累積リトライ待ちを180 秒で硬停止。さもないとゲートウェイが「ハング」と見え、チャンネルがスパムされ、さらに 429 層が増えます。

sleep $((2 + RANDOM % 3)) curl -sS -D - "https://api.example/v1/health" -o /dev/null | head -n1

予算の分離:Webhook 429/503 のリトライ方針と LLM 方針は別 YAML ブロックにしてください。コピペすると重複配信を増幅したり、片方を飢餓させたりします。

手順:グラフが黄ばんだときの 6 ステップ

  1. リリースを凍結openclaw パッケージはロールバック中でなければ出さない。インシデント規則下で 2 分以内にピアレビューできる設定のみ変更可。
  2. ログの inbound/outbound ラベルで縁を分類。アウトバウンド 429 なら、秘密を伏せたコピーで現在の並列と組織上限をスナップショット。
  3. スケールダウン:並列ツールランナーを半分にし、p95 が改善するか見る。改善するなら能力不足ではなくキュー飢餓。
  4. egress と DNS 基線と比較。同じ時間帯に TLS エラーが増えているなら、クライアントが 503 と誤ラベルした輸送失敗の可能性。
  5. デーモンと同じ環境で openclaw doctor を再実行し、doctor/許可リスト 手順に沿って、スロットルに化けた環境の古さやモデル許可リスト問題を拾う。
  6. ポストモーテムの数値トリオ:(1)ピーク進行数、(2)429 の割合、(3)呼び出しあたり中央値トークン。(3)が跳ねたならプロンプトテンプレの劣化が原因で、プロバイダのせいにしにくいです。

Grafana や Loki が 1 クエリで答えるためにログに載せるもの

最低限:tsproviderroute(completions 対 embeddings)、attemptstatus、返ってきたら request_id、壁時計 msorgsurface(チャット対ヘッドレスバッチ)が載れば、顧客向け SLO とバッチ作業を分けられます。ループバック向けの レディネスとプローブ の延長線上にあり、メンテナンス枠で低 QPS のカナリア補完を足すことも可能です——トークン科目の事前承認さえあれば。インシデントは 古いモジュール更新 とクロスリンクしてください。Node HTTP スタックのバージョン食い違いは、ランダム 5xx をレート制限に見せかけます。さらにサンプリング率と保持期間をデータガバナンス文書に書き、ログ爆発がローカルディスクを逆に圧迫するのを防ぎます。

FAQ:スロットル、公平性、オペレータの信頼

質問 一言の答え
デフォルトの修正は「API クォータを買う」ことか? 持続的な事業成長では時々 yes だが、先にトラフィックを整形せよ。カスタムスキルの誤った並列 for-each は新クォータを数時間で焼く。
同一リージョンに第 2 の物理 Mac が要るか? CPU は低いのに HTTP が飽和しているなら、ベンダ支出を増やすより第 2 ノードが安いことが多い——リージョンプラン を見て組織や環境で分割。

egress DNS/TLS(輸送の真実)、インバウンド Webhook とリトライの意味(別の 429)、症状が文字どおりの HTTP 429 ではなく「Discord にスタック」なら サブエージェントチャンネルトリアージ。環境配線は launchd と API キー衛生 を続けてください。

HK / JP / KR / SG / US で Mac mini M4 がバーストモデルトラフィックに合う理由

OpenClaw はバースト CPU(ツールオーケストレーション、ときどきのローカル埋め込み)と終日の NIC 利用(HTTP/2 ストリーム、繰り返し TLS ハンドシェイク、ブリッジからのハートビート)を混ぜます。物理 Mac mini M4 はその負荷を予測可能なスタックの上に載せられます。バックオフアルゴリズムが頼るタイマ品質について嘘をつくハイパーバイザがありません。ユニファイドメモリ も十分で、冗長な JSON ログバッファを抱えても 8 GB の Linux スライスのように OOM を繰り返しにくいです。ゲートウェイをモバイル QA と Xcode ビルド群と同じ都市圏に置けば、SSHディスク、サポート時間を 1 ベンダに集約できます——証拠で単純化してから、2 ノードへ拡張するのが筋です。

リトライに耐えるハードウェアでゲートウェイを動かす

1〜2 TB · Apple Silicon · SSH と任意の VNC