OpenClaw 認証モニタリング:OAuthの失効をエージェントが壊れる前に検知

Dev.to / 2026/4/25

💬 オピニオンDeveloper Stack & InfrastructureSignals & Early TrendsTools & Practical Usage

要点

  • OpenClawは、ポータブルなコマンド `openclaw models status --check` を通じてOAuth認証の有効期限(ヘルス状態)を確認し、資格情報の劣化によるエージェント障害を起きる前に検知できるようにしました。
  • 推奨される終了コードは運用上の状態に明確に対応しており、0(OK)、1(失効または欠落)、2(24時間以内に失効)となっています。
  • cronやsystemdといった自動化環境でそのまま使えるため、トークンのパーサを自作したり資格情報ファイルを手動で確認したりすることなく、すぐにアラート運用へつなげられます。
  • この記事では、提供元が不健康になった際に作業を継続するOpenClawの「モデルフェイルオーバー」と並ぶ位置づけとして、このモニタリングを“早期警告”の層に位置付けています。
  • シェルスクリプトの基本例として、終了コードを実行可能なメッセージに変換し、コード1は「ブレイクグラス」、コード2は警告として扱えるようにしています。

OpenClaw 認証監視: エージェントが壊れる前に期限切れの OAuth を検知する

多くのエージェント障害は、派手なスタックトレースから始まりません。始まりは、すべてが問題なさそうに見えるのに、認証情報が静かに期限切れになっていくことです。そして本当のタスクが入ってきたときに初めて、事態が露呈します。OAuth に裏打ちされたプロバイダーを使っている場合、これは珍しい例外ではありません。運用上の責任です。

OpenClaw は、ユーザーが不安を感じる前にその状態を把握するための、すっきりした方法を提供します。このトピックの要点は、驚くほど率直です。OpenClaw は openclaw models status を通じて OAuth の有効期限ヘルスを公開しており、推奨される自動化チェックは openclaw models status --check です。

これが重要なのは、持ち運び可能な仕組みになるからです。最初に独自のパーサーを作る必要はありません。電話ウィジェットも不要です。どのトークンファイルを調べるべきかを推測する必要もありません。CLI コマンドを1つ実行し、cron や systemd に組み込みさえすれば、すぐに使えるシグナルが得られます。

この先の「より大きな耐障害性」の話を知りたいなら、OpenClaw Model Failover を読んでください。あちらは、プロバイダーが健全でないときに処理を止めずに動かし続ける方法についての記事です。こちらは、そもそも最初から失敗モードに入らないように、認証のトラブルを十分早く見つけることがテーマです。

私なら最初に自動化する「1つのコマンド」

OpenClaw のドキュメントは、この正確なチェックを推奨しています:

openclaw models status --check

これは、持ち運び可能で、追加のスクリプトを要求せずに cron でも systemd でも動くため、推奨される手順です。終了コードについても明確に文書化されています:

  • 0 : OK
  • 1 : 期限切れ、または認証情報が見つからない
  • 2 : 近日中に期限切れ(24時間以内)

これで、実際のアラートポリシーを構築するのに十分です。終了コード 1 は「ガラスを壊してでも緊急対応」すべき状態です。終了コード 2 は警告レーンです。この切り分けが好きなのは、ライブセッションが行き詰まる前に手を打てるからです。

実際には、最初のセットアップはとても退屈なものになり得ます:

#!/bin/sh
openclaw models status --check
case "$?" in
  0)
    echo "auth healthy"
    ;;
  1)
    echo "auth expired or missing"
    ;;
  2)
    echo "auth expiring within 24h"
    ;;
  *)
    echo "unexpected monitoring error"
    ;;
esac

これを cron ジョブ、systemd タイマーのターゲット、あるいはすでに信頼している監視ラッパーにそのまま投げ込めます。重要なのはシェルの美しさではありません。重要なのは、認証情報ファイルを自力で逆算するのではなく、OpenClaw のステータスパスを「真実」として使うことです。

models status が「合否」以外にくれるもの

より広い openclaw models status コマンドは、厳密なチェックモードで動かしていない場合でも有用です。ドキュメントによると、解決されたデフォルトモデルとフォールバックに加えて、認証の概要が表示されます。ルーティングと認証情報の健全性の両方を1か所で確認できるため、オペレーターコマンドとして適しています。

さらに --json モードもあり、ステータス出力のログやダッシュボード、あるいは独自ラッパーを作りたい場合はこちらを使うことになるでしょう:

openclaw models status --json

また、複数の設定済みエージェントを管理している場合、models status は明示的な --agent <id> フラグをサポートしています。CLI がどのデフォルトコンテキストを使っているのかを推測する代わりに、特定のエージェントのモデルと認証状態を調べられます。

openclaw models status --agent my-agent
openclaw models status --agent my-agent --check

これは小さな機能ですが、運用上重要です。誤った環境をチェックしてしまうことから、過剰な安心が生まれることがよくあります。複数のエージェントを運用しているなら、対象を明示してください。

保存されたステータスではなく「ライブテスト」をしたいなら --probe を使う

よくあるミスとして、すべてのチェックがライブリクエストであるべきだと思い込んでしまうことがあります。ドキュメントはここで役立つ線引きをしています。openclaw models status --probe は、設定されたプロバイダープロファイルに対してライブの認証プローブを実行し、これらのプローブは実リクエストです。つまりトークンを消費し、レート制限を引き起こす可能性があります。

openclaw models status --probe

OpenClaw は、狙いを定めた検証が必要なときに被害範囲を絞れるよう、プローブの制御も公開しています:

  • --probe-provider : 1つのプロバイダーをテストする
  • --probe-profile : 1つ以上の特定プロファイルをテストする
  • --probe-timeout : 待機時間の上限を設定する
  • --probe-concurrency : フォンスアウト(同時展開)の制御
  • --probe-max-tokens : ライブリクエストのサイズを制限する

毎分ごとのヘルスチェックのたびにプローブを走らせるべきではありません。--check を通常の監視として維持し、--probe は確認・デバッグ・あるいはスケジュールされたより深い点検のために温存するのがよいでしょう。

これをドキュメントやポストモーテムをつぎはぎして組み立てるのではなく、完全なオペレーター設定が欲しいですか? ClawKit をこちらで入手

おそらく任意のスクリプトは不要ですが、用意されています

認証監視のドキュメントでも、この点は明確です。scripts/ 配下のスクリプトは任意の「おまけ」であり、コアとなる手順ではありません。前提として、ゲートウェイホストへの SSH アクセスが必要で、systemd と Termux 風の電話フロー向けに調整されています。

文書化されている任意の要素には以下が含まれます:

  • scripts/auth-monitor.sh : cron または systemd タイマーのアラート用
  • scripts/systemd/openclaw-auth-monitor.service と .timer
  • scripts/claude-auth-status.sh : 認証チェック出力モード用
  • scripts/mobile-reauth.sh : ガイド付きの SSH 再認証フロー
  • scripts/termux-quick-auth.sh と scripts/termux-auth-widget.sh
  • scripts/termux-sync-widget.sh : Claude Code の認証情報を OpenClaw に同期する

ここでオペレーターが見落とすべきでない細部が1つあります。scripts/claude-auth-status.sh は現在 openclaw models status --json を「真実」のソースとして使うようになっており、CLI が利用できない場合にだけ直接ファイルを読み取るフォールバックを行います。これは正しい設計の勘どころです。補助スクリプトでさえ、ファイル単位の推測より CLI 契約を優先しています。

単純なサーバーを運用していてモバイルのワークフローに関心がないなら、まずはスクリプトは飛ばして構いません。持ち運び可能なチェックから始めてください。追加の要素は、それがすでに抱えている実際の運用課題を解決できるときにだけ足しましょう。

うまく育つシンプルな監視パターン

もし今夜、最初からこれをセットアップするなら、監視レーンはかなりシンプルに保ちます:

  1. openclaw models status --check をスケジュール実行する。
  • 終了コード 2 を、注意喚起にふさわしい警告として扱ってください。
  • 終了コード 1 を、即時の修復作業として扱ってください。
  • オペレーターの文脈には openclaw models status または --json を使ってください。
  • --probe は、ライブでの確認パスが必要なときだけ使用してください。
  • このパターンがうまく機能するのは、保存された認証ヘルスと、アクティブなプロバイダーの検証との違いを尊重しているからです。必要なのは両方のツールです。ただし混同はしたくない、というだけです。

    これは、より広い範囲の自動化設計とも相性が良いです。すでに「ジョブを cron レーンに入れるか、先回りレーンに入れるか」を判断しているなら、私の cron vs heartbeat ガイド が、スケジュールされたチェックと、より自律的なふるまいを分けるのに役立ちます。

    よくある間違い(避けたいこと)

    1. エージェントが失敗するまで待ってから気にする

    最初の認証シグナルが壊れた本番タスクであるなら、監視レイヤーの出番が遅すぎます。ドキュメントには、すでに早期警告のルートが用意されています。それを使いましょう。

    2. まずは自分でトークンの検査を組み立てる

    OpenClaw は、CLI 経由で認証の期限切れヘルスをすでに公開しています。ごく特殊な統合要件がある場合を除き、バラバラに散らばった資格情報の状態を直接読むのは、不要な複雑さを増やすだけです。

    3. --probe を害のない読み取りのように扱う

    ドキュメントでは、プローブが実リクエストであり、トークンを消費したりレート制限を引き起こしたりする可能性があると明確に警告しています。これはデバッグや保証のためのツールであって、無思慮に連打するものではありません。

    4. マルチエージェントのターゲティングを忘れる

    ホスト上で複数のエージェントを動かしている場合は、--agent を使ってください。そうしないと、実際に重要なのは別の設定済みエージェントであるのに、デフォルトのエージェントを監視してしまうことがあります。

    警告の切り替わり時に私ならどうするか

    モニターの返り値が 2 のときは、まだ時間があります。ここで私はステータス出力を確認し、どのプロバイダー/プロファイルが期限が近いのかを確かめ、その次の忙しい期間に入る前に、更新が必要なのか、新しいログインが必要なのか、あるいは事前に資格情報を計画的に差し替える必要があるのかを判断します。

    返り値が 1 のときは、「メンテ作業だ」と思い込み続けるのをやめて、それをインシデントとして扱います。認証を修復し、ステータスチェックを再実行し、その後に初めて再びレーンを信頼してください。

    ドキュメント化された終了コード契約の価値は、単なるスクリプトの手軽さではありません。共有された運用上の意味が生まれます。警告は警告です。失敗は失敗です。インターフェースがシンプルだからこそ、自動化もシンプルで済みます。

    要約

    OpenClaw のエージェントが OAuth 対応のプロバイダーに依存しているなら、認証の監視はセットアップの「後付け」ではなく、デフォルトの一部として組み込むべきです。ドキュメントには、きれいな運用シーケンスが示されています:

    • ポータブルなスケジュール監視には openclaw models status --check を使う
    • 警告と失敗を分けるために、ドキュメント化された終了コードを使う
    • 文脈が必要なときは openclaw models status と --json を使う
    • ライブでの検証を意図的に行いたいときだけ --probe を使う
    • システムd や電話向けのワークフローが必要な場合に限り、オプションのスクリプトに手を伸ばす

    これで、認証が「健康(healthy)」から「なぜか不安定(mysteriously unreliable)」へ静かにズレていく前に、期限切れの兆候を掴めます。そしてそれこそが、エージェント運用を健全に保つ、退屈だけれど予防的な作業です。

    完全版のガイドが欲しいですか? ClawKit を入手 — $9.99

    もともとは https://www.openclawplaybook.ai/blog/openclaw-auth-monitoring-catch-expired-oauth/ で公開されました

    OpenClaw Playbook を入手 → https://www.openclawplaybook.ai?utm_source=devto&utm_medium=article&utm_campaign=parasite-seo