0
0
Lập trình
Thaycacac
Thaycacac thaycacac

Tại Sao Kế Hoạch Quan Trọng Trong Lập Trình AI Agent

Đăng vào 6 tháng trước

• 8 phút đọc

Tại Sao Kế Hoạch Quan Trọng Trong Lập Trình AI Agent: Khắc Phục Các Lệnh Không Khớp

Khi làm việc với các công cụ lập trình AI, chúng ta thường chỉ đưa ra một lệnh ngắn và hy vọng rằng đầu ra sẽ đúng. Đôi khi điều này hiệu quả, nhưng thường thì không. Vấn đề rất đơn giản: AI không hoàn toàn hiểu được ý định của chúng ta. Ngay cả những hiểu lầm nhỏ từ đầu cũng có thể biến thành những sửa chữa lớn sau này. Giải pháp là lập kế hoạch. Trong bài viết này, chúng ta sẽ xem xét lý do tại sao kế hoạch quan trọng, cách nó khắc phục các lệnh không khớp và cách chế độ lập kế hoạch của Verdent giúp lập trình với AI đáng tin cậy hơn.

Lệnh Không Khớp = Mã Không Khớp

Hãy xem xét một ví dụ về một lệnh rất đơn giản:

Copy
"Thêm một endpoint để lấy đơn hàng."

Nhìn thoáng qua, điều này có vẻ rõ ràng. Một AI agent có thể tạo ra mã mà "hoạt động". Nhưng thường thì nó bỏ qua những chi tiết nhỏ nhưng quan trọng: xác thực đầu vào cho API, các trường dữ liệu chính xác trong phản hồi, hoặc tuân theo cấu trúc mà ứng dụng của bạn đã sử dụng. Phần lớn thời gian, vấn đề không phải là AI "kém". Mà là lệnh không đủ cụ thể. Một kế hoạch mơ hồ dẫn đến kết quả mơ hồ.

Và điều này không chỉ là lý thuyết:

  • Nghiên cứu cho thấy rằng các công cụ lập trình AI có thể giúp lập trình viên nhanh hơn ~55% trong các nhiệm vụ, nhưng tốc độ không đảm bảo độ chính xác nếu yêu cầu không rõ ràng. Ý định rõ ràng vẫn rất quan trọng.
  • Các nhà nghiên cứu bảo mật phát hiện rằng 24-33% các đoạn mã được tạo bởi Copilot trong các dự án GitHub thực sự có thể gặp phải vấn đề về bảo mật. Việc thiếu xác thực và hiểu sai yêu cầu là những nguyên nhân phổ biến.

Các kỹ sư phần mềm chuyên nghiệp đã áp dụng một phương pháp tương tự: họ làm rõ ý định, liệt kê các trường hợp biên, viết kiểm tra và sau đó mới lập trình. Có lý do tốt cho điều này: nghiên cứu phần mềm cổ điển cho thấy chi phí sửa chữa lỗi tăng mạnh khi bạn phát hiện chúng muộn. Lập kế hoạch giải quyết vấn đề khi chúng vẫn còn rẻ.

Khắc Phục Nguyên Nhân Căn Bản Bằng Kế Hoạch

Hầu hết các vấn đề với lập trình AI không phụ thuộc vào mô hình bạn sử dụng, mà có thể do các lệnh không khớp. Lệnh ngắn thường gây nhầm lẫn cho agent. Lệnh dài vẫn không rõ ràng và rất tốn kém.

Kế hoạch giải quyết vấn đề này bằng cách biến yêu cầu ngắn của bạn thành một danh sách kiểm tra chung mà AI sẽ tuân theo. Nó cũng kết hợp tự nhiên với việc xác minh. Vì vậy, thay vì đổ thêm từ vào một lệnh lớn, bạn lập kế hoạch, xác minh, rồi mới lập trình.

Những Gì Một Kế Hoạch Thêm Vào

Một chế độ Lập Kế Hoạch tốt biến một ý tưởng ngắn thành một danh sách nhiệm vụ từng bước mà bạn có thể xác nhận trước khi thay đổi mã:

  1. Phân tích ID đơn hàng từ URL.
  2. Xác thực ID là một số nguyên.
  3. Truy vấn kho lưu trữ (hoặc kho giả nếu cơ sở dữ liệu bị thiếu).
  4. Trả về JSON với id, customer_name, total_price.
  5. Nếu không tìm thấy → trả về 404 với chi tiết vấn đề.

Khi agent lập kế hoạch trước, bạn và AI sẽ đồng bộ hơn. Có ít bất ngờ và sửa đổi hơn. Một số agent lập trình đã cố gắng giải quyết việc lập kế hoạch:

  • Cline tách biệt Kế Hoạch (đọc - chỉ, lập bản đồ công việc) và Hành Động (thay đổi). Bạn có thể xem kế hoạch và phê duyệt nó trước khi chỉnh sửa được thực hiện. Nó cũng hiển thị bảng điều khiển nhiệm vụ, vì vậy tiến trình không phải là một bí ẩn.
  • Cursor Agent lập kế hoạch bằng cách sử dụng các việc cần làm có cấu trúc có thể chạy lệnh, và thậm chí "thêm kiểm tra và chạy chúng" theo yêu cầu, vì vậy kế hoạch tự nhiên dẫn đến việc xác minh.
  • Aider (đối tác lập trình tại terminal) có các quy trình tích hợp để chạy kiểm tra và sử dụng các lỗi để hướng dẫn sửa chữa, và phản ánh cách mà các lập trình viên cấp cao gỡ lỗi.

Danh Sách Kiểm Tra Đơn Giản Bạn Có Thể Sử Dụng Ngày Hôm Nay

Bạn có thể sử dụng mẫu lệnh này để đạt được kết quả tốt hơn:

  1. Nêu mục tiêu trong một dòng.
  2. Liệt kê đầu vào/đầu ra với các hình dạng chính xác.
  3. Viết kiểm tra chấp nhận (điều gì phải đúng để gọi là hoàn thành).
  4. Đặt tên các trường hợp biên (không tìm thấy, đầu vào không hợp lệ, timeout).
  5. Xác nhận kế hoạch với agent trước khi lập trình.
  6. Chạy kiểm tra (tự động tạo hoặc có sẵn) và lặp lại cho đến khi đạt.

Đây là cách bạn biến lệnh ban đầu "thực hiện X" thành "đây là cách chúng ta sẽ thực hiện X, và cách chúng ta sẽ biết nó đúng."

Các Lỗ Hổng Kế Hoạch Trong Các Agent Lập Trình Phổ Biến

Trong các công cụ phổ biến, các lỗ hổng trong lập kế hoạch xuất hiện theo những cách khác nhau. GitHub Copilot rất tốt cho mã nội tuyến nhanh chóng, nhưng nó không có kế hoạch rõ ràng, vì vậy những giả định ẩn có thể lén lút vào và các thay đổi giữa các tệp rất dễ bị bỏ qua. Cursor Agent có thể phác thảo các bước, nhưng thường thì nó trộn lẫn kế hoạch và thực thi trong cùng một quy trình, vì vậy các chỉnh sửa có thể bắt đầu trước khi kế hoạch được khóa, và agent phụ thuộc vào người dùng để chỉ ra các tiêu chí "hoàn thành". Cline tách biệt rõ ràng Kế Hoạch và Hành Động, nhưng các kế hoạch có thể quá nông nếu ngữ cảnh kho lưu trữ không được tải, và các kiểm tra không được thêm trừ khi bạn yêu cầu, vì vậy chất lượng vẫn phụ thuộc vào bạn. Aider khuyến khích một vòng lặp kiểm tra trước, nhưng nếu bạn chưa có kiểm tra, "kế hoạch" có thể sụp đổ thành các chỉnh sửa tạm thời.

Những lỗ hổng phổ biến giữa các nhà cung cấp mà chúng tôi đã xác định:

  • Các kế hoạch hiếm khi bao gồm các kiểm tra chấp nhận rõ ràng, danh sách các trường hợp biên, hoặc khả năng truy xuất từ các mục kế hoạch đến các cam kết/kiểm tra.
  • Chúng không đánh dấu các điều chưa biết hoặc rủi ro ngay từ đầu, và chúng hiếm khi ngăn chặn độ trôi phạm vi một khi agent bắt đầu thay đổi mã.

Cách Lập Kế Hoạch Hoạt Động Trong Verdent

Verdent đưa ý tưởng này xa hơn bằng cách làm cho lập kế hoạch là bước đầu tiên trong mỗi nhiệm vụ lập trình. Khi bạn nhập một yêu cầu, Verdent không vội vàng vào các chỉnh sửa. Thay vào đó, nó tạo ra một kế hoạch nhiệm vụ có cấu trúc. Verdent tạo ra các nhiệm vụ con, các phụ thuộc của chúng, và thậm chí cả các trường hợp kiểm tra liên quan. Bạn có thể xem xét, chấp nhận hoặc điều chỉnh kế hoạch này trước khi bất kỳ thay đổi nào được thực hiện. Khi kế hoạch được phê duyệt, Verdent thực hiện các agent phụ để viết mã, chạy kiểm tra, và tự sửa chữa cho đến khi mọi thứ phù hợp với kế hoạch. Bằng cách này, AI không chỉ cung cấp cho bạn các đoạn mã, mà còn cung cấp cho bạn một quy trình làm việc có thể dự đoán được nơi mà lập kế hoạch, lập trình, và xác minh được kết nối chặt chẽ với nhau.

Như bạn có thể thấy, có sự tiến bộ rõ ràng trong Bảng Điều Khiển Nhiệm Vụ (những gì đã hoàn thành, những gì đang thất bại, những gì tiếp theo), và mỗi thay đổi đều có thể giải thích với các diff, ghi chú nội tuyến, và báo cáo kiểm tra. Đối với các thay đổi lớn hơn, Verdent cũng có thể tạo ra một bản đồ kiến trúc để cho thấy mã mới phù hợp ở đâu.

Thực Hành Tốt Nhất Khi Sử Dụng Lập Kế Hoạch Verdent

  • Giữ cho kế hoạch ngắn gọn. Kế hoạch nên tự trả cho nó.
  • Theo dõi các tín hiệu đơn giản sau mỗi lần chạy:
    • Tỷ lệ kiểm tra qua lần chạy đầu tiên → càng cao càng tốt.
    • Sửa lại/sửa nóng sau khi hợp nhất → càng thấp càng tốt.
    • Thời gian từ lệnh đầu tiên đến PR → nên giảm dần khi kế hoạch được cải thiện.
    • Chi phí token cho mỗi thay đổi đã hợp nhất → nên giảm khi agent ngừng lang thang.
  • Xem xét với các công cụ hữu ích của Verdent: sử dụng Bảng Điều Khiển Nhiệm Vụ và nhật ký chạy để kiểm tra các tín hiệu này.
  • Củng cố các mẫu của bạn:
    • Thêm hoặc cải thiện các kiểm tra chấp nhận khi các kiểm tra bỏ sót các vấn đề.
    • Liệt kê các trường hợp biên khi bạn thấy các lỗi 404 hoặc lỗi xác thực lặp lại.
    • Tách các kế hoạch quá lớn khi một nhiệm vụ vượt quá. Bạn có thể tạo một phiên trò chuyện riêng và chạy một nhiệm vụ khác với một phần nhỏ của kế hoạch.
  • Giữ cho các vòng lặp ngắn: các đánh giá nhanh và lặp lại nhỏ giữ cho kế hoạch nhanh chóng, tập trung, và đáng giá.

Kết Luận

Tương lai không chỉ là việc gõ nhanh hơn. Lập kế hoạch khắc phục các lệnh không khớp bằng cách làm cho ý định của bạn trở nên rõ ràng và có thể kiểm tra được, để agent xây dựng thứ bạn muốn, không chỉ là thứ bạn đã gõ. Đó là cách chúng ta chuyển từ những đầu ra ngẫu nhiên sang phần mềm đáng tin cậy. Bạn đã sẵn sàng để lập trình với kế hoạch và sự rõ ràng chưa?

Thử nghiệm Verdent ngay hôm nay và xem cách lập kế hoạch biến các lệnh của bạn thành mã sẵn sàng sản xuất.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào