- Anthropic API キー: 通常の Anthropic API 課金。
- Anthropic Claude CLI / OpenClaw 内のサブスクリプション認証: Anthropic スタッフから、この利用は再び許可されていると伝えられたため、Anthropic が新しいポリシーを公開しない限り、OpenClaw はこの連携における Claude CLI reuse と
claude -pの使用を認可済みとして扱います。本番環境の Anthropic では、API キー認証が引き続きより安全な推奨経路です。
openai の下に保存します。古い openai-codex:* プロファイル ID と auth.order.openai-codex エントリは、openclaw doctor --fix によって修復されるレガシー状態です。新しい設定では openai:* プロファイル ID と auth.order.openai を使用してください。
このページでは次を扱います。
- OAuth トークン交換 の仕組み(PKCE)
- トークンが 保存 される場所(およびその理由)
- 複数アカウント の扱い方(プロファイル + セッションごとの上書き)
トークンシンク(存在する理由)
OAuth プロバイダーは、ログインまたは更新のたびに新しい更新トークンを発行することが一般的です。一部のプロバイダーは、同じユーザー/アプリに対して新しい更新トークンが発行されると、以前の更新トークンを無効化します。実際の症状としては、OpenClaw と Claude Code / Codex CLI の両方でログインすると、後でどちらかがランダムにログアウトされます。 これを減らすために、OpenClaw は認証プロファイルストアを トークンシンク として扱います。- ランタイムはエージェントごとに 1 か所から認証情報を読み取る
- 複数のプロファイルは共存でき、決定論的にルーティングできる
- 外部 CLI の再利用はプロバイダー固有: OpenClaw がプロバイダーのローカル OAuth プロファイルを所有した後は、ローカル更新トークンが正規になります。そのローカル更新トークンが拒否された場合、OpenClaw は外部 CLI のトークン素材にフォールバックするのではなく、再認証対象としてプロファイルを報告します。Codex CLI ブートストラップはさらに狭く、OpenClaw がそのプロバイダーの OAuth を所有する前に、空の
openai:default形式のプロファイルを初期投入できるだけです。その後は、OpenClaw が所有する更新が正規のままです - ステータス/起動パスは、外部 CLI の検出範囲を、すでに設定済みのプロバイダー集合に限定します。そのため、単一プロバイダーのセットアップで無関係な CLI ログインストアは調査されません
ストレージ(トークンの保存先)
シークレットはエージェントごとに、論理名auth-profiles.json でキー付けされて保存されます(基盤となるストアはエージェントの SQLite データベースです。JSON 名は互換性とツール表示のために保持されています)。
- 認証プロファイル(OAuth + API キー + 任意の値レベル参照):
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - レガシー互換ファイル:
~/.openclaw/agents/<agentId>/agent/auth.json(静的なapi_keyエントリは検出時に消去されます)
~/.openclaw/credentials/oauth.json(初回使用時に認証プロファイルストアへインポートされます)
$OPENCLAW_STATE_DIR(状態ディレクトリの上書き)にも従います。完全なリファレンス: /gateway/configuration-reference#auth-storage
静的シークレット参照とランタイムスナップショットの有効化動作については、シークレット管理 を参照してください。
セカンダリエージェントにローカル認証プロファイルがない場合、OpenClaw はデフォルト/メインエージェントストアからの読み取り透過継承を使用します。読み取り時にメインエージェントのストアを複製することはありません。OAuth 更新トークンは特に機微です。一部のプロバイダーは使用後に更新トークンをローテーションまたは無効化するため、通常のコピー フローではデフォルトでそれらをスキップします。独立したアカウントが必要なエージェントには、別個の OAuth ログインを設定してください。
Anthropic Claude CLI reuse
OpenClaw は、認可済みの認証経路として Anthropic Claude CLI reuse とclaude -p をサポートしています。ホスト上に既存のローカル Claude ログインがある場合、オンボーディング/設定でそれを直接再利用できます。Anthropic setup-token は、サポートされるトークン認証経路として引き続き利用できますが、OpenClaw は利用可能な場合 Claude CLI reuse を優先します。
OAuth 交換(ログインの仕組み)
OpenClaw の対話型ログインフローはopenclaw/plugin-sdk/llm.ts に実装され、ウィザード/コマンドに接続されています。
Anthropic setup-token
フローの形:- OpenClaw から Anthropic setup-token または paste-token を開始する
- OpenClaw は結果の Anthropic 認証情報を認証プロファイルに保存する
- モデル選択は
anthropic/...のままにする - 既存の Anthropic 認証プロファイルは、ロールバック/順序制御のために引き続き利用できる
OpenAI Codex(ChatGPT OAuth)
OpenAI Codex OAuth は、OpenClaw ワークフローを含め、Codex CLI 外での使用が明示的にサポートされています。 ログインコマンドは正規の OpenAI プロバイダー ID を使用します。--profile-id openai:<name> を使用してください。新しいプロファイルに openai-codex:<name> は使用しないでください。Doctor はその古いプレフィックスを衝突しない openai:* プロファイル ID に移行します。修復後、プロファイル ID を auth.order または /model ...@<profileId> にコピーする前に、openclaw models auth list --provider openai を実行してください。
フローの形(PKCE):
- PKCE 検証子/チャレンジとランダムな
stateを生成する https://auth.openai.com/oauth/authorize?...を開く(スコープopenid profile email offline_access)http://localhost:1455/auth/callbackでコールバックの取得を試みる(コールバックホストのデフォルトはlocalhostで、loopback ホストのみを受け付けます。OPENCLAW_OAUTH_CALLBACK_HOSTで上書きできます)- コールバックが到着する前にコードを貼り付けられる場合(またはリモート/ヘッドレスでコールバックをバインドできない場合)は、代わりにリダイレクト URL/コードを貼り付ける - 手動貼り付けはブラウザーコールバックと競合し、先に完了した方が勝ちます
https://auth.openai.com/oauth/tokenでコードを交換する- アクセストークンから
accountIdを抽出し、{ access, refresh, expires, accountId }を保存する
openclaw onboard → 認証選択 openai です。
更新 + 有効期限
プロファイルはexpires タイムスタンプを保存します。ランタイムでは次のようになります。
expiresが未来の場合、保存済みアクセストークンを使用する- 期限切れの場合、(ファイルロック下で)更新し、保存済み認証情報を上書きする
- セカンダリエージェントが継承されたメインエージェントの OAuth プロファイルを読み取る場合、更新は更新トークンをセカンダリエージェントストアへコピーするのではなく、メインエージェントストアへ書き戻す
- 外部管理の CLI 認証情報(Claude CLI、狭い Codex CLI ブートストラップ。トークンシンク を参照)は、コピーされた更新トークンを消費するのではなく再読み取りされます。管理対象の更新が失敗した場合、OpenClaw は外部 CLI のトークン素材を返すのではなく、影響を受けたプロファイルを再認証対象として報告します。
複数アカウント(プロファイル)+ ルーティング
2 つのパターンがあります。1) 推奨: エージェントを分ける
「個人用」と「仕事用」を一切相互作用させたくない場合は、分離されたエージェント(別々のセッション + 認証情報 + ワークスペース)を使用してください。2) 高度: 1 つのエージェント内に複数プロファイル
認証プロファイルストアは、同じプロバイダーに対する複数のプロファイル ID をサポートします。どれを使用するかを選択します。- 設定の順序付け(
auth.order)によるグローバル指定 /model ...@<profileId>によるセッションごとの指定
/model Opus@anthropic:work
- モデルフェイルオーバー(ローテーション + クールダウン ルール)
- スラッシュコマンド(コマンドサーフェス)