---
read_when:
    - คุณมีปัญหาด้านการเชื่อมต่อ/การยืนยันตัวตน และต้องการการแก้ไขแบบมีคำแนะนำ
    - คุณอัปเดตแล้วและต้องการตรวจสอบความถูกต้องเบื้องต้น
summary: ข้อมูลอ้างอิง CLI สำหรับ `openclaw doctor` (การตรวจสอบสถานะ + การซ่อมแซมแบบมีคำแนะนำ)
title: ตัวตรวจวินิจฉัย
x-i18n:
    generated_at: "2026-05-02T20:41:39Z"
    model: gpt-5.5
    provider: openai
    source_hash: c64cefee8f36b38657b72912271e3734411870376d2bd5a374d23a77a080035d
    source_path: cli/doctor.md
    workflow: 16
---

# `openclaw doctor`

การตรวจสุขภาพ + การแก้ไขด่วนสำหรับ Gateway และช่องทาง

ที่เกี่ยวข้อง:

- การแก้ปัญหา: [การแก้ปัญหา](/th/gateway/troubleshooting)
- การตรวจสอบความปลอดภัย: [ความปลอดภัย](/th/gateway/security)

## ตัวอย่าง

```bash
openclaw doctor
openclaw doctor --repair
openclaw doctor --deep
openclaw doctor --repair --non-interactive
openclaw doctor --generate-gateway-token
```

## ตัวเลือก

- `--no-workspace-suggestions`: ปิดคำแนะนำหน่วยความจำ/การค้นหาเวิร์กสเปซ
- `--yes`: ยอมรับค่าเริ่มต้นโดยไม่ถาม
- `--repair`: ใช้การซ่อมแซมที่แนะนำซึ่งไม่ใช่บริการโดยไม่ถาม; การติดตั้งและการเขียนบริการ Gateway ใหม่ยังคงต้องมีการยืนยันแบบโต้ตอบหรือคำสั่ง Gateway ที่ระบุชัดเจน
- `--fix`: ชื่อแทนของ `--repair`
- `--force`: ใช้การซ่อมแซมเชิงรุก รวมถึงการเขียนทับการกำหนดค่าบริการแบบกำหนดเองเมื่อจำเป็น
- `--non-interactive`: รันโดยไม่มีพรอมป์; เฉพาะการย้ายข้อมูลที่ปลอดภัยและการซ่อมแซมที่ไม่ใช่บริการ
- `--generate-gateway-token`: สร้างและกำหนดค่าโทเค็น Gateway
- `--deep`: สแกนบริการระบบเพื่อหาการติดตั้ง Gateway เพิ่มเติม

หมายเหตุ:

- พรอมป์แบบโต้ตอบ (เช่น การแก้ไข keychain/OAuth) จะทำงานเฉพาะเมื่อ stdin เป็น TTY และไม่ได้ตั้งค่า `--non-interactive` เท่านั้น การรันแบบไม่มีหน้าจอ (Cron, Telegram, ไม่มีเทอร์มินัล) จะข้ามพรอมป์
- ประสิทธิภาพ: การรัน `doctor` แบบไม่โต้ตอบจะข้ามการโหลด Plugin ล่วงหน้า เพื่อให้การตรวจสุขภาพแบบไม่มีหน้าจอยังคงเร็ว เซสชันแบบโต้ตอบยังคงโหลด Plugin ทั้งหมดเมื่อการตรวจสอบต้องใช้ส่วนร่วมของ Plugin เหล่านั้น
- `--fix` (ชื่อแทนของ `--repair`) เขียนข้อมูลสำรองไปที่ `~/.openclaw/openclaw.json.bak` และลบคีย์การกำหนดค่าที่ไม่รู้จัก พร้อมแสดงรายการการลบแต่ละรายการ
- `doctor --fix --non-interactive` รายงานคำจำกัดความบริการ Gateway ที่หายไปหรือล้าสมัย แต่จะไม่ติดตั้งหรือเขียนใหม่ภายนอกโหมดซ่อมแซมการอัปเดต ให้รัน `openclaw gateway install` สำหรับบริการที่หายไป หรือ `openclaw gateway install --force` เมื่อคุณตั้งใจต้องการแทนที่ตัวเรียกใช้งาน
- ตอนนี้การตรวจสอบความสมบูรณ์ของสถานะตรวจพบไฟล์ทรานสคริปต์กำพร้าในไดเรกทอรีเซสชันแล้ว การเก็บถาวรไฟล์เหล่านั้นเป็น `.deleted.<timestamp>` ต้องมีการยืนยันแบบโต้ตอบ; `--fix`, `--yes` และการรันแบบไม่มีหน้าจอจะปล่อยไฟล์เหล่านั้นไว้ที่เดิม
- Doctor ยังสแกน `~/.openclaw/cron/jobs.json` (หรือ `cron.store`) เพื่อหารูปแบบงาน Cron แบบเดิม และสามารถเขียนใหม่ในที่เดิมก่อนที่ตัวจัดกำหนดการจะต้องปรับให้เป็นมาตรฐานอัตโนมัติในรันไทม์
- บน Linux, doctor จะเตือนเมื่อ crontab ของผู้ใช้ยังคงรัน `~/.openclaw/bin/ensure-whatsapp.sh` แบบเดิม; สคริปต์นั้นไม่ได้รับการดูแลแล้วและอาจบันทึกเหตุขัดข้อง Gateway ของ WhatsApp ที่เป็นผลบวกเทียมเมื่อ Cron ไม่มีสภาพแวดล้อม systemd user-bus
- Doctor ล้างสถานะ staging ของการพึ่งพา Plugin แบบเดิมที่สร้างโดย OpenClaw เวอร์ชันเก่า และยังซ่อมแซม Plugin แบบดาวน์โหลดได้ที่กำหนดค่าไว้แต่หายไปเมื่อ registry สามารถแก้ไขได้ และรอบการตรวจ doctor ของ 2026.5.2 จะติดตั้ง Plugin แบบดาวน์โหลดได้โดยอัตโนมัติซึ่งการกำหนดค่าเก่าใช้อยู่แล้ว ก่อนทำเครื่องหมายว่าการกำหนดค่าถูกแตะสำหรับรุ่นนั้น
- Doctor ซ่อมแซมการกำหนดค่า Plugin ที่ล้าสมัยโดยลบ id ของ Plugin ที่หายไปออกจาก `plugins.allow`/`plugins.entries` รวมถึงการกำหนดค่าช่องทางที่ค้างอยู่ เป้าหมาย Heartbeat และการแทนที่โมเดลของช่องทางที่ตรงกัน เมื่อการค้นพบ Plugin ทำงานปกติ
- Doctor กักกันการกำหนดค่า Plugin ที่ไม่ถูกต้องโดยปิดใช้รายการ `plugins.entries.<id>` ที่ได้รับผลกระทบและลบ payload `config` ที่ไม่ถูกต้องออก การเริ่มต้น Gateway ข้ามเฉพาะ Plugin ที่มีปัญหานั้นอยู่แล้ว เพื่อให้ Plugin และช่องทางอื่นยังทำงานต่อได้
- ตั้งค่า `OPENCLAW_SERVICE_REPAIR_POLICY=external` เมื่อ supervisor อื่นเป็นเจ้าของวงจรชีวิต Gateway Doctor ยังคงรายงานสุขภาพ Gateway/บริการและใช้การซ่อมแซมที่ไม่ใช่บริการ แต่ข้ามการติดตั้ง/เริ่ม/เริ่มใหม่/บูตสแตรปบริการและการล้างบริการแบบเดิม
- บน Linux, doctor จะละเว้น systemd unit เพิ่มเติมที่ดูเหมือน Gateway แต่ไม่ทำงาน และจะไม่เขียน metadata คำสั่ง/entrypoint ใหม่สำหรับบริการ systemd Gateway ที่กำลังทำงานระหว่างการซ่อมแซม หยุดบริการก่อนหรือใช้ `openclaw gateway install --force` เมื่อคุณตั้งใจต้องการแทนที่ตัวเรียกใช้งานที่ใช้งานอยู่
- Doctor ย้ายการกำหนดค่า Talk แบบ flat เดิม (`talk.voiceId`, `talk.modelId` และรายการที่เกี่ยวข้อง) ไปยัง `talk.provider` + `talk.providers.<provider>` โดยอัตโนมัติ
- การรัน `doctor --fix` ซ้ำจะไม่รายงาน/ใช้การปรับ Talk ให้เป็นมาตรฐานอีกต่อไป เมื่อความแตกต่างเพียงอย่างเดียวคือลำดับคีย์ของออบเจ็กต์
- Doctor รวมการตรวจสอบความพร้อมของการค้นหาหน่วยความจำ และสามารถแนะนำ `openclaw configure --section model` เมื่อข้อมูลประจำตัวสำหรับ embedding หายไป
- Doctor เตือนเมื่อไม่ได้กำหนดค่าเจ้าของคำสั่ง เจ้าของคำสั่งคือบัญชีผู้ดำเนินการที่เป็นมนุษย์ซึ่งได้รับอนุญาตให้รันคำสั่งสำหรับเจ้าของเท่านั้นและอนุมัติการกระทำที่อันตราย การจับคู่ DM เพียงทำให้บางคนคุยกับบอตได้เท่านั้น; หากคุณอนุมัติผู้ส่งก่อนที่บูตสแตรปเจ้าของคนแรกจะมีอยู่ ให้ตั้งค่า `commands.ownerAllowFrom` อย่างชัดเจน
- Doctor เตือนเมื่อมีการกำหนดค่าเอเจนต์โหมด Codex และมีแอสเซ็ต Codex CLI ส่วนตัวอยู่ในบ้าน Codex ของผู้ดำเนินการ การเปิด app-server ของ Codex ภายในเครื่องใช้บ้านแบบแยกต่อเอเจนต์ ดังนั้นให้ใช้ `openclaw migrate codex --dry-run` เพื่อตรวจรายการแอสเซ็ตที่ควรถูกยกระดับโดยตั้งใจ
- Doctor เตือนเมื่อ Skills ที่อนุญาตสำหรับเอเจนต์เริ่มต้นไม่พร้อมใช้งานในสภาพแวดล้อมรันไทม์ปัจจุบัน เพราะขาด bins, env vars, การกำหนดค่า หรือข้อกำหนดของ OS `doctor --fix` สามารถปิดใช้ Skills ที่ไม่พร้อมใช้งานเหล่านั้นด้วย `skills.entries.<skill>.enabled=false`; ให้ติดตั้ง/กำหนดค่าข้อกำหนดที่หายไปแทนเมื่อคุณต้องการให้ skill ยังคงทำงานอยู่
- หากเปิดใช้โหมด sandbox แต่ Docker ไม่พร้อมใช้งาน doctor จะรายงานคำเตือนสัญญาณชัดพร้อมวิธีแก้ไข (`ติดตั้ง Docker` หรือ `openclaw config set agents.defaults.sandbox.mode off`)
- หาก `gateway.auth.token`/`gateway.auth.password` ถูกจัดการโดย SecretRef และไม่พร้อมใช้งานในเส้นทางคำสั่งปัจจุบัน doctor จะรายงานคำเตือนแบบอ่านอย่างเดียวและจะไม่เขียนข้อมูลประจำตัว fallback เป็น plaintext
- หากการตรวจสอบ SecretRef ของช่องทางล้มเหลวในเส้นทาง fix doctor จะดำเนินการต่อและรายงานคำเตือนแทนการออกก่อนกำหนด
- หลังการย้ายไดเรกทอรีสถานะ doctor จะเตือนเมื่อบัญชี Telegram หรือ Discord เริ่มต้นที่เปิดใช้พึ่งพา env fallback และ `TELEGRAM_BOT_TOKEN` หรือ `DISCORD_BOT_TOKEN` ไม่พร้อมใช้งานสำหรับโปรเซส doctor
- การแก้ชื่อผู้ใช้ `allowFrom` ของ Telegram โดยอัตโนมัติ (`doctor --fix`) ต้องมีโทเค็น Telegram ที่แก้ไขได้ในเส้นทางคำสั่งปัจจุบัน หากการตรวจสอบโทเค็นไม่พร้อมใช้งาน doctor จะรายงานคำเตือนและข้ามการแก้อัตโนมัติสำหรับรอบนั้น

## macOS: การแทนที่ env ของ `launchctl`

หากคุณเคยรัน `launchctl setenv OPENCLAW_GATEWAY_TOKEN ...` (หรือ `...PASSWORD`) ก่อนหน้านี้ ค่านั้นจะแทนที่ไฟล์การกำหนดค่าของคุณและอาจทำให้เกิดข้อผิดพลาด “ไม่ได้รับอนุญาต” อย่างต่อเนื่อง

```bash
launchctl getenv OPENCLAW_GATEWAY_TOKEN
launchctl getenv OPENCLAW_GATEWAY_PASSWORD

launchctl unsetenv OPENCLAW_GATEWAY_TOKEN
launchctl unsetenv OPENCLAW_GATEWAY_PASSWORD
```

## ที่เกี่ยวข้อง

- [อ้างอิง CLI](/th/cli)
- [Gateway doctor](/th/gateway/doctor)
