การแก้ไขปัญหา
ปัญหาที่พบบ่อยและวิธีแก้ไขเมื่อใช้งาน AI Agents Management
ปัญหา WebSocket Connection
ปัญหา: ข้อผิดพลาด "WebSocket closed (1006)"
อาการ:
- Agent instances แสดงสถานะ "Offline"
- การเปลี่ยนแปลง configuration ไม่มีผล
- การอัพเดทแบบ real-time ไม่ทำงาน
วิธีแก้ไข:
- ตรวจสอบ WebSocket URL: ตรวจสอบว่า WebSocket endpoint เข้าถึงได้
- ตรวจสอบการยืนยันตัวตน: ตรวจสอบว่า JWT token ยังใช้งานได้และไม่หมดอายุ
- ตรวจสอบเครือข่าย: ตรวจสอบการตั้งค่า firewall ให้อนุญาต WebSocket connections
- รีสตาร์ท Instance: ลองหยุดและเริ่ม agent instance ใหม่
ปัญหา: ข้อผิดพลาด "No Active WebSocket"
อาการ:
- ไม่สามารถส่งการอัพเดท configuration ได้
- Instance ดูเหมือนขาดการเชื่อมต่อ
วิธีแก้ไข:
- รอการเชื่อมต่อใหม่: WebSocket จะเชื่อมต่อใหม่อัตโนมัติทุก 30 วินาที
- ตรวจสอบสถานะ Instance: ตรวจสอบว่า instance อยู่ในสถานะ "Running"
- ตรวจสอบ DO_SYNC_SECRET: ตรวจสอบว่า secret ถูกตั้งค่าอย่างถูกต้อง
ปัญหา Agent Instance
ปัญหา: Instance ติดในสถานะ "Starting"
อาการ:
- Instance แสดง "Starting" นานกว่า 5 นาที
- ไม่มี logs ปรากฏในระบบ
วิธีแก้ไข:
- ตรวจสอบโค้ด Agent: ตรวจสอบว่าโค้ดไม่มี infinite loops หรือ blocking operations
- ตรวจสอบ Dependencies: ตรวจสอบว่า packages ที่จำเป็นทั้งหมดพร้อมใช้งาน
- ตรวจสอบ Memory Limits: ตรวจสอบว่า instance มี memory เพียงพอ
- รีสตาร์ท Instance: หยุดและเริ่ม instance ใหม่
ปัญหา: Instance แสดงสถานะ "Error"
อาการ:
- ตัวบ่งชี้สีแดงใน dashboard
- Agent หยุดตอบสนอง
วิธีแก้ไข:
- ตรวจสอบ System Logs: ไปที่ Admin Panel → System Logs เพื่อดูรายละเอียดข้อผิดพลาด
- ตรวจสอบโค้ด Agent: มองหา runtime errors หรือ exceptions
- ตรวจสอบ Configuration: ตรวจสอบ environment variables และการตั้งค่า
- ตรวจสอบการใช้ทรัพยากร: ตรวจสอบว่าการใช้ CPU และ memory อยู่ในขีดจำกัด
ปัญหา Scheduler
ปัญหา: การตรวจสอบ Cron Expression ล้มเหลว
อาการ:
- ข้อความ "Invalid cron expression"
- ไม่สามารถบันทึก scheduler configuration ได้
วิธีแก้ไข:
- ตรวจสอบรูปแบบ: ตรวจสอบว่าใช้รูปแบบ 5-field หรือ 6-field อย่างสม่ำเสมอ
- ตรวจสอบ Syntax: ใช้เครื่องมือตรวจสอบ cron ออนไลน์
- ข้อผิดพลาดที่พบบ่อย:
- ใช้
*/5ในรูปแบบ 5-field (ควรเป็น0 */5 * * *) - ค่าวันในสัปดาห์ไม่ถูกต้อง (ใช้ 0-7, ไม่ใช่ 1-7)
- ค่าเดือนไม่ถูกต้อง (ใช้ 1-12, ไม่ใช่ 0-11)
- ใช้
ปัญหา: งานที่กำหนดเวลาไว้ไม่ทำงาน
อาการ:
- Cron expression ถูกต้องแต่งานไม่ทำงาน
- ไม่มี execution logs ในระบบ
วิธีแก้ไข:
- ตรวจสอบสถานะ Instance: ตรวจสอบว่า instance อยู่ในสถานะ "Running"
- ตรวจสอบ Timezone: cron expressions ทั้งหมดใช้เวลา UTC
- ตรวจสอบเวลาทำงานถัดไป: ตรวจสอบว่าเวลาที่กำหนดถัดไปถูกต้อง
- ตรวจสอบโค้ด Agent: ตรวจสอบว่า agent จัดการการทำงานตามกำหนดเวลาอย่างถูกต้อง
ปัญหาประสิทธิภาพ
ปัญหา: การใช้ CPU สูง
อาการ:
- Instance แสดง CPU time สูงใน metrics
- เวลาตอบสนองช้า
วิธีแก้ไข:
- ปรับปรุงโค้ด Agent: ตรวจสอบ loops และ recursive functions
- เพิ่ม Delays: ใช้
await new Promise(resolve => setTimeout(resolve, 1000))เพื่อเพิ่มการหน่วงเวลา - ประมวลผลเป็นชุด: ประมวลผลข้อมูลเป็นชิ้นเล็กๆ
- ตรวจสอบ External APIs: ตรวจสอบว่าบริการภายนอกไม่ทำให้เกิดความล่าช้า
ปัญหา: Memory Leaks
อาการ:
- การใช้ memory ของ instance เพิ่มขึ้นเรื่อยๆ
- Instance ไม่ตอบสนองเมื่อเวลาผ่านไป
วิธีแก้ไข:
- ตรวจสอบ Variable Scope: ตรวจสอบว่าตัวแปรถูกล้างอย่างถูกต้อง
- ปิด Connections: ปิด database และ HTTP connections เสมอ
- ล้าง Intervals: ใช้
clearInterval()และclearTimeout()อย่างถูกต้อง - ติดตาม Objects: หลีกเลี่ยงการเก็บ objects ขนาดใหญ่ใน memory โดยไม่จำเป็น
ปัญหาการยืนยันตัวตน
ปัญหา: ข้อผิดพลาด "Unauthorized"
อาการ:
- ไม่สามารถเข้าถึงรายละเอียด instance ได้
- API calls ส่งคืน 401 errors
วิธีแก้ไข:
- ตรวจสอบ JWT Token: ตรวจสอบว่า token ยังใช้งานได้และไม่หมดอายุ
- ตรวจสอบสิทธิ์: ตรวจสอบว่าบัญชีของคุณมีสิทธิ์เข้าถึง instance
- เข้าสู่ระบบใหม่: ลองออกจากระบบและเข้าสู่ระบบใหม่
- ตรวจสอบการยืนยันตัวตน CLI: สำหรับผู้ใช้ CLI ให้รัน
lifectl auth login
ปัญหาข้อมูล
ปัญหา: ข้อมูล Instance ไม่คงอยู่
อาการ:
- การเปลี่ยนแปลง configuration หายไปหลังรีสตาร์ท
- สถานะ instance รีเซ็ตโดยไม่คาดคิด
วิธีแก้ไข:
- ตรวจสอบ Durable Objects: ตรวจสอบว่า DO storage ทำงานอย่างถูกต้อง
- ตรวจสอบการบันทึก: ตรวจสอบว่าข้อมูลถูกบันทึกอย่างถูกต้องในโค้ด agent
- ตรวจสอบขีดจำกัดการจัดเก็บ: ตรวจสอบว่าไม่เกิน storage quotas
- ใช้ APIs ที่ถูกต้อง: ใช้ storage APIs ที่ถูกต้องสำหรับการเก็บข้อมูลถาวร
การขอความช่วยเหลือ
หากยังคงประสบปัญหา:
- ตรวจสอบ System Logs: ตรวจสอบ logs เสมอเพื่อดูรายละเอียดข้อผิดพลาด
- บันทึกปัญหา: จดข้อความข้อผิดพลาดที่แน่นอนและขั้นตอนการทำซ้ำ
- ตรวจสอบรายละเอียด Instance: รวม instance ID, agent version, และ configuration
- ติดต่อฝ่ายสนับสนุน: ให้ข้อมูลที่เกี่ยวข้องทั้งหมดเมื่อขอความช่วยเหลือ
มาตรการป้องกัน
- การติดตามสม่ำเสมอ: ตรวจสอบสถานะ instance และ logs เป็นประจำ
- ขีดจำกัดทรัพยากร: ตั้งขีดจำกัด CPU และ memory ที่เหมาะสม
- การจัดการข้อผิดพลาด: ใช้การจัดการข้อผิดพลาดที่เหมาะสมในโค้ด agent
- การทดสอบ: ทดสอบ agents อย่างละเอียดก่อนนำไปใช้ใน production
- สำรองข้อมูล Configuration: เก็บสำรองข้อมูล configurations ที่สำคัญ