Get started
การออกแบบขั้นตอนเริ่มต้นใช้งานใหม่
แผนการดำเนินงานออกแบบการเริ่มต้นใช้งานใหม่
เอกสารที่ปรับปรุงอย่างต่อเนื่อง หน้านี้ติดตามการออกแบบการเริ่มต้นใช้งานของผู้ดูแลระบบใหม่ใน ระดับการดำเนินงาน และจะอัปเดตเมื่อแต่ละระยะเสร็จสิ้น เมื่อผสานระยะสุดท้ายแล้ว หน้านี้จะถูกเขียนใหม่เป็นคู่มือการเริ่มต้นใช้งานสำหรับผู้ใช้และเพิ่มลงในการนำทาง ของเอกสาร โดยตั้งใจไม่ให้อยู่ใน
docs.jsonจนกว่าจะถึงเวลานั้น
เป้าหมายหลัก
ผู้ใช้ที่ไม่มีความรู้ด้านเทคนิคพิมพ์ openclaw onboard (หรือเปิดแอป) และได้รับการต้อนรับ
จากตัวตนในการสนทนาเพียงหนึ่งเดียว — OpenClaw ผู้ดูแลระบบ ("custodian" เป็น
ชื่อภายในเท่านั้น ผู้ใช้จะเห็น "OpenClaw" เสมอ) — ซึ่งค้นหา AI ของผู้ใช้
ตั้งค่าทุกอย่างด้วยค่าเริ่มต้นที่แจ้งให้ทราบแทนการถามคำถาม ฟักเอเจนต์ของผู้ใช้
ให้เป็นช่วงเวลาที่มองเห็นการถือกำเนิดของอัตลักษณ์ และหลังจากนั้นยังคงติดต่อได้ตลอดไปในฐานะ
ผู้ดูแลระบบ ทำงานราวกับเวทมนตร์โดยค่าเริ่มต้น มีขอบเขตการยินยอมเพียงจุดเดียว และไม่มีทางตัน
หลักการออกแบบ (ตัดสินใจแล้ว อย่ารื้อประเด็นขึ้นมาถกใหม่โดยไม่จำเป็น):
- ค่าเริ่มต้นที่แจ้งให้ทราบและย้อนกลับได้ง่าย แทนที่คำถามที่ขัดขวางขั้นตอน ข้อกำหนด ที่จำเป็นจริง ๆ มีเพียงการอนุมานที่ใช้งานได้ ส่วนอื่นทั้งหมดเป็นเพียงข้อเสนอ
- คำถามข้อศูนย์คือขอบเขตการยินยอม: "Full access" (แนะนำ) หมายถึง การค้นหาจะทำงานโดยไม่แจ้งและโดยอัตโนมัติ ส่วน "Ask first" จะกำหนดให้การค้นหาทุกประเภท — ทั้งการ สแกน AI การสแกนแอป และการสแกนแหล่งหน่วยความจำ — ต้องผ่านคำยินยอม อย่างชัดเจนเพียงครั้งเดียว พร้อมเส้นทางแบบดำเนินการเองทั้งหมดที่ไม่ทำการสแกนเลย
- การสนทนาเป็น UI ที่เพิ่มความสามารถอย่างต่อเนื่อง: พื้นผิวของผู้ดูแลระบบ พร้อมใช้งานก่อนที่ AI ใด ๆ จะทำงาน (บทสนทนาตามสคริปต์) เปลี่ยนเป็นการทำงานด้วยโมเดล ทันทีที่ยืนยันเส้นทางได้ และแจ้งเรื่องนี้อย่างชัดเจน ระบบจะไม่แสร้งว่ามีความฉลาด: การป้อนข้อความอิสระก่อนยืนยันเส้นทางจะได้รับข้อความอย่างนุ่มนวลว่า "ขอให้ฉัน ทำให้สมองพร้อมใช้งานก่อน"
- การฟักคือพิธีการ: ใช้เธรดเดิม สลับอวาตาร์ เอเจนต์ตั้งชื่อให้ตัวเอง และเลือกใบหน้าของตัวเอง ผู้ดูแลระบบจะอธิบายลำดับชั้นเพียงครั้งเดียวว่า: "ถามฉัน เกี่ยวกับระบบ หรือถามเอเจนต์ของคุณได้เลย — เอเจนต์จะส่งต่อให้"
- ความเชื่อถือแบ่งระดับตามแหล่งที่มา: รายการจากแค็ตตาล็อกอย่างเป็นทางการอาจถูกเลือกไว้ล่วงหน้า Skills จาก ClawHub ของบุคคลที่สามจะไม่ถูกเลือกไว้ล่วงหน้าไม่ว่าโมเดล จะจัดอันดับอย่างไร และป้ายกำกับจะระบุว่ารายการเหล่านี้ติดตั้งโค้ดของผู้เผยแพร่
- การติดตั้งที่กำหนดค่าแล้วถือเป็นสิ่งที่ต้องรักษาไว้: การเรียกใช้การเริ่มต้นใช้งานซ้ำเป็นขั้นตอน การยืนยันเท่านั้น ระบบจะไม่ใช้การตั้งค่าซ้ำและไม่รีสตาร์ตบริการ Gateway
- เทอร์มินัลเป็นทางเลือกสำรอง ไม่ใช่คำถาม: เลือกใช้แดชบอร์ดในเบราว์เซอร์ เมื่อเข้าถึง Gateway ได้ และห้ามถามว่า "เทอร์มินัลหรือเบราว์เซอร์?"
- โมเดลที่มีความสามารถจำกัดจะได้รับพื้นผิวที่ลดทอนลง (อัตโนมัติ
localModelLean) พร้อมคำอธิบาย ด้วยภาษาทั่วไป — ห้ามอธิบายในแง่ของเครื่องมือ โหมดโค้ด หรือหน้าต่างบริบท
ขั้นตอนที่เผยแพร่ในปัจจุบัน (หลังระยะ 1-3)
openclaw onboard บนการติดตั้ง macOS ใหม่ตามเส้นทางที่ราบรื่น — กด Enter ทั้งหมดสี่ครั้ง:
- หมายเหตุด้านความปลอดภัย → กด Enter หนึ่งครั้งเพื่อรับทราบ (บันทึกไว้ และไม่ถามอีก)
- คำถามข้อศูนย์: "How should I set things up?" — Full access (recommended)
หรือ Ask first บันทึกเป็น
wizard.accessMode; การเรียกใช้ซ้ำจะใช้ตัวเลือกที่บันทึกไว้ เป็นค่าเริ่มต้น โหมด Guarded + "configure manually" จะไปยังตัวเลือกผู้ให้บริการโดยไม่ สแกนใด ๆ และข้ามการสแกนแหล่งหน่วยความจำด้วย - การแสดงขั้นตอนการค้นหา: ตรวจพบ CLI สำหรับการเขียนโค้ด คีย์สภาพแวดล้อม และรันไทม์ในเครื่อง; กล่าวแทรกอย่างเป็นกันเองเมื่อพบเอเจนต์เขียนโค้ด; ทดสอบตัวเลือกจริงตามลำดับและ รวบรวมความล้มเหลวไว้เบื้องหลังอย่างเงียบ ๆ เป็นบรรทัดสรุปเดียว (รายละเอียดอยู่หลัง "See other options") เส้นทางแรกที่ใช้งานได้จะถูกประกาศเป็นค่าเริ่มต้น พร้อมเส้นทางแบบกดปุ่มเดียว ไปยังตัวเลือกทั้งหมด การสำรวจตัวเลือกและการข้ามจะยังคงใช้เส้นทางที่ใช้งานได้
- ข้อเสนอให้นำเข้าหน่วยความจำ (Claude Code / Codex / Hermes) โดยข้ามขั้นตอนนี้เมื่อปฏิเสธ การค้นหา
- เฉพาะการติดตั้งใหม่: ใช้แผนการตั้งค่ามาตรฐานโดยอัตโนมัติ (พื้นที่ทำงาน บริการ Gateway เซสชัน — แผนเดียวกับที่การตอบ "yes" ในการสนทนา เรียกใช้) การติดตั้งที่กำหนดค่าแล้วจะแสดง "already set up" และไม่แตะต้อง บริการ
- คำแนะนำแอป: แอปที่ติดตั้งจะถูกจับคู่โดยโมเดลที่ผ่านการยืนยัน
กับแค็ตตาล็อกอย่างเป็นทางการ + ClawHub; Plugin ช่องทางอย่างเป็นทางการจะถูกเลือกไว้
ล่วงหน้า ส่วน Skills ของบุคคลที่สามต้องเลือกเข้าร่วมพร้อมป้ายเตือน ข้ามได้;
สวิตช์ปิดการทำงาน
wizard.appRecommendations - การฟัก: เมื่อเข้าถึง Gateway ได้ การส่งต่อไปยังเบราว์เซอร์จะเปิดขึ้น (GUI) หรือ
แสดง URL ของแดชบอร์ด (headless/SSH) และรอให้ Control UI
เชื่อมต่อ — "Dashboard connected — continuing in your browser." หากไม่สามารถทำได้ หรือ
ใช้
--tuiระบบจะเปิด TUI ของเทอร์มินัลโดยใส่ข้อความการฟักสำหรับเริ่มต้นระบบ ไว้ล่วงหน้า และเอเจนต์จะแนะนำตัว
การเริ่มต้นใช้งาน Gateway ระยะไกลยังคงใช้การส่งต่อผ่านการสนทนาแบบเดิม
(handoffMode: "chat"); ต้องใช้การตั้งค่าบน Gateway ระยะไกล
ระยะต่าง ๆ
| # | ระยะ | พื้นผิว | สถานะ |
|---|---|---|---|
| 1 | คำแนะนำ Plugin สำหรับแอปที่ติดตั้ง (การสแกน ตัวเลือก ระบบจับคู่ AI ขั้นตอนวิซาร์ด คำสั่ง Node device.apps) |
CLI แบบคลาสสิก + แบบมีคำแนะนำ | ผสานแล้ว (#109668) |
| 2 | แกนหลักของผู้ดูแลระบบใน CLI (คำถามข้อศูนย์ การแสดงขั้นตอนการค้นหา การใช้ค่าอัตโนมัติ + การฟัก) | CLI แบบมีคำแนะนำ | ผสานแล้ว (a83ed13204f1) |
| 3 | การส่งต่อโดยให้เบราว์เซอร์เป็นอันดับแรก (การตรวจหาเซสชัน GUI การรอการเชื่อมต่อแดชบอร์ด ใช้ TUI เป็นทางเลือกสำรอง) | CLI → เว็บ | ผสานแล้ว (#110054) |
| 4 | พื้นผิวผู้ดูแลระบบบนเว็บ (การ์ดตัวเลือก ฟิลด์ question แบบมีชนิดบน openclaw.chat การสะท้อนขั้นตอนวิซาร์ด การส่งต่อเมื่อเรียกใช้ครั้งแรก) |
Control UI | ผสานแล้ว (#110141, #110242) |
| 5 | การฟักและการเริ่มต้นระบบ (พื้นที่จัดเก็บคำแนะนำที่มีความหมายแบบครั้งเดียว ลำดับการถือกำเนิดโดยตั้งชื่อเอง การส่งต่อการฟักอัตโนมัติหลังการตั้งค่าใหม่; เลื่อนลำดับขั้นอวาตาร์ออกไป) | การเริ่มต้นระบบของเอเจนต์ | ผสานแล้ว (#110173, #110331) |
| 6 | การปรากฏตัวของผู้ดูแลระบบ PR1 (รายการที่ปักหมุดในแถบด้านข้าง Ask OpenClaw ใน Settings คำทักทายของผู้ดูแลในหน้าตามาตรฐาน; ความเห็นต่อเหตุการณ์และการเรียกผ่านช่องทางอยู่ใน PR2) | เว็บ + ช่องทาง | ผสานแล้ว (#110269) |
| 7 | ความยืดหยุ่นต่อข้อผิดพลาด (ยังติดต่อผู้ดูแลระบบได้เมื่อการกำหนดค่าเสียหาย กู้คืนพื้นผิวบางส่วน auto-doctor) | Gateway | งานติดตามผล |
หมายเหตุการดำเนินงานในแต่ละระยะ
ระยะ 1 — คำแนะนำแอป (PR #109668)
- ตัวสแกน:
src/infra/installed-apps.ts(การแจกแจง macOS ที่ไม่ใช้ TCC; ติดตาม บันเดิล.appที่เชื่อมโยงด้วย symlink) - ตัวเลือก: แค็ตตาล็อกอย่างเป็นทางการ + การค้นหา ClawHub มีกรอบเวลารวม 20s และลดระดับ
เป็นตัวเลือกเฉพาะจากแค็ตตาล็อกอย่างราบรื่นเมื่อออฟไลน์ รายการแค็ตตาล็อกคือไฟล์กำกับแพ็กเกจ
ที่ไม่มี
idระดับบนสุด — ตัวเลือกใช้รหัส Plugin ที่แก้ไขแล้ว เป็นคีย์ (ทดสอบการถดถอยกับแค็ตตาล็อกที่รวมมาจริง; การใช้entry.idเป็นคีย์เคยทำให้ทั้งแค็ตตาล็อกยุบรวมเป็นรายการเดียวและทำให้คำแนะนำอย่างเป็นทางการ ทุกคำแนะนำหายไป) - ระบบจับคู่ AI: การตอบสมบูรณ์หนึ่งครั้งบนเส้นทางที่ผ่านการยืนยัน
(
src/system-agent/setup-app-recommendations.ts); ไม่มีแผนที่ bundle-id ที่คัดสรรไว้ — โมเดลจะปฏิเสธชื่อที่ตรงกันโดยบังเอิญ เอาต์พุตถูกจำกัดด้วยงบประมาณmaxTokensของโมเดลที่แก้ไขแล้วเอง (เลเยอร์สตรีมจะใช้ค่านี้เมื่อไม่มีการส่งเพดานที่ชัดเจน) - กลไกป้องกันซัพพลายเชน: ข้อความรายการ ClawHub ถูกควบคุมโดยผู้เผยแพร่และ ส่งไปถึงพรอมต์ของระบบจับคู่ ดังนั้นรายการหนึ่งจึงสามารถโปรโมตตัวเองเป็น "recommended" ได้ เฉพาะรายการจากแค็ตตาล็อกอย่างเป็นทางการเท่านั้นที่เลือกไว้ล่วงหน้าได้ ส่วน Skills ของ ClawHub ต้องได้รับการทำเครื่องหมายเลือกอย่างชัดเจนเสมอ และติดป้ายว่า "third-party ClawHub skill; installs its publisher's code"
- คำสั่ง Node
device.apps(โฮสต์ Node แบบ TS, เทียบเท่ากับ envelope ของ Android) ปิดการแชร์ โดยค่าเริ่มต้น; สวิตช์ปิดการทำงานของ Gatewaywizard.appRecommendations - การส่งมอบอยู่ในวิซาร์ดแบบคลาสสิกและขั้นตอนผู้ดูแลระบบแบบมีคำแนะนำ
(
src/wizard/setup.app-recommendations.ts); การเปลี่ยนเป้าหมายไปยังส่วนท้ายของการเริ่มต้นระบบ ยังคงเป็นระยะ 5 (บริการรองรับแหล่งสินค้าคงคลังที่ฉีดเข้ามาได้อยู่แล้ว) ความหมายแบบครั้งเดียว (เสนอจนกว่าจะยอมรับเท่านั้น และจัดเก็บผลการสแกน) จะมาพร้อมพื้นที่จัดเก็บในระยะ 5 เช่นกัน; ปัจจุบันการเรียกใช้ซ้ำจะเสนออีกครั้ง - แก้ไขเพิ่มเติม: พรอมต์
completeSetupInferenceแบบกำหนดเองจะไม่สืบทอด เพดานเอาต์พุต 32-token ของโพรบตรวจสอบอีกต่อไป (SETUP_INFERENCE_TEST_MAX_TOKENSใช้กับโพรบ "reply OK" เท่านั้น)
ระยะ 2 — แกนหลักของผู้ดูแลระบบใน CLI (PR #109841)
- ปรับขั้นตอนใหม่ใน
src/commands/onboard-guided.ts; การเริ่มต้นใช้งาน Gateway ระยะไกล ยังคงใช้การส่งต่อแชตแบบเดิมผ่านhandoffMode: "chat" - คำถามข้อศูนย์บันทึก
wizard.accessMode("full" | "guarded"); การเรียกใช้ซ้ำ ใช้ตัวเลือกที่บันทึกไว้เป็นค่าเริ่มต้น (การยอมรับค่าเริ่มต้นจะไม่มีทางลดระดับจาก guarded เป็น full โดยไม่แจ้ง) Guarded + ดำเนินการเองใช้listManualSetupInferenceOptions(เฉพาะการกำหนดค่า/ไฟล์กำกับ ไม่มีการตรวจสอบ) และข้ามการสแกนแหล่งหน่วยความจำ - การค้นหา: รวบรวมความล้มเหลวอย่างเงียบ ๆ (บรรทัดสรุปเดียว; รายละเอียดอยู่หลัง "See other options") ข้อความแทรกเกี่ยวกับเอเจนต์เขียนโค้ด ค่าเริ่มต้นของเส้นทางที่แจ้งให้ทราบ จำนวน เซสชันในข้อความแทรกถูกเลื่อนออกไป (ใช้เฉพาะคำอธิบายเชิงคุณภาพ) จนกว่าจะมีช่องทาง นับเซสชันที่มีต้นทุนต่ำ
- การติดตั้งใหม่:
applySystemAgentSetup(การตอบ "yes" ในการสนทนาแบบกำหนดแน่นอน) จากนั้นฟักผ่านlaunchTuiCliซึ่งใส่ข้อความเริ่มต้นระบบไว้ล่วงหน้า การติดตั้งที่กำหนดค่าแล้ว (มีโมเดลหรือการกำหนดค่า Gateway อยู่ก่อน — การประทับเวลา ของวิซาร์ดพิสูจน์อะไรไม่ได้ เพราะใช้ร่วมกับ configure/doctor): ยืนยันเท่านั้น — ไม่ใช้การตั้งค่า และไม่รีสตาร์ตบริการ Gateway หากใช้การตั้งค่าล้มเหลว จะย้อนกลับไปใช้แชตแบบสนทนา
ระยะ 3 — การส่งต่อโดยให้เบราว์เซอร์เป็นอันดับแรก (PR #110054, ผสานแล้ว)
src/commands/onboard-browser-handoff.tsรับผิดชอบเฉพาะการตรวจหาเซสชันกราฟิก (SSH_CONNECTION/SSH_TTY;DISPLAY/WAYLAND_DISPLAYบน Linux) และการรอ GUI 60 วินาที / SSH 300 วินาที ขณะนี้การเริ่มต้นใช้งานแบบมีคำแนะนำ เปิดใช้การส่งต่อเฉพาะบน macOS ส่วน--tuiและแพลตฟอร์มอื่นยังคงมี ทางออกผ่านเทอร์มินัล การเปิดใช้บน Linux/Windows เป็นงานติดตามผล- ลิงก์ Dashboard ใช้ตัวช่วย
resolveAdvertisedControlUiLinks,resolveLocalControlUiProbeLinksและbuildOnboardingControlUiUrlชุดเดียวกัน กับการเสร็จสิ้นแบบคลาสสิก การเปิดเบราว์เซอร์ใช้ตัวช่วยopenUrlที่ใช้ร่วมกัน - การตรวจสอบความพร้อมจะสำรวจ RPC
system-presenceที่มีอยู่ในฐานะ ไคลเอนต์ลูปแบ็ก โหมด CLI ซึ่งแสดงข้อมูลลับที่ใช้ร่วมกันตามที่กำหนดค่าไว้ — เส้นทางที่เชื่อถือได้ซึ่งทุกคำสั่งopenclawใช้ ไคลเอนต์ Control UI ที่ใช้การยืนยันตัวตนร่วมกันแบบดิบจะถูกปฏิเสธ ด้วยข้อความ "ต้องระบุตัวตนอุปกรณ์" บน Gateway ที่ใช้ SecretRef การตรวจสอบล่วงหน้า ด้านการเข้าถึงจะแก้ไขไปยังเป้าหมายเดียวกัน (และข้อมูลลับเดียวกัน) กับลูปการรอ ดังนั้น เกตและการรอจึงไม่มีทางเห็นต่างกันเรื่องการยืนยันตัวตน การส่งต่อจะเสร็จสมบูรณ์เฉพาะ เมื่อแถวสถานะการเชื่อมต่อopenclaw-control-ui/webchatเป็นรายการใหม่ เมื่อเทียบกับเส้นฐานก่อนเปิด (Dashboard ที่เปิดอยู่แล้วไม่สามารถ ทำให้เสร็จสมบูรณ์ได้) gateway.controlUi.enabled: falseจะลัดวงจรก่อนแสดง URL ใด ๆ- พิสูจน์การทำงานตั้งแต่ต้นจนจบกับ Gateway ที่แยกออกมาและใช้การกำหนดค่าเดียวกันแล้ว: พิมพ์ URL → เบราว์เซอร์จริง เชื่อมต่อ → "เชื่อมต่อ Dashboard แล้ว — ดำเนินการต่อในเบราว์เซอร์" → ไม่มี ทางออกผ่านเทอร์มินัล การค้างก่อนหน้านี้จาก "โทเค็นไม่ตรงกัน" เป็นสิ่งแปลกปลอมจาก ชุดทดสอบ — ดูคู่มือการทดสอบด้านล่าง
ระยะที่ 4 — พื้นผิวเว็บของผู้ดูแล (ผสานแล้ว: #110141, #110242)
- หน้า
/custodianบนopenclaw.chatพร้อมคอมโพเนนต์การ์ดตัวเลือก (2-4 การ์ด, แนะนำได้สูงสุดหนึ่งรายการ, ข้ามได้เสมอ); กรอบการเริ่มต้นใช้งานผ่าน?onboarding=1; เมื่อการตั้งค่าโมเดลสำหรับการใช้งานครั้งแรกเสร็จสิ้นจะส่งต่อเข้ามาที่นี่ - คำถามแบบมีโครงสร้างเป็นฟิลด์
questionแบบมีชนิดและเพิ่มเติมได้บนSystemAgentChatResult(ข้อความreplyแยกตามตัวเลือก; ข้อความร้อยแก้วยังคงแยกเดี่ยวเสมอ สำหรับแอป macOS/TUI) ผู้สร้าง: ทั้งสองรูปแบบข้อความต้อนรับการเริ่มต้นใช้งานและ ขั้นตอนเลือก/ยืนยันของวิซาร์ดที่โฮสต์ไว้ซึ่งมีตัวเลือกแบบปิด 2-4 รายการ — วิซาร์ดช่องทางจริง จะแสดงผลเป็นการ์ด วิธีแก้ชั่วคราวด้วยตัวทำเครื่องหมายสตริงของ PR1 ถูกลบแล้ว - ความเป็นเจ้าของเซสชันจำกัดขอบเขตตาม URL ของ Gateway + ข้อมูลรับรองทุกชนิดที่แสดง (โทเค็น, รหัสผ่าน, โทเค็นบูตสแตรป, โทเค็นอุปกรณ์ที่จัดเก็บ — คงอยู่แม้การทักทายขาดหาย ชั่วคราว); เทิร์นผู้ใช้ที่ล้มเหลวจะเล่นซ้ำไม่ได้; อินพุตที่ละเอียดอ่อน จะถูกส่งตามต้นฉบับทุกประการและปกปิดในทรานสคริปต์
ระยะที่ 5 — การฟักและบูตสแตรป (ผสานแล้ว: #110173, #110331)
- ผู้ดูแลสร้างเอเจนต์ที่ยังไม่มีชื่อ (เรียกใช้เครื่องมือ); บูตสแตรปของเอเจนต์
เริ่มด้วยการตั้งชื่อให้ตนเอง PR1 ส่งมอบพิธีการที่จำกัดไว้สามจังหวะ (ชื่อ → บรรทัดตัวตน
→ คำถาม Skills) และเลื่อนลำดับการสร้างอวาตาร์ด้วยตนเอง/การสร้างภาพ
(ตัวเลือกที่โมเดลสร้าง → เครื่องหมายสำเร็จรูป → ใช้โลโก้ต่อ) ไปเป็นงานติดตามผล ใช้
เธรดเดียวกันแต่สลับอวาตาร์; เครื่องหมายกรงเล็บสงวนไว้สำหรับผู้ดูแล ตัวตน
ที่ตกลงกันจะบันทึกไว้สองแห่ง: ใน
IDENTITY.md/SOUL.md(สิ่งที่เอเจนต์ อ่าน) และผ่านopenclaw agents set-identity(สิ่งที่ช่องทางและ UI แสดง) - คำแนะนำ (บริการระยะที่ 1, การสแกนที่จัดเก็บพร้อมความหมายว่าทำครั้งเดียว) จะอยู่
เป็นขั้นตอนบูตสแตรปสุดท้ายก่อนลบไฟล์บูตสแตรป: "ชุดขั้นต่ำ
หรือความสะดวกสูงสุด?" บูตสแตรปอ่านข้อเสนอที่จัดเก็บผ่าน
openclaw onboard recommendations --json(เฉพาะ ID การติดตั้งแบบทึบ) และยืนยันการรับทราบหลังจัดการตัวเลือกแล้ว เพื่อไม่ให้ถามซ้ำอีก ปุ่มเชื่อมต่อ ช่องทางมีคู่มือการตั้งค่าแยกตามช่องทาง; เอเจนต์รวบรวม ข้อมูลรับรองผ่านการสนทนาและส่งต่อการเขียนการกำหนดค่าไปยังผู้ดูแล ("กำลังถาม OpenClaw…" คือสำนวนมาตรฐาน) - การเรียนรู้ด้วยตนเองจะถูกถาม ไม่ใช่ประกาศ และถือเป็นความยินยอมต่อเวิร์กช็อป Skills ด้วย; อธิบายการตรวจสอบความน่าเชื่อถือของรีลีส การสแกน การยืนยัน และความสมบูรณ์ ของ ClawHub รวมถึงคำเตือนเรื่องโค้ดของผู้เผยแพร่ — ห้ามสื่อเป็นนัยว่าทุกรีลีสมีลายเซ็น
- การฟักอัตโนมัติส่งมอบแล้ว: การใช้การตั้งค่าหลังติดตั้งใหม่จะประกาศการฟักและ
ส่งต่อ (TUI ในเทอร์มินัล /
open-agentสำหรับไคลเอนต์ Gateway); หน้าเว็บ จะเข้าสู่แชตของเอเจนต์โดยกรอกร่างข้อความ "ตื่นได้แล้ว เพื่อนของฉัน!" ไว้ล่วงหน้า การส่งต่อจะทำงานเฉพาะเมื่อการยืนยันหลังเขียนผ่านอย่างสมบูรณ์ การเสนอทางเลือก เมื่อเหลือเอเจนต์ศูนย์ตัวหลังการลบ (แทนการทำโดยอัตโนมัติ) ยังคงเป็นงานปรับแต่งติดตามผล
ระยะที่ 6 — การปรากฏตัวของผู้ดูแล (PR1 ผสานแล้ว: #110269; คำบรรยาย/การเรียกใช้อยู่ใน PR2)
- สิ่งที่ส่งมอบใน PR1: รายการ "OpenClaw" ในแถบด้านข้างที่ปักหมุดโดยค่าเริ่มต้น (โปรไฟล์ใหม่;
ผู้ใช้เดิมจะคงหมุดที่บันทึกไว้และเข้าถึงได้ผ่าน customize/More), "ถาม
OpenClaw" เป็นรายการแรกใน Settings และการเยี่ยมชม
/custodianด้วยกรอบปกติ ซึ่งร้องขอคำทักทายจากผู้ดูแล (ไม่ใช้รูปแบบข้อความต้อนรับการเริ่มต้นใช้งาน) โดยแสดง Exit setup เฉพาะในโหมดการเริ่มต้นใช้งาน แผง Settings แบบอินไลน์ที่ยึดอยู่กับที่ ต้องแยกมุมมองการสนทนาที่ใช้ร่วมกันออกมา (งานติดตามผล) - คำบรรยายที่ตอบสนองต่อเหตุการณ์พร้อมข้อจำกัดป้องกัน Clippy: เฉพาะการเปลี่ยนแปลง ที่มีผลสำคัญหรือล้มเหลว และไม่เกินหนึ่งครั้งต่อการเยี่ยมชม Settings เว้นแต่มีการร้องขอ จุดเชื่อมเหตุการณ์เดียวกันทำให้ผู้ดูแลเป็นผู้แจ้งเรื่องการยืนยันตัวตนที่เสื่อมสภาพหรือ ช่องทางที่เสียหายในภายหลัง
- ช่องทาง: มองไม่เห็นในการใช้งานประจำวัน (เอเจนต์เป็นผู้ส่งต่อ); เข้าถึงได้โดยการ เรียกใช้อย่างชัดเจนและเมื่อเกิดเหตุการณ์เอเจนต์หยุดทำงานในเธรดเดียวกัน พร้อมชื่อและ อวาตาร์รูปกรงเล็บของตนเองในแพลตฟอร์มที่รองรับ
- ตรวจพบโมเดลที่อ่อนแอระหว่างการตั้งค่า: ตั้งค่า
localModelLeanโดยอัตโนมัติ และผู้ดูแลจะแจ้งด้วยภาษาตรงไปตรงมาพร้อมเสนอการอัปเกรด - ผู้ดูแลรู้ชื่อเล่นภายในของตน ("บางคนเรียกฉันว่าผู้ดูแล — เรียก OpenClaw ก็ได้") และเรียกเอเจนต์ด้วยชื่อเสมอ
ระยะที่ 7 — ความยืดหยุ่นต่อความล้มเหลว (ต้องมีการตัดสินใจจากเจ้าของก่อนสร้าง)
ภาพร่างเดิม — "ต้องเข้าถึงผู้ดูแลได้ไม่ว่าการกำหนดค่าจะเสียหายเพียงใด" — ขัดกับนโยบายความปลอดภัยของรีโป: คู่มือรากระบุว่า Gateway ปฏิเสธการเริ่มทำงาน เมื่อการกำหนดค่ามีโครงสร้างไม่ถูกต้อง และมีเพียงความล้มเหลวของเจ้าของ SecretRef เท่านั้นที่ลดระดับเป็นความสามารถ ที่กำหนดค่าไว้แต่ไม่พร้อมใช้งาน การให้บริการพื้นผิวใด ๆ จากการกำหนดค่าที่ไม่ถูกต้อง เป็นการเปลี่ยนนโยบาย ไม่ใช่รายละเอียดการนำไปใช้ มีสองขอบเขต ให้เลือกหนึ่งข้อ:
- ตัวเลือก A (แนะนำ, สอดคล้องกับนโยบาย): ตรวจแก้อัตโนมัติฝั่ง CLI เมื่อการเริ่ม
Gateway หรือ CLI ล้มเหลวเนื่องจากการกำหนดค่ารูปแบบที่รู้จักไม่ถูกต้อง CLI จะเสนอ
(หรือเมื่อได้รับความยินยอมก็เรียกใช้)
openclaw doctor --fixจากนั้นลองใหม่หนึ่งครั้งและ รายงานอย่างตรงไปตรงมา ไม่มีการเปลี่ยนแปลงพฤติกรรมของ Gateway; ผู้ดูแลยังคงเข้าถึงได้ ผ่านเส้นทาง SecretRef ที่ลดระดับอยู่แล้วและผ่านเทอร์มินัล - ตัวเลือก B (ต้องได้รับการอนุมัติอย่างชัดเจนจากเจ้าของ + การตรวจสอบความปลอดภัย): โหมด พื้นผิวขั้นต่ำของ Gateway เมื่อการกำหนดค่ามีโครงสร้างไม่ถูกต้อง ให้เริ่มพื้นผิว ที่จำกัดอย่างเข้มงวดซึ่งให้บริการเฉพาะการสนทนากับผู้ดูแลและการดำเนินการตรวจแก้ การดำเนินการนี้จะเขียนสัญญาการเริ่มทำงานแบบปิดเมื่อผิดพลาดขึ้นใหม่ และต้องกำหนด แนวทางป้องกันขาเข้าของตนเองก่อนเขียนโค้ดใด ๆ
งานติดตามผลที่เหลือจากระยะที่ 4-6 (ติดตามแล้ว, ยังไม่กำหนดเวลา): ลำดับอวาตาร์/การสร้างภาพ
สำหรับการฟัก; การแสดงผลฟิลด์ question แบบมีชนิดในแอป macOS; แผง
Settings แบบอินไลน์ที่ยึดอยู่กับที่สำหรับผู้ดูแล (ต้องแยกมุมมองการสนทนาที่ใช้ร่วมกัน
ออกมา); คำบรรยายที่ตอบสนองต่อเหตุการณ์และการเรียกผ่านช่องทาง/การกู้คืนเมื่อเอเจนต์หยุดทำงาน
(PR2 ของระยะที่ 6); localModelLean อัตโนมัติสำหรับโมเดลที่อ่อนแอ; และควรให้
หมุดแถบด้านข้างที่ผู้ใช้เดิมบันทึกไว้รับรายการ OpenClaw หรือไม่
คู่มือการทดสอบและการนำขึ้นระบบ (ได้มาด้วยความยากลำบาก; อ่านก่อนระยะที่ 4-6)
-
OPENCLAW_STATE_DIRไม่ได้แยกบริการ Gateway ออกจากกัน ป้ายกำกับ LaunchAgent (ai.openclaw.gateway) ใช้ร่วมกันทั้งเครื่อง: การทดสอบการเริ่มต้นใช้งาน หลังติดตั้งใหม่ด้วยไดเรกทอรีสถานะแยกจะเขียนทับและรีสตาร์ตบริการจริงของเครื่อง (สคริปต์ตัวห่อจะถูกวางไว้ในไดเรกทอรีแยก; การเริ่มบริการครั้งถัดไปจะเสียหาย เมื่อล้างไดเรกทอรีนั้น) หลังการทดสอบติดตั้งใหม่ทุกครั้ง ให้กู้คืนด้วยopenclaw gateway install --force && openclaw gateway restartจากสภาพแวดล้อมจริงและตรวจสอบ plist งานติดตามผลของผลิตภัณฑ์: ป้ายกำกับบริการที่จำกัดขอบเขตตามไดเรกทอรีสถานะ หรือให้การเริ่มต้นใช้งานตรวจพบบริการจากภายนอก -
ชุดทดสอบตั้งแต่ต้นจนจบที่ปลอดภัย: เติมส่วน
gatewayไว้ล่วงหน้า ในการกำหนดค่าแยก (เพื่อให้การเริ่มต้นใช้งานใช้เส้นทางการติดตั้งที่กำหนดค่าไว้และไม่แตะ บริการ) และเรียกใช้openclaw gateway runเป็นกระบวนการเบื้องหน้าปกติบน พอร์ตสำรองพร้อมโทเค็นธรรมดา ชุดทดสอบนั้นพิสูจน์ลูปของระยะที่ 3 รวมถึงการเชื่อมต่อด้วยเบราว์เซอร์จริง -
เส้นทางการยืนยันตัวตนแตกต่างกันตามตัวตนของไคลเอนต์ ไม่ใช่เพียงข้อมูลรับรอง การอ่านสถานะการเชื่อมต่อและข้อมูลผู้ปฏิบัติงานอื่นใช้ไคลเอนต์ลูปแบ็กโหมด CLI พร้อมข้อมูลรับรองจากการกำหนดค่าเดียวกัน Gateway ที่ใช้การยืนยันตัวตนด้วยโทเค็น ต้องใช้ข้อมูลลับที่ใช้ร่วมกัน; Gateway แบบ SecretRef/none สามารถถอยกลับไปใช้ การยืนยันตัวตนลูปแบ็กที่เชื่อถือได้โดยไม่มีโทเค็น ไคลเอนต์เบราว์เซอร์ที่ระบุตัวตน เป็น Control UI ต้องมีตัวตนอุปกรณ์หรือสิทธิ์ลูปแบ็กในบริบทที่ปลอดภัย โพรบที่ยืนยันตัวตนกับ Gateway ซึ่งให้บริการการกำหนดค่าที่แตกต่างกัน (ดูข้อผิดพลาดจาก LaunchAgent) จะล้มเหลวด้วยข้อความ "โทเค็นไม่ตรงกัน" — สิ่งแปลกปลอมนั้นทำให้ระยะที่ 3 ค้างอยู่ชั่วครู่
-
โพรบการเสร็จสมบูรณ์:
runSetupInferenceTestจำกัดโพรบการยืนยันไว้ที่ โทเค็นเอาต์พุต 32 รายการ; พรอมป์แบบกำหนดเองจะข้ามขีดจำกัดนี้และถูกจำกัดด้วยmaxTokensของโมเดลเอง โมเดลการให้เหตุผลจะใช้โควต้านั้นกับการให้เหตุผล ที่ซ่อนอยู่ก่อน — เทิร์นที่ไม่มีข้อความมักหมายความว่าโควต้าหมดไปตรงนั้น -
การนำเอเจนต์ขึ้นระบบต้องใช้ CI ที่โฮสต์ไว้บนเฮดที่ตรงกันทุกประการ เวิร์กโฟลว์
CIแบบหนักอาจไม่เข้าคิวเมื่อมีการพุชภายใต้ภาระขององค์กร; ทางเลือกสำรองสำหรับผู้ดูแลคือการสั่งรันเกตรีลีสบนสาขา PR:bash gh workflow run ci.yml --ref <branch> -f target_ref=<head-sha> -f release_gate=true -f pull_request_number=<pr>การรันต้องอยู่บน การอ้างอิงสาขาเพื่อให้
head_shaตรงกัน และชื่อเรื่องจะกลายเป็นCI release gate <sha>ซึ่งscripts/verify-pr-hosted-gates.mjsยอมรับ จากนั้นดำเนินการเตรียม/ผสานscripts/prตามปกติ -
เกตที่ CI บังคับใช้นอกเหนือจากการทดสอบแบบเจาะจง: แผนผังเอกสาร (
pnpm docs:map:genหลังเพิ่มหน้าเอกสารใด ๆ), oxlint (no-map-spread,max-lines— แยกไฟล์ ห้ามระงับ),check:test-types, โค้ดตายของ knip (ส่งออกเฉพาะสิ่งที่โค้ดโปรดักชันใช้; ให้การทดสอบผ่าน API สาธารณะ) และตัวจำแนกชาร์ดการทดสอบสด (test/scripts/test-live-shard.test.tsต้องระบุ*.live.test.tsใหม่ทุกรายการ)
บันทึกการตัดสินใจ
- สแกนแบบมหัศจรรย์พร้อมสวิตช์หยุด ไม่ใช่ขอความยินยอมก่อน (ระยะที่ 1; การเปิดเผย อยู่ในบรรทัดความคืบหน้าการสแกนและหมายเหตุผลลัพธ์)
- แนวดิ่งครบถ้วนรวมถึงคำสั่ง Node
device.apps(ระยะที่ 1) - Skills จาก ClawHub ของบุคคลที่สามจะไม่ถูกเลือกล่วงหน้าและมีป้ายกำกับว่า เป็นการติดตั้งโค้ดของผู้เผยแพร่; รายการอย่างเป็นทางการอาจถูกเลือกไว้ล่วงหน้า (ระยะที่ 1, ท่าทีด้านความปลอดภัยที่ส่งมอบแล้ว)
- การ์ดการเข้าถึงสองใบ ไม่ใช่สามใบ; วางความยินยอมไว้ล่วงหน้าในการเลือก (ระยะที่ 2)
- ฟักอัตโนมัติพร้อมประกาศ ไม่ใช่ปุ่มที่บล็อกการดำเนินการ (ระยะที่ 2/5)
- ให้เบราว์เซอร์มาก่อน: ทางออกผ่านเทอร์มินัลเป็นทางสำรอง ไม่ใช่คำถามว่า "เทอร์มินัล หรือเบราว์เซอร์?" (ระยะที่ 3)
- ผู้ดูแลปรากฏตัวในช่องทางได้ (เรียกใช้ + กู้คืน) ไม่ได้จำกัดเฉพาะเว็บ/CLI (ระยะที่ 6)
- การฟักเกิดขึ้นในเธรดเดียวกันพร้อมสลับอวาตาร์; หลังเสร็จสิ้น แอปจะเปลี่ยนไปยัง UI ปกติ (ระยะที่ 5)
- พื้นผิวการตั้งค่ายังคงใช้ชื่อ "Settings"; ผู้ดูแลอยู่ที่นั่น (และในแถบด้านข้าง) แทนที่จะมาแทนที่ (ระยะที่ 6)
- การ์ดตัวเลือกมีข้อจำกัด: 2-4 ตัวเลือก, มีตัวเลือกแนะนำหนึ่งรายการพอดี, ข้ามได้ เสมอ; คอมโพเนนต์เดียวกันใช้ทั้งกับการเริ่มต้นใช้งานและเครื่องมือถามคำถามของเอเจนต์ (ระยะที่ 4)
- "กำลังถาม OpenClaw…" คือสำนวนมาตรฐานสำหรับการมอบหมาย; ตัวตนอาจเพิ่มสีสันได้ แต่คำบรรยายเครื่องมือต้องเรียบง่าย (ระยะที่ 5)
- ข้อความที่ผู้ใช้เห็นจะไม่กล่าวถึง "โหมดโค้ด", "เครื่องมือ" หรือ "หน้าต่างบริบท" เมื่ออธิบายการตัดทอนสำหรับโมเดลที่อ่อนแอ (ระยะที่ 6)
ช่องว่างที่ทราบและงานติดตามผล
- ป้ายกำกับ LaunchAgent ไม่ได้กำหนดขอบเขตตามไดเรกทอรีสถานะ (ข้อควรระวังในการทดสอบข้างต้น และยังเป็น ช่องว่างจริงของผลิตภัณฑ์เมื่อใช้งานหลายอินสแตนซ์)
- คำแนะนำเกี่ยวกับการทำงานเพียงครั้งเดียวและการสแกนที่จัดเก็บไว้ (ระยะที่ 5); ปัจจุบันเมื่อรันซ้ำ ระบบจะเสนออีกครั้ง
- การส่งต่อไปยังเบราว์เซอร์รองรับเฉพาะ macOS; การเปิดใช้งานบน Linux/Windows ยังอยู่ระหว่างดำเนินการ
- มุกเกี่ยวกับจำนวนเซสชันเป็นเพียงเชิงคุณภาพ; การนับต้องมีจุดเชื่อมต่อสำหรับนับเซสชันที่มีต้นทุนต่ำ
- การส่งต่อไปยังเบราว์เซอร์จะเปิดแดชบอร์ดปกติ; Deep Link ไปยังผู้ดูแลโหมดการเริ่มต้นใช้งาน จะเพิ่มเข้ามาในระยะที่ 4