Nếu bạn từng xem một agent cố gắng sửa lỗi, bạn sẽ thấy nó phải phán đoán. Nó đọc code, đưa ra một giả thuyết, thực hiện một chỉnh sửa, và hy vọng. Đôi khi nó đúng. Rất nhiều lần bạn nhận được một bản sửa lỗi trông có vẻ tự tin nhưng lại âm thầm che giấu lỗi thực sự.
Debug Mode là thứ chúng tôi xây dựng cho trường hợp đó. Thay vì ngồi suy luận về code, agent sẽ đi tìm bằng chứng về những gì code thực sự làm khi nó chạy.
Đây là vòng lặp:
- Agent đưa ra nhiều giả thuyết và bắt đầu xử lý giả thuyết khả thi nhất trước.
- Sau đó, logging được thêm vào để kiểm tra một giả thuyết (mà không chạm vào phần triển khai).
- Một máy chủ debug nhỏ thu thập đầu ra runtime vào
.cursor/debug.logtrong khi chương trình của bạn chạy. - Bạn tái hiện lỗi, và giờ agent có thể đọc log và hiểu chuyện gì đã xảy ra thay vì phải phán đoán.
- Cursor tìm ra nguyên nhân gốc rễ trong log, thực hiện sửa lỗi và loại bỏ logging mà nó đã thêm vào.
Dưới đây là cách nó hoạt động trên một lỗi thực tế, được tăng tốc trong khoảng một phút:
Cách nhóm sử dụng nó
Một số điều thú vị mà chúng tôi đã giải quyết nội bộ với debug mode:
- Một điều kiện race (race condition) xảy ra 1 trên 20 lần chạy. Nó đã làm hỏng metadata git trong các lần chạy best-of-N của chúng tôi. Debug Mode đã xác định chính xác nó trong vòng chưa đầy một giờ.
- Một rò rỉ bộ nhớ (memory leak), được truy vết chỉ trong một lần. Nguyên nhân là do sử dụng sai framework frontend của chúng tôi. Bản sửa lỗi chỉ là một dòng code.
- Một lỗi crash native sâu trong C++. Một lỗi crash Electron mà mọi người thường tìm cách né tránh. Các log đã giúp tìm ra nó.
- Một lỗi nhấp nháy SSR (SSR flicker) đã bị bỏ cuộc. Một lỗi rendering mà không ai muốn động vào, đã được sửa khi agent có thể thấy trang web đang làm gì trong thời gian chạy.
Hãy thử nó với Shift+Tab (nó cũng có trong CLI, qua /debug).
Tôi chắc rằng mọi người đang sử dụng nó theo những cách mà tôi chưa nghĩ tới, vì vậy hãy cho tôi biết nhé!





