Gateway

การส่งออกข้อมูลวินิจฉัย

OpenClaw สามารถสร้างไฟล์ zip การวินิจฉัยภายในเครื่องสำหรับรายงานบั๊กได้ โดยรวมสถานะ Gateway, สุขภาพระบบ, บันทึก, รูปแบบคอนฟิก และเหตุการณ์เสถียรภาพล่าสุดที่ไม่มี payload ซึ่งผ่านการล้างข้อมูลแล้ว

ให้ปฏิบัติกับชุดข้อมูลการวินิจฉัยเหมือนเป็นความลับจนกว่าคุณจะตรวจสอบแล้ว ชุดข้อมูลเหล่านี้ออกแบบมาเพื่อเว้นหรือลบข้อมูล payload และข้อมูลรับรอง แต่ยังคงสรุปบันทึก Gateway ภายในเครื่องและสถานะรันไทม์ระดับโฮสต์

เริ่มต้นอย่างรวดเร็ว

openclaw gateway diagnostics export

คำสั่งนี้จะแสดงพาธไฟล์ zip ที่เขียนไว้ หากต้องการเลือกพาธ:

openclaw gateway diagnostics export --output openclaw-diagnostics.zip

สำหรับระบบอัตโนมัติ:

openclaw gateway diagnostics export --json

คำสั่งแชท

เจ้าของสามารถใช้ /diagnostics [note] ในแชทเพื่อขอส่งออก Gateway ภายในเครื่องได้ ใช้คำสั่งนี้เมื่อบั๊กเกิดขึ้นในการสนทนาจริงและคุณต้องการรายงานเดียวที่คัดลอกและวางได้สำหรับฝ่ายสนับสนุน:

  1. ส่ง /diagnostics ในการสนทนาที่คุณสังเกตเห็นปัญหา เพิ่มหมายเหตุสั้น ๆ หากช่วยได้ เช่น /diagnostics bad tool choice
  2. OpenClaw จะส่งคำนำการวินิจฉัยและขออนุมัติการ exec อย่างชัดเจนหนึ่งครั้ง การอนุมัตินี้จะรัน openclaw gateway diagnostics export --json อย่าอนุมัติการวินิจฉัยผ่านกฎอนุญาตทั้งหมด
  3. หลังอนุมัติ OpenClaw จะตอบกลับด้วยรายงานที่วางได้ ซึ่งมีพาธชุดข้อมูลภายในเครื่อง สรุป manifest หมายเหตุด้านความเป็นส่วนตัว และรหัสเซสชันที่เกี่ยวข้อง

ในแชทกลุ่ม เจ้าของยังคงรัน /diagnostics ได้ แต่ OpenClaw จะไม่โพสต์รายละเอียดการวินิจฉัยกลับไปยังแชทร่วม OpenClaw จะส่งคำนำ พรอมป์การอนุมัติ ผลลัพธ์การส่งออก Gateway และรายละเอียดเซสชัน/เธรดของ Codex ให้เจ้าของผ่านเส้นทางอนุมัติส่วนตัวเท่านั้น กลุ่มจะได้รับเพียงการแจ้งเตือนสั้น ๆ ว่าขั้นตอนการวินิจฉัยถูกส่งแบบส่วนตัวแล้ว หาก OpenClaw หาเส้นทางส่วนตัวไปยังเจ้าของไม่พบ คำสั่งจะล้มเหลวแบบปิดและขอให้เจ้าของรันจาก DM

เมื่อเซสชัน OpenClaw ที่ใช้งานอยู่กำลังใช้ harness OpenAI Codex แบบ native การอนุมัติ exec เดียวกันจะครอบคลุมการอัปโหลด feedback ไปยัง OpenAI สำหรับเธรดรันไทม์ Codex ที่ OpenClaw รู้จักด้วย การอัปโหลดนั้นแยกจากไฟล์ zip Gateway ภายในเครื่องและจะปรากฏเฉพาะสำหรับเซสชัน Codex harness ก่อนอนุมัติ พรอมป์จะอธิบายว่าการอนุมัติการวินิจฉัยจะส่ง feedback ของ Codex ด้วย แต่จะไม่แสดงรหัสเซสชันหรือเธรดของ Codex หลังอนุมัติ คำตอบในแชทจะแสดงช่องทาง รหัสเซสชัน OpenClaw รหัสเธรด Codex และคำสั่ง resume ภายในเครื่องสำหรับเธรดที่ถูกส่งไปยังเซิร์ฟเวอร์ OpenAI หากคุณปฏิเสธหรือเพิกเฉยต่อการอนุมัติ OpenClaw จะไม่รันการส่งออก ไม่ส่ง feedback ของ Codex และไม่พิมพ์รหัส Codex

สิ่งนี้ทำให้ลูปการดีบัก Codex ทั่วไปสั้นลง: สังเกตพฤติกรรมที่ผิดใน Telegram, Discord หรือช่องทางอื่น รัน /diagnostics อนุมัติหนึ่งครั้ง แชร์รายงานกับฝ่ายสนับสนุน จากนั้นรันคำสั่ง codex resume <thread-id> ที่พิมพ์ไว้ภายในเครื่อง หากคุณต้องการตรวจสอบเธรด Codex แบบ native ด้วยตนเอง ดู Codex harness สำหรับ workflow การตรวจสอบนั้น

สิ่งที่การส่งออกมีอยู่

ไฟล์ zip มี:

  • summary.md: ภาพรวมที่อ่านได้สำหรับฝ่ายสนับสนุน
  • diagnostics.json: สรุปที่เครื่องอ่านได้ของคอนฟิก บันทึก สถานะ สุขภาพระบบ และข้อมูลเสถียรภาพ
  • manifest.json: เมทาดาทาการส่งออกและรายการไฟล์
  • รูปแบบคอนฟิกและรายละเอียดคอนฟิกที่ไม่ใช่ความลับ ซึ่งผ่านการล้างข้อมูลแล้ว
  • สรุปบันทึกที่ผ่านการล้างข้อมูลและบรรทัดบันทึกล่าสุดที่ถูกลบข้อมูลแล้ว
  • สแนปช็อตสถานะและสุขภาพของ Gateway แบบ best-effort
  • stability/latest.json: ชุดข้อมูลเสถียรภาพที่บันทึกไว้ล่าสุด เมื่อมี

การส่งออกยังมีประโยชน์แม้ Gateway ไม่ปกติ หาก Gateway ไม่สามารถตอบคำขอสถานะหรือสุขภาพระบบได้ บันทึกภายในเครื่อง รูปแบบคอนฟิก และชุดข้อมูลเสถียรภาพล่าสุดจะยังถูกรวบรวมเมื่อมี

โมเดลความเป็นส่วนตัว

การวินิจฉัยออกแบบมาให้แชร์ได้ การส่งออกจะเก็บข้อมูลปฏิบัติการที่ช่วยในการดีบัก เช่น:

  • ชื่อ subsystem, รหัส plugin, รหัส provider, รหัสช่องทาง และโหมดที่คอนฟิกไว้
  • รหัสสถานะ ระยะเวลา จำนวนไบต์ สถานะคิว และค่าการใช้หน่วยความจำ
  • เมทาดาทาบันทึกที่ผ่านการล้างข้อมูลและข้อความปฏิบัติการที่ถูกลบข้อมูลแล้ว
  • รูปแบบคอนฟิกและการตั้งค่าฟีเจอร์ที่ไม่ใช่ความลับ

การส่งออกจะเว้นหรือลบข้อมูล:

  • ข้อความแชท พรอมป์ คำสั่ง เนื้อหา webhook และผลลัพธ์ของเครื่องมือ
  • ข้อมูลรับรอง, API keys, token, cookies และค่าลับ
  • เนื้อหา request หรือ response ดิบ
  • รหัสบัญชี รหัสข้อความ รหัสเซสชันดิบ hostname และชื่อผู้ใช้ภายในเครื่อง

เมื่อข้อความบันทึกดูเหมือนเป็นข้อความ user, chat, prompt หรือ tool payload การส่งออกจะเก็บเพียงว่ามีข้อความถูกเว้นไว้และจำนวนไบต์

ตัวบันทึกเสถียรภาพ

Gateway จะบันทึกสตรีมเสถียรภาพแบบจำกัดขนาดและไม่มี payload โดยค่าเริ่มต้นเมื่อเปิดใช้การวินิจฉัย สตรีมนี้มีไว้สำหรับข้อเท็จจริงด้านปฏิบัติการ ไม่ใช่เนื้อหา

Heartbeat การวินิจฉัยเดียวกันจะบันทึกตัวอย่าง liveness เมื่อ Gateway ยังทำงานอยู่ แต่ event loop ของ Node.js หรือ CPU ดูเหมือนอิ่มตัว เหตุการณ์ diagnostic.liveness.warning เหล่านี้มี event-loop delay, event-loop utilization, อัตราส่วน CPU-core, จำนวนเซสชัน active/waiting/queued, เฟส startup/runtime ปัจจุบันเมื่อทราบ, ช่วงเฟสล่าสุด และป้ายกำกับงาน active/queued แบบจำกัดขนาด ตัวอย่าง idle จะอยู่ใน telemetry ที่ระดับ info ตัวอย่าง liveness จะกลายเป็นคำเตือน Gateway เฉพาะเมื่องานกำลังรอหรืออยู่ในคิว หรือเมื่องานที่ active ซ้อนทับกับ event-loop delay ที่ต่อเนื่อง สไปก์ max-delay ชั่วคราวระหว่างงานเบื้องหลังที่ปกติจะอยู่ในบันทึก debug เท่านั้น เหตุการณ์เหล่านี้จะไม่รีสตาร์ท Gateway ด้วยตัวเอง

เฟสเริ่มต้นยังปล่อยเหตุการณ์ diagnostic.phase.completed พร้อมเวลาตามนาฬิกาและเวลา CPU การวินิจฉัย embedded-run ที่ค้างจะทำเครื่องหมาย terminalProgressStale=true เมื่อความคืบหน้า bridge ล่าสุดดูเหมือนสิ้นสุดแล้ว เช่น raw response item หรือเหตุการณ์ response completion แต่ Gateway ยังถือว่า embedded run นั้น active อยู่

ตรวจสอบตัวบันทึกแบบสด:

openclaw gateway stability
openclaw gateway stability --type payload.large
openclaw gateway stability --json

ตรวจสอบชุดข้อมูลเสถียรภาพที่บันทึกไว้ล่าสุดหลัง fatal exit, shutdown timeout หรือ restart startup failure:

openclaw gateway stability --bundle latest

สร้างไฟล์ zip การวินิจฉัยจากชุดข้อมูลที่บันทึกไว้ล่าสุด:

openclaw gateway stability --bundle latest --export

ชุดข้อมูลที่บันทึกไว้จะอยู่ภายใต้ ~/.openclaw/logs/stability/ เมื่อมีเหตุการณ์

ตัวเลือกที่มีประโยชน์

openclaw gateway diagnostics export \
  --output openclaw-diagnostics.zip \
  --log-lines 5000 \
  --log-bytes 1000000
  • --output <path>: เขียนไปยังพาธ zip ที่ระบุ
  • --log-lines <count>: จำนวนบรรทัดบันทึกที่ผ่านการล้างข้อมูลสูงสุดที่จะรวมไว้
  • --log-bytes <bytes>: จำนวนไบต์บันทึกสูงสุดที่จะตรวจสอบ
  • --url <url>: URL WebSocket ของ Gateway สำหรับสแนปช็อตสถานะและสุขภาพระบบ
  • --token <token>: token ของ Gateway สำหรับสแนปช็อตสถานะและสุขภาพระบบ
  • --password <password>: รหัสผ่าน Gateway สำหรับสแนปช็อตสถานะและสุขภาพระบบ
  • --timeout <ms>: timeout ของสแนปช็อตสถานะและสุขภาพระบบ
  • --no-stability-bundle: ข้ามการค้นหาชุดข้อมูลเสถียรภาพที่บันทึกไว้
  • --json: พิมพ์เมทาดาทาการส่งออกที่เครื่องอ่านได้

ปิดใช้งานการวินิจฉัย

การวินิจฉัยเปิดใช้โดยค่าเริ่มต้น หากต้องการปิดตัวบันทึกเสถียรภาพและการรวบรวมเหตุการณ์การวินิจฉัย:

{
  diagnostics: {
    enabled: false,
  },
}

การปิดใช้งานการวินิจฉัยจะลดรายละเอียดรายงานบั๊ก แต่ไม่ส่งผลต่อการบันทึก Gateway ตามปกติ

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