ให้ Claude หา Root Cause ของ Error
หนึ่งในงานที่ Claude Code เก่งที่สุดคือ debug ให้มันอ่าน error message แล้วหา root cause พร้อมแก้ บทนี้สอนวิธีใช้ให้ได้ผลสูงสุด
เมื่อเรียนจบบทนี้ คุณจะ…
- ใช้ Claude Code ในการแก้ปัญหา Error ได้
- อธิบายวิธีให้ข้อมูล Error กับ Claude ได้อย่างมีประสิทธิภาพ
- ขอให้ Claude หา 'Root Cause' ของ Error ได้

ทำไมต้องหา "Root Cause" ของ Error?
เวลาที่เราเขียนโปรแกรมหรือใช้งานโปรแกรม แล้วเจอกับข้อผิดพลาด หรือที่เรียกว่า "Error" (เออร์เรอร์) มันก็เหมือนกับเวลาที่เราไม่สบายครับ เราอาจจะปวดหัว ตัวร้อน ซึ่งเป็นแค่ "อาการ" ของโรคเท่านั้น การจะหายขาดได้ เราต้องรู้ว่า "ต้นเหตุ" จริงๆ คืออะไร เช่น เป็นไข้หวัดใหญ่ หรือแค่นอนน้อย
ในโลกของการเขียนโปรแกรมก็เหมือนกันครับ Error Message ที่เราเห็นเป็นแค่ "อาการ" ที่โปรแกรมแสดงออกมา การจะแก้ไขให้โปรแกรมกลับมาทำงานได้ดีอย่างยั่งยืน เราต้องหา "Root Cause" หรือ "สาเหตุที่แท้จริง" ของปัญหานั้นให้เจอ Claude Code เก่งมากๆ ในการช่วยเราวิเคราะห์หาต้นเหตุเหล่านี้ครับ
ข้อมูลที่ Claude ต้องการ เพื่อช่วยเราได้เต็มที่
ลองนึกภาพว่าคุณไปหาหมอ ถ้าคุณบอกหมอแค่ว่า "ไม่สบาย" หมอก็คงวินิจฉัยยากใช่ไหมครับ? แต่ถ้าคุณบอกว่า "ปวดหัวมา 2 วันแล้ว มีไข้ 38 องศา เจ็บคอด้วย" หมอก็จะเข้าใจอาการและวินิจฉัยได้ดีขึ้น
Claude Code ก็ต้องการข้อมูลที่ครบถ้วนและชัดเจนแบบนั้นเลยครับ ข้อมูลสำคัญที่สุดสองอย่างคือ:
1. **Error Message แบบเต็มๆ:** อย่าตัดข้อความใดๆ ออกไปเลยครับ เพราะทุกคำพูดใน Error Message มีความหมายและเป็นเบาะแสสำคัญในการแกะรอยปัญหา
2. **บริบท (Context) ของปัญหา:** คุณกำลังทำอะไรอยู่ตอนที่ Error เกิดขึ้น? ใช้คำสั่งอะไรไป? โปรแกรมส่วนไหนกำลังทำงาน? ข้อมูลเหล่านี้จะช่วยให้ Claude เข้าใจสถานการณ์และมองเห็นภาพรวมของปัญหาได้ชัดเจนขึ้น
ส่ง Error Message และบริบทให้ Claude ยังไง?
เมื่อคุณเจอ Error สิ่งแรกที่ต้องทำคือคัดลอก Error Message ทั้งหมดครับ โดยปกติแล้ว Error Message จะปรากฏในหน้าต่าง Terminal, Command Prompt หรือใน Log File ของโปรแกรม ให้คุณเลือกทั้งหมดแล้วคัดลอก (Copy) มาให้ Claude
จากนั้น ให้คุณอธิบาย "บริบท" อย่างละเอียดที่สุดเท่าที่จะทำได้ เช่น "ผมกำลังรันไฟล์ app.py ด้วยคำสั่ง python app.py แล้วเจอ Error นี้ครับ" หรือ "ผมกำลังติดตั้งไลบรารี requests ด้วย pip install requests แล้วเจอ Error นี้" การเล่าเรื่องราวที่นำไปสู่ Error จะเป็นประโยชน์อย่างมาก
- คัดลอก Error Message ทั้งหมดที่ปรากฏขึ้นมา
- อธิบายบริบทให้ชัดเจนว่าคุณกำลังทำอะไรอยู่ ใช้คำสั่งอะไร หรืออยู่ในขั้นตอนไหนของโปรแกรม
ตัวอย่าง Prompt เด็ด! ให้ Claude หา Root Cause
นี่คือ Prompt (คำสั่ง) ที่เราจะใช้คุยกับ Claude เพื่อให้มันช่วยหา Root Cause ครับ Prompt นี้ถูกออกแบบมาให้ Claude ได้ข้อมูลครบถ้วนและรู้ว่าต้องทำอะไรต่อ
ถ้า Error ของคุณเกิดขึ้นตอนที่โปรแกรมกำลังทำงานอยู่ (Runtime Error) Claude สามารถลอง "รันคำสั่ง" เพื่อจำลองสถานการณ์และ "debug เป็นลูป" ได้เอง นั่นหมายความว่ามันจะลองแก้ปัญหา ตรวจสอบผล แล้วแก้ต่อวนไปเรื่อยๆ จนกว่าจะเจอทางออกที่ดีที่สุด
Prompt นี้จะบอก Claude ว่า: 1) ให้รันคำสั่งอะไร 2) Error ที่เจอคืออะไร 3) เป้าหมายคือการหาสาเหตุที่แท้จริงและแก้ไข และ 4) อนุญาตให้ Claude รันคำสั่งเพิ่มเติมเพื่อตรวจสอบได้
- คัดลอก Prompt ตัวอย่างนี้:
ลองใช้ Prompt นี้กับ Claude รันคำสั่ง [คำสั่ง] แล้วเจอ error นี้: [วาง error เต็มๆ] ช่วยหาสาเหตุที่แท้จริงแล้วแก้ให้หน่อย ถ้าจำเป็นรันคำสั่งเพื่อตรวจสอบได้- แทนที่
[คำสั่ง]ด้วยคำสั่งที่คุณใช้แล้วเกิด Error (เช่นpython app.py,npm start) - แทนที่
[วาง error เต็มๆ]ด้วย Error Message ทั้งหมดที่คุณคัดลอกมา
เคล็ดลับ: ขอ "Root Cause" ไม่ใช่แค่ "แก้ Error"
นี่คือเคล็ดลับทองคำเลยครับ! ถ้าคุณบอก Claude แค่ว่า "ช่วยแก้ Error ให้หน่อย" บางที Claude อาจจะให้แค่ "วิธีแก้แบบผิวเผิน" หรือ "Workaround" ที่ทำให้ Error หายไปชั่วคราว แต่ไม่ได้แก้ปัญหาที่ต้นตอจริงๆ เหมือนกับการกินยาแก้ปวดที่ช่วยบรรเทาอาการ แต่ไม่ได้รักษาโรคให้หายขาด
แต่ถ้าคุณขอว่า "ช่วยหาสาเหตุที่แท้จริง (Root Cause) แล้วแก้ให้หน่อย" Claude จะพยายามลงลึกไปถึงต้นตอของปัญหาจริงๆ ครับ มันจะวิเคราะห์อย่างละเอียดว่าทำไมถึงเกิด Error นี้ขึ้น และเสนอวิธีแก้ไขที่ยั่งยืน ซึ่งจะช่วยป้องกันไม่ให้ปัญหาเดิมๆ กลับมาเกิดขึ้นอีกในอนาคต
- วาง error เต็มๆ ไม่ตัด
- ให้ context ว่าทำอะไรตอนเกิด
- ขอ root cause ไม่ใช่แค่กลบอาการ