ถ้าคุณเคยเห็น agent ลองแก้บั๊กสักครั้ง คุณก็คงเห็นว่ามันเดา มันอ่านโค้ด ตั้งทฤษฎีขึ้นมา แก้ไข แล้วก็หวัง บางครั้งก็ถูก แต่ส่วนใหญ่คุณจะได้ตัวแก้ที่ดูมั่นใจแต่กลับซ่อนบั๊กจริงไว้
Debug Mode คือสิ่งที่เราสร้างขึ้นมาเพื่อจัดการกับปัญหานี้ แทนที่จะให้ agent นั่งคิดหาเหตุผลเกี่ยวกับโค้ด มันจะไปหาหลักฐานว่าโค้ดทำอะไรเมื่อรันจริง
นี่คือลูปการทำงาน
- Agent ตั้งสมมติฐานหลายข้อ แล้วเริ่มทำงานกับข้อที่น่าจะเป็นไปได้มากที่สุดก่อน
- จากนั้น จะเพิ่ม logging เพื่อทดสอบสมมติฐานหนึ่ง (โดยไม่แตะโค้ดหลัก)
- Debug server เล็กๆ จะรวบรวม output ขณะรันไปไว้ที่ .cursor/debug.log ขณะที่โปรแกรมของคุณทำงาน
- คุณจำลองบั๊ก จากนั้น agent จะสามารถอ่าน log และเข้าใจว่าเกิดอะไรขึ้นแทนที่จะต้องเดา
- Cursor หาสาเหตุที่แท้จริงใน log แก้ไข แล้วลบ logging ที่เพิ่มเข้าไปออก
นี่คือตัวอย่างการใช้งานกับบั๊กจริง เร่งความเร็วให้ดูในประมาณหนึ่งนาที:
วิธีที่ทีมใช้งาน
สิ่งที่น่าสนใจที่เราแก้ไขภายในด้วย debug mode:
- Race condition ที่เกิดขึ้น 1 ใน 20 ครั้งที่รัน มันทำให้ metadata ของ git เสียหายในการรันแบบ best-of-N Debug Mode ชี้ชัดภายในเวลาไม่ถึงชั่วโมง
- Memory leak ที่ตามรอยได้ในรอบเดียว สาเหตุมาจากการใช้ frontend framework ผิดวิธี ตัวแก้ไขมีบรรทัดเดียว
- การ crash ระดับ native ใน C++ อย่างหนัก เป็น crash ของ Electron ที่คนส่วนใหญ่มักเลี่ยงไปทางอื่น แต่ log ทำให้หาเจอ
- อาการ flicker ของ SSR ที่เคยยอมแพ้ไปแล้ว บั๊กด้าน rendering ที่ไม่มีใครอยากแตะ ได้รับการแก้ไขเมื่อ agent สามารถดูว่าหน้าเว็บทำอะไรตอนรันจริง
ลองใช้ด้วย Shift+Tab (มีใน CLI ด้วย ผ่าน /debug)
ผมมั่นใจว่าคนอื่นๆ กำลังใช้งานในแบบที่ผมยังนึกไม่ถึง ฉะนั้นบอกผมด้วยนะ!





