- Anthropic API 金鑰:一般 Anthropic API 計費。
- OpenClaw 內的 Anthropic Claude 命令列介面/訂閱驗證:Anthropic 員工
告訴我們這種用法再次被允許,因此 OpenClaw 會將 Claude 命令列介面重用和
claude -p用法視為此整合的受允許用法,除非 Anthropic 發布新政策。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 命令列介面登入,之後其中一個會隨機被登出。 為了降低這種情況,OpenClaw 將驗證設定檔儲存區視為權杖匯集點:- 執行階段會從每個代理的一個位置讀取憑證
- 多個設定檔可以共存並以可預測方式路由
- 外部命令列介面重用是提供者特定的:一旦 OpenClaw 擁有某提供者的本機 OAuth
設定檔,本機重新整理權杖就是正式來源。如果該本機重新整理權杖遭拒,
OpenClaw 會回報該設定檔需要重新驗證,而不是退回使用外部命令列介面權杖材料。
Codex 命令列介面啟動更狹窄:它只能在 OpenClaw 尚未擁有該提供者的 OAuth
之前,為空的
openai:default風格設定檔播種;之後,OpenClaw 擁有的重新整理會維持正式來源 - 狀態/啟動路徑會將外部命令列介面探索範圍限制在已設定的提供者集合, 因此單一提供者設定不會探查無關的命令列介面登入儲存區
儲存(權杖所在位置)
密鑰依代理儲存,並以邏輯名稱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 命令列介面重用
OpenClaw 支援 Anthropic Claude 命令列介面重用和claude -p 作為受允許的
驗證路徑。如果主機上已有本機 Claude 登入,
onboarding/configure 可以直接重用它。Anthropic setup-token 仍然
可作為受支援的權杖驗證路徑,但 OpenClaw 會在可用時偏好 Claude 命令列介面
重用。
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 明確支援在 Codex 命令列介面之外使用,包括 OpenClaw 工作流程。 登入命令使用正式 OpenAI 提供者 ID:--profile-id openai:<name>。
不要對新設定檔使用 openai-codex:<name>。Doctor 會將該較舊前綴遷移到
不會衝突的 openai:* 設定檔 ID;修復後請先執行
openclaw models auth list --provider openai,再將設定檔 ID 複製到
auth.order 或 /model ...@<profileId>。
流程形狀(PKCE):
- 產生 PKCE verifier/challenge 和隨機
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 設定檔, 重新整理會寫回主要代理儲存區,而不是將重新整理權杖複製到次要代理儲存區
- 外部管理的命令列介面憑證(Claude 命令列介面、狹窄的 Codex 命令列介面啟動; 請參閱權杖匯集點)會重新讀取,而不是花費複製的重新整理權杖。 如果受管理的重新整理失敗,OpenClaw 會回報受影響的設定檔需要重新驗證, 而不是回傳外部命令列介面權杖材料。
多個帳號(設定檔)+ 路由
兩種模式:1) 偏好方式:分開代理
如果你希望「個人」和「工作」永不互動,請使用隔離代理(分開的工作階段 + 憑證 + 工作區):2) 進階:同一代理中的多個設定檔
驗證設定檔儲存區支援同一提供者的多個設定檔 ID。 選擇要使用哪一個:- 透過設定排序全域指定(
auth.order) - 透過
/model ...@<profileId>逐工作階段指定
/model Opus@anthropic:work