夜中の2時、Discordに送ったメッセージの返事が来ない。

エージェントが動いてるはずのPixel 4aを確認すると、Claudeのレート制限に引っかかって完全に止まっていた。cronで回してるX投稿も、記事生成も、全部止まってる。これが初めてではなかったけど、毎回手で再起動するのは正直しんどい。

そこで、OpenClawにOpenAI CodexのOAuth認証を追加して、Claudeが詰まったら自動でCodexに切り替わる構成にした。この記事はその時の作業ログです。


前提:何が動いていたか

自分の環境では、Pixel 4a上のOpenClawで以下を同時に回していた。

  • 毎時のX自動投稿(cron)
  • 1日4回のブログ記事生成(cron)
  • Discordからの手動やり取り(メインセッション)

全部Claude Opus 4.6で動かしていたので、トークン消費が集中するタイミングでレート制限に当たる。当たると全セッションが止まる。


復旧までにやったこと

OAuth認証の開始

OpenClawにはCodex OAuthの認証フローが組み込まれている。


openclaw onboard --auth-choice openai-codex

これを実行すると、セキュリティ確認→設定確認→OAuth URLの表示、という流れで進む。

URLをブラウザで開いてログイン

表示されたURLをスマホのブラウザで開き、ChatGPTアカウントでログインする。ログイン後、ブラウザがlocalhostにリダイレクトされるので、そのURLをコピーしてターミナルに貼り付ける。

ここで1つハマった。

state不一致の罠

最初、onboardingプロセスが途中でkillされて、再度実行した。そのとき、前回のリダイレクトURLを使い回したら認証が通らなかった。

原因はcode_challengestateの不一致。OAuthの仕様上、認証URLは毎回一意に生成される。前のセッションで取得したコードを別セッションに渡しても、サーバー側で弾かれる。

対処は単純で、新しく表示されたURLで再度ログインし直すだけ。ただ、これに気づくまでに3回やり直した。エラーメッセージが出ずにただ無応答になるので、原因の切り分けに時間がかかった。

onboardingを最後まで完走させる

もう1つのハマりポイント。認証自体は成功しても、onboarding wizardのチャンネル選択画面で操作する前にプロセスがkillされると、認証情報がファイルに保存されない。

auth-profiles.jsonを直接確認して、openai-codex:defaultのエントリが入っていれば成功。入っていなければ、もう一度最初からやり直す必要がある。


{
  "openai-codex:default": {
    "type": "oauth",
    "provider": "openai-codex"
  }
}

フォールバック設定

認証が通ったら、モデルの優先順位を設定する。

自分の場合は、メインをClaude Opus、フォールバックをCodex GPT-5.3にした。OpenClawの設定ファイル(openclaw.json)で以下のように書く。


{
  "agents": {
    "defaults": {
      "model": {
        "primary": "anthropic/claude-opus-4-6",
        "fallbacks": ["openai-codex/gpt-5.3-codex"]
      }
    }
  }
}

設定変更後にゲートウェイが再起動されて反映される。


実際に切り替わるとどうなるか

Claudeがレート制限に当たると、OpenClawが自動的にフォールバック先のCodexにリクエストを投げる。ユーザー側から見ると、少し応答の雰囲気が変わるくらいで、操作は何も変わらない。

cronで動いているタスクも同様に継続される。これが一番大きかった。夜中に止まって朝まで放置、というパターンがなくなった。


逆構成も試した

試しにCodexをメイン、Claudeをフォールバックにも切り替えてみた。動作自体は問題なかったが、自分の用途ではClaude Opusの方がツール呼び出しの精度が高かったので、元に戻した。

ここは好みと用途次第だと思う。コーディング中心ならCodexメインの方が合うかもしれない。


この構成で変わったこと

  • レート制限による完全停止がなくなった
  • cronタスクの取りこぼしが減った
  • 障害時に「モデルの問題か、認証の問題か」を分離して見られるようになった
  • 精神的に楽になった(夜中に確認しなくていい)

まとめ

フォールバック構成を入れたことで、運用の安定度が明らかに上がった。

設定自体は30分もあれば終わるが、OAuth認証周りで無駄にハマるポイントがある。特にstateの使い回しと、onboardingの途中離脱には注意が必要。

同じようにOpenClawを常時運用している人には、メインモデルの選定と同じくらい、フォールバック設計を考えることを勧めたい。


関連記事

参考リンク