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 ทั้งหมดสี่ครั้ง:

  1. หมายเหตุด้านความปลอดภัย → กด Enter หนึ่งครั้งเพื่อรับทราบ (บันทึกไว้ และไม่ถามอีก)
  2. คำถามข้อศูนย์: "How should I set things up?" — Full access (recommended) หรือ Ask first บันทึกเป็น wizard.accessMode; การเรียกใช้ซ้ำจะใช้ตัวเลือกที่บันทึกไว้ เป็นค่าเริ่มต้น โหมด Guarded + "configure manually" จะไปยังตัวเลือกผู้ให้บริการโดยไม่ สแกนใด ๆ และข้ามการสแกนแหล่งหน่วยความจำด้วย
  3. การแสดงขั้นตอนการค้นหา: ตรวจพบ CLI สำหรับการเขียนโค้ด คีย์สภาพแวดล้อม และรันไทม์ในเครื่อง; กล่าวแทรกอย่างเป็นกันเองเมื่อพบเอเจนต์เขียนโค้ด; ทดสอบตัวเลือกจริงตามลำดับและ รวบรวมความล้มเหลวไว้เบื้องหลังอย่างเงียบ ๆ เป็นบรรทัดสรุปเดียว (รายละเอียดอยู่หลัง "See other options") เส้นทางแรกที่ใช้งานได้จะถูกประกาศเป็นค่าเริ่มต้น พร้อมเส้นทางแบบกดปุ่มเดียว ไปยังตัวเลือกทั้งหมด การสำรวจตัวเลือกและการข้ามจะยังคงใช้เส้นทางที่ใช้งานได้
  4. ข้อเสนอให้นำเข้าหน่วยความจำ (Claude Code / Codex / Hermes) โดยข้ามขั้นตอนนี้เมื่อปฏิเสธ การค้นหา
  5. เฉพาะการติดตั้งใหม่: ใช้แผนการตั้งค่ามาตรฐานโดยอัตโนมัติ (พื้นที่ทำงาน บริการ Gateway เซสชัน — แผนเดียวกับที่การตอบ "yes" ในการสนทนา เรียกใช้) การติดตั้งที่กำหนดค่าแล้วจะแสดง "already set up" และไม่แตะต้อง บริการ
  6. คำแนะนำแอป: แอปที่ติดตั้งจะถูกจับคู่โดยโมเดลที่ผ่านการยืนยัน กับแค็ตตาล็อกอย่างเป็นทางการ + ClawHub; Plugin ช่องทางอย่างเป็นทางการจะถูกเลือกไว้ ล่วงหน้า ส่วน Skills ของบุคคลที่สามต้องเลือกเข้าร่วมพร้อมป้ายเตือน ข้ามได้; สวิตช์ปิดการทำงาน wizard.appRecommendations
  7. การฟัก: เมื่อเข้าถึง 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) ปิดการแชร์ โดยค่าเริ่มต้น; สวิตช์ปิดการทำงานของ Gateway wizard.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
Was this useful?
On this page

On this page