OpenClaw รองรับ “การยืนยันตัวตนแบบสมัครสมาชิก” ผ่าน OAuth สำหรับผู้ให้บริการที่มีฟีเจอร์นี้ (โดยเฉพาะ OpenAI Codex (ChatGPT OAuth)) สำหรับ Anthropic การแบ่งในทางปฏิบัติ ตอนนี้คือ:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
- คีย์ API ของ Anthropic: การเรียกเก็บเงิน API ของ Anthropic ตามปกติ
- Anthropic Claude CLI / การยืนยันตัวตนแบบสมัครสมาชิกภายใน OpenClaw: เจ้าหน้าที่ Anthropic บอกเราว่าการใช้งานนี้ได้รับอนุญาตอีกครั้ง
- การแลกเปลี่ยนโทเค็น OAuth ทำงานอย่างไร (PKCE)
- โทเค็นถูก จัดเก็บ ที่ไหน (และเพราะอะไร)
- วิธีจัดการ หลายบัญชี (โปรไฟล์ + การแทนที่รายเซสชัน)
แหล่งรับโทเค็น (เหตุผลที่มีอยู่)
ผู้ให้บริการ OAuth มักสร้าง refresh token ใหม่ ระหว่างโฟลว์การเข้าสู่ระบบ/การรีเฟรช ผู้ให้บริการบางราย (หรือไคลเอนต์ OAuth บางตัว) อาจทำให้ refresh token เก่าใช้ไม่ได้เมื่อมีการออกตัวใหม่ให้ผู้ใช้/แอปเดียวกัน อาการที่พบในทางปฏิบัติ:- คุณเข้าสู่ระบบผ่าน OpenClaw และ ผ่าน Claude Code / Codex CLI → ภายหลังหนึ่งในนั้นถูก “ออกจากระบบ” แบบสุ่ม
auth-profiles.json เป็น แหล่งรับโทเค็น:
- รันไทม์อ่านข้อมูลรับรองจาก ที่เดียว
- เราสามารถเก็บหลายโปรไฟล์และกำหนดเส้นทางได้อย่างเป็นแบบแผน
- การใช้ CLI ภายนอกซ้ำขึ้นอยู่กับผู้ให้บริการ: Codex CLI สามารถเริ่มโปรไฟล์
openai-codex:defaultว่างได้ แต่เมื่อ OpenClaw มีโปรไฟล์ OAuth ในเครื่องแล้ว refresh token ในเครื่องจะเป็นแหล่งอ้างอิงหลัก; การผสานรวมอื่นยังคงให้ ระบบภายนอกจัดการและอ่าน auth store ของ CLI ซ้ำได้ - เส้นทางสถานะและการเริ่มต้นที่รู้ชุดผู้ให้บริการที่กำหนดค่าไว้อยู่แล้วจะจำกัดขอบเขต การค้นพบ CLI ภายนอกไว้ที่ชุดนั้น เพื่อไม่ให้ login store ของ CLI ที่ไม่เกี่ยวข้อง ถูกตรวจสอบสำหรับการตั้งค่าที่มีผู้ให้บริการเดียว
การจัดเก็บ (โทเค็นอยู่ที่ไหน)
ความลับถูกจัดเก็บใน auth store ของเอเจนต์:- โปรไฟล์ auth (OAuth + คีย์ API + refs ระดับค่าแบบเลือกได้):
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - ไฟล์ความเข้ากันได้แบบเดิม:
~/.openclaw/agents/<agentId>/agent/auth.json(รายการapi_keyแบบคงที่จะถูกลบออกเมื่อพบ)
~/.openclaw/credentials/oauth.json(นำเข้าไปยังauth-profiles.jsonเมื่อใช้งานครั้งแรก)
$OPENCLAW_STATE_DIR (การแทนที่ไดเรกทอรีสถานะ) อ้างอิงฉบับเต็ม: /gateway/configuration
สำหรับ secret refs แบบคงที่และพฤติกรรมการเปิดใช้งาน snapshot ตอนรันไทม์ ดู การจัดการความลับ
เมื่อเอเจนต์รองไม่มีโปรไฟล์ auth ในเครื่อง OpenClaw จะใช้การสืบทอดแบบอ่านผ่าน
จาก store ของเอเจนต์เริ่มต้น/หลัก โดยจะไม่โคลน auth-profiles.json ของเอเจนต์หลัก
เมื่ออ่าน OAuth refresh token มีความอ่อนไหวเป็นพิเศษ: โฟลว์การคัดลอกปกติจะข้ามค่าเหล่านี้
โดยค่าเริ่มต้น เพราะผู้ให้บริการบางรายจะหมุนเวียนหรือทำให้ refresh token ใช้ไม่ได้หลังใช้งาน
ให้กำหนดค่าการเข้าสู่ระบบ OAuth แยกต่างหากสำหรับเอเจนต์เมื่อจำเป็นต้องใช้บัญชีอิสระ
ความเข้ากันได้กับโทเค็นเดิมของ Anthropic
OpenClaw ยังเปิดเผย setup-token ของ Anthropic เป็นเส้นทาง token-auth ที่รองรับ แต่ตอนนี้จะเลือกใช้ Claude CLI ซ้ำและclaude -p ก่อนเมื่อพร้อมใช้งาน
การย้ายไปใช้ Anthropic Claude CLI
OpenClaw รองรับการใช้ Anthropic Claude CLI ซ้ำอีกครั้ง หากคุณมีการเข้าสู่ระบบ Claude ในเครื่องบนโฮสต์อยู่แล้ว onboarding/configure สามารถใช้ซ้ำได้โดยตรงการแลกเปลี่ยน OAuth (การเข้าสู่ระบบทำงานอย่างไร)
โฟลว์การเข้าสู่ระบบแบบโต้ตอบของ OpenClaw ถูกนำไปใช้ใน@earendil-works/pi-ai และเชื่อมเข้ากับวิซาร์ด/คำสั่ง
setup-token ของ Anthropic
รูปแบบโฟลว์:- เริ่ม setup-token ของ Anthropic หรือ paste-token จาก OpenClaw
- OpenClaw จัดเก็บข้อมูลรับรอง Anthropic ที่ได้ไว้ในโปรไฟล์ auth
- การเลือกโมเดลยังคงอยู่ที่
anthropic/... - โปรไฟล์ auth ของ Anthropic ที่มีอยู่ยังพร้อมใช้สำหรับการย้อนกลับ/การควบคุมลำดับ
OpenAI Codex (ChatGPT OAuth)
OpenAI Codex OAuth รองรับอย่างชัดเจนสำหรับการใช้งานนอก Codex CLI รวมถึงเวิร์กโฟลว์ของ OpenClaw รูปแบบโฟลว์ (PKCE):- สร้าง PKCE verifier/challenge +
stateแบบสุ่ม - เปิด
https://auth.openai.com/oauth/authorize?... - พยายามจับ callback ที่
http://127.0.0.1:1455/auth/callback - หาก callback ผูกไม่ได้ (หรือคุณอยู่บนรีโมต/ไม่มีหน้าจอ) ให้วาง redirect URL/code
- แลกเปลี่ยนที่
https://auth.openai.com/oauth/token - ดึง
accountIdจาก access token แล้วจัดเก็บ{ access, refresh, expires, accountId }
openclaw onboard → ตัวเลือก auth openai-codex
การรีเฟรช + การหมดอายุ
โปรไฟล์จัดเก็บ timestampexpires
ตอนรันไทม์:
- หาก
expiresอยู่ในอนาคต → ใช้ access token ที่จัดเก็บไว้ - หากหมดอายุ → รีเฟรช (ภายใต้ file lock) และเขียนทับข้อมูลรับรองที่จัดเก็บไว้
- หากเอเจนต์รองอ่านโปรไฟล์ OAuth ของเอเจนต์หลักที่สืบทอดมา การรีเฟรช จะเขียนกลับไปยัง store ของเอเจนต์หลักแทนการคัดลอก refresh token เข้าไปยัง store ของเอเจนต์รอง
- ข้อยกเว้น: ข้อมูลรับรอง CLI ภายนอกบางส่วนยังคงให้ระบบภายนอกจัดการ; OpenClaw
จะอ่าน auth store ของ CLI เหล่านั้นซ้ำแทนการใช้ refresh token ที่คัดลอกมา
การ bootstrap ของ Codex CLI ตั้งใจให้แคบกว่า: จะ seed โปรไฟล์
openai-codex:defaultว่าง จากนั้นการรีเฟรชที่ OpenClaw เป็นเจ้าของจะคงให้โปรไฟล์ ในเครื่องเป็นแหล่งอ้างอิงหลัก
หลายบัญชี (โปรไฟล์) + การกำหนดเส้นทาง
มีสองรูปแบบ:1) แนะนำ: แยกเอเจนต์
หากคุณต้องการให้ “ส่วนตัว” และ “งาน” ไม่โต้ตอบกัน ให้ใช้เอเจนต์ที่แยกกัน (เซสชัน + ข้อมูลรับรอง + workspace แยกกัน):2) ขั้นสูง: หลายโปรไฟล์ในเอเจนต์เดียว
auth-profiles.json รองรับ ID โปรไฟล์หลายรายการสำหรับผู้ให้บริการเดียวกัน
เลือกว่าจะใช้โปรไฟล์ใด:
- ทั่วทั้งระบบผ่านลำดับ config (
auth.order) - รายเซสชันผ่าน
/model ...@<profileId>
/model Opus@anthropic:work
openclaw channels list --json(แสดงauth[])
- การสลับโมเดลเมื่อขัดข้อง (กฎการหมุนเวียน + cooldown)
- คำสั่ง Slash (พื้นผิวคำสั่ง)
ที่เกี่ยวข้อง
- การยืนยันตัวตน - ภาพรวม auth ของผู้ให้บริการโมเดล
- ความลับ - การจัดเก็บข้อมูลรับรองและ SecretRef
- ข้อมูลอ้างอิงการกำหนดค่า - คีย์ config ของ auth