---
read_when:
    - คุณกำลังนำขั้นตอนหนึ่งของการออกแบบกระบวนการเริ่มต้นใช้งานใหม่ไปใช้หรือกำลังรีวิวขั้นตอนดังกล่าว
summary: แผนการดำเนินงานสำหรับการออกแบบขั้นตอนการเริ่มต้นใช้งานของผู้ดูแลระบบใหม่ (เอกสารที่ปรับปรุงอย่างต่อเนื่อง)
title: การออกแบบขั้นตอนเริ่มต้นใช้งานใหม่
x-i18n:
    generated_at: "2026-07-19T07:36:20Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: dc1f049d59cfa2638e7332ab4127905141625de5471144c856c91bfe50c9fa11
    source_path: start/onboarding-redesign.md
    workflow: 16
---

# แผนการดำเนินงานออกแบบการเริ่มต้นใช้งานใหม่

> **เอกสารที่ปรับปรุงอย่างต่อเนื่อง** หน้านี้ติดตามการออกแบบการเริ่มต้นใช้งานของผู้ดูแลระบบใหม่ใน
> ระดับการดำเนินงาน และจะอัปเดตเมื่อแต่ละระยะเสร็จสิ้น เมื่อผสานระยะสุดท้ายแล้ว
> หน้านี้จะถูกเขียนใหม่เป็นคู่มือการเริ่มต้นใช้งานสำหรับผู้ใช้และเพิ่มลงในการนำทาง
> ของเอกสาร โดยตั้งใจไม่ให้อยู่ใน `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](https://github.com/openclaw/openclaw/pull/109668))                                                              |
| 2   | แกนหลักของผู้ดูแลระบบใน CLI (คำถามข้อศูนย์ การแสดงขั้นตอนการค้นหา การใช้ค่าอัตโนมัติ + การฟัก)                                                                                | CLI แบบมีคำแนะนำ           | ผสานแล้ว ([`a83ed13204f1`](https://github.com/openclaw/openclaw/commit/a83ed13204f118adf1009e5ac88d5afe1905b86c))                   |
| 3   | การส่งต่อโดยให้เบราว์เซอร์เป็นอันดับแรก (การตรวจหาเซสชัน GUI การรอการเชื่อมต่อแดชบอร์ด ใช้ TUI เป็นทางเลือกสำรอง)                                                                | CLI → เว็บ            | ผสานแล้ว ([#110054](https://github.com/openclaw/openclaw/pull/110054))                                                              |
| 4   | พื้นผิวผู้ดูแลระบบบนเว็บ (การ์ดตัวเลือก ฟิลด์ `question` แบบมีชนิดบน `openclaw.chat` การสะท้อนขั้นตอนวิซาร์ด การส่งต่อเมื่อเรียกใช้ครั้งแรก)                                 | Control UI           | ผสานแล้ว ([#110141](https://github.com/openclaw/openclaw/pull/110141), [#110242](https://github.com/openclaw/openclaw/pull/110242)) |
| 5   | การฟักและการเริ่มต้นระบบ (พื้นที่จัดเก็บคำแนะนำที่มีความหมายแบบครั้งเดียว ลำดับการถือกำเนิดโดยตั้งชื่อเอง การส่งต่อการฟักอัตโนมัติหลังการตั้งค่าใหม่; เลื่อนลำดับขั้นอวาตาร์ออกไป) | การเริ่มต้นระบบของเอเจนต์      | ผสานแล้ว ([#110173](https://github.com/openclaw/openclaw/pull/110173), [#110331](https://github.com/openclaw/openclaw/pull/110331)) |
| 6   | การปรากฏตัวของผู้ดูแลระบบ PR1 (รายการที่ปักหมุดในแถบด้านข้าง Ask OpenClaw ใน Settings คำทักทายของผู้ดูแลในหน้าตามาตรฐาน; ความเห็นต่อเหตุการณ์และการเรียกผ่านช่องทางอยู่ใน PR2)    | เว็บ + ช่องทาง       | ผสานแล้ว ([#110269](https://github.com/openclaw/openclaw/pull/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
