OpenClawのモデル認証
Gatewayホスト上のAPIキー、Claude CLIの再利用とセットアップトークン、認証プロファイル、キーのローテーション、そして期限切れが近いものを知らせるチェック
ドキュメントはこのページの冒頭に、繰り返す価値のある範囲の注記を置いています。このページが扱うのは、モデルプロバイダーの認証(APIキー、OAuth、Claude CLIの再利用、Anthropicのセットアップトークン)であり、Gatewayへの接続を守るトークンやパスワードではありません。OpenClawはプロバイダー向けにOAuthとAPIキーに対応しており、推奨ははっきりしています。常時稼働のGatewayホストには、APIキーが最も予測しやすい選択肢です。一方、サブスクリプションやOAuthのフローも、プロバイダーのアカウントに合っていれば機能します。ここでは、推奨のセットアップ、Anthropicの経路、認証情報の保存場所、その確認方法、ローテーション、そしてセッションが使う認証情報の選び方を紹介します。
推奨のセットアップ
- プロバイダーのコンソールでキーを作成し、Gatewayホスト(Gatewayを実行しているマシン)でexportして、models statusコマンドで確認します。
- Gatewayがsystemdやlaunchdの下で動いている場合は、デーモンが読めるように状態ディレクトリのenvファイルにキーを置き、再起動してから、models statusとdoctorで再度確認します。環境変数を管理したくない場合は、オンボーディングでデーモン用にキーを保存することもできます。
- Claude CLIの再利用はAnthropicが認めている経路で、ホストにClaudeのログインがある場合、ローカルやデスクトップでの利用ではこちらが推奨されます。Claude Codeにログインしてから、AnthropicのモデルをローカルのClaude CLIバックエンド経由でルーティングするようOpenClawに指示します。OpenClawがネイティブのログイントークンを読み取り、保存し、更新し、転送することは一切なく、インストールされたプロセスが自身のログインを更新します。また、サービスは自身のパス上で実行ファイルを解決できる必要があります。
- セットアップトークンは、もう1つのAnthropicの経路です。任意のマシンでClaude Codeが出力する長期間有効なトークンで、setup-tokenモードのauth loginコマンドでホストに保存します。これにはインタラクティブなターミナルが必要です。
常時稼働のgatewayホストには、APIキーが最も予測しやすい選択肢です。サブスクリプションやOAuthのフローも、プロバイダーのアカウントモデルに合っていれば機能します。
認証情報の保存場所
トークンの手動入力はどのプロバイダーでも使え、エージェントごとのSQLite認証ストアに書き込まれます。OpenClawが認証プロファイルを読み込むのはこのストアからです。ベースURL、APIの種類、モデルID、ヘッダー、タイムアウトといったエンドポイントの詳細は、プロファイルではなくプロバイダーの設定に置きます。JSONの認証ファイルを使う古いインストールは、doctorがタイムスタンプ付きのバックアップを取ってインポートします。BedrockのSDKモードのような外部の経路は、認証情報ではなく設定のメタデータです。キーとトークンの認証情報にはシークレット参照を使えますが、OAuthモードのプロファイルはシークレット参照を受け付けません。保存した認証を削除しても、プロバイダー側でキーが失効するわけではありません。また、Gatewayの実行中にコントロールプレーンからプロバイダーの認証を削除すると、そのプロバイダーで実行中の処理はauth-revokedという停止理由とともに中断されるため、クライアントは実行が止まった理由を表示できます。
確認、ローテーション、選択
- 確認に使うのはmodels statusとdoctorです。自動化向けに、checkフラグは認証情報が期限切れまたは存在しない場合に1で、期限切れが近い場合に2で終了します。probeフラグはスコープフラグとともに実際の認証プローブを実行し、認証順序によって除外されたプロファイル、認証はあってもプローブできるモデルがないプロバイダー、そして同じプロバイダーの他のモデルは使えるままにするモデル単位のレート制限クールダウンを報告します。
- 一部のプロバイダーは、レート制限されたリクエストを、設定済みの別のキーを使って固定の優先順位で再試行します。優先順位は、単一のライブ上書きキー、区切り文字で区切られたキーのリスト、通常のキー変数、そしてプレフィックス付きの任意のバリアントの順で、Googleのプロバイダーはさらに汎用のGoogleキーにもフォールバックします。ローテーションが発生するのはレート制限、クォータ、too-many-requestsのエラーの場合だけで、プロバイダー固有のスロットリングの文言は、代わりに別のフェイルオーバー分類を動かします。
- OpenAIのAPIキーのプロファイルも、ChatGPTやCodexのOAuthプロファイルも、正規のOpenAIのIDを使い、doctorは旧来のCodexのプロファイルIDと認証順序のエントリーを書き換えます。1つのプロバイダーに対する複数のログインはプロファイルIDによって別々に保たれ、forceフラグは動かなくなったプロファイルや誤ったアカウントのプロファイルを削除してフローを再実行します。セッションは、modelコマンドとプロファイルのサフィックスで特定の認証情報を固定でき、エージェントごとのauth-orderコマンドで自動選択を取得、設定、クリアできます。
Claudeで使うOpenClawとChatGPTのサブスクリプションで使うOpenClawは、このページがAPIキーとは区別している2つのサブスクリプションの経路です。
失敗したとき
「No credentials found」は、キーがGatewayホストにないか、setup-tokenの手順が一度も実行されていないことを意味し、修正できたかはmodels statusで確認できます。トークンの期限切れが近い、または期限切れになったことも同じstatusに表示され、セットアップトークンで更新するか、APIキーに置き換えます。newとresetのコマンドは自動フォールバックとローテーションの状態をクリアしますが、有効な明示的プロファイルの固定は保持します。認証順序を変更しても、変わるのは自動選択だけです。OpenClawのモデルフェイルオーバーは、失敗が繰り返されたときにモデルやプロバイダーを切り替える、キーのローテーションとは別の仕組みで、OpenClawのシークレットはキーとトークンの参照が使う参照構文です。
Dialiでは
Dialiでは、持ち込んだキーはVaultに保存され、Dialiが生成する設定がそれを参照します。キーがない場合、アシスタントはマネージドのAIクレジットで動作し、どちらが使われているかはダッシュボードに表示されます。すでに契約しているChatGPT、SuperGrok、MiniMaxのプランで動かすこともできます。ダッシュボードにワンタイムコードが表示され、プロバイダー自身のページで承認すると、サインインはアシスタント自身が保持するため、Dialiがトークンを持つことはありません。AnthropicのセットアップトークンとClaude CLIによるサインインは、Anthropicの規約がホスト型サービスでのClaudeサブスクリプションの利用を認めていないため、Dialiでは無効になっています。代わりにAnthropicのAPIキーかマネージドクレジットをご利用ください。アシスタントについてはDialiのマネージドOpenClawホスティングを、キーの背後にあるプロバイダーについてはOpenClawのモデルとプロバイダーをご覧ください。
- 常時稼働のGatewayには、ホスト上のAPIキーを。
- 認証プロファイルはSQLiteに、エンドポイントは設定に。
- レート制限にはローテーション、それ以外にはフェイルオーバー。
読むだけでなく、作ってみましょう
エージェントを設定してチャネルを選べば、いつも開いているアプリの中でエージェントが働き始めます。
