Xóa 168.000 dòng chú thích: AI Agent có nhận ra không?

Công nghệ14 tháng 10, 2026·6 phút đọc

Một thử nghiệm trên cơ sở mã thực tế cho thấy việc xóa toàn bộ chú thích trong mã nguồn không làm giảm chất lượng code do AI agent viết ra. Kết quả còn tiết lộ rằng chạy thử một lần là không đủ để đánh giá vì AI agent có tính bất định cao.

Xóa 168.000 dòng chú thích: AI Agent có nhận ra không?

Xóa 168.000 dòng chú thích: AI Agent có nhận ra không?

Gần một phần ba mã nguồn trong dự án của Roberto Aranda là chú thích — và phần lớn trong số đó do chính các AI agent viết ra. Anh quyết định xóa sạch toàn bộ 168.000 dòng chú thích rồi giao cùng một nhiệm vụ cho cùng một agent trên cả hai phiên bản mã nguồn, mỗi bên ba lần. Kết quả khiến nhiều người bất ngờ: chất lượng code sinh ra không hề khác biệt.

Bối cảnh của thử nghiệm

Trong một video ở mốc 23:07, Lauren tiết lộ rằng nhóm của cô không cho phép các agent viết chú thích trong code. Cơ sở mã của Aranda thì ngược lại hoàn toàn: đầy ắp chú thích, và phần lớn do agent tạo ra.

Điều này đặt ra câu hỏi thực tế: liệu đống chú thích đó có đang giúp ích cho agent, hay chỉ là phần văn bản thừa mà nó phải đọc?

Cách bố trí thử nghiệm

Tác giả tạo một bản sao của cơ sở mã với mọi chú thích bị loại bỏ, tổng cộng khoảng 168.000 dòng. Sau đó, cùng một nhiệm vụ được giao cho cùng một agent trên cả hai bản, lặp lại ba lần mỗi bên, và kết quả được kiểm tra theo cùng một tiêu chuẩn. Thử nghiệm gồm hai nhiệm vụ: một nhỏ và một lớn hơn.

Kết quả: khác biệt nằm trong ngưỡng nhiễu

Mọi lần chạy đều vượt qua tất cả các bước kiểm tra: lint, kiểm tra kiểu dữ liệu, các bài test hiện có, và với nhiệm vụ lớn hơn là một bài test ẩn mà agent chưa từng thấy. Một "trọng tài AI" riêng biệt chấm điểm từng kết quả mà không biết nó đến từ bản nào.

Nhiệm vụ nhỏ: xếp lớp tất cả cửa sổ đang mở (thang điểm 19)

NhánhĐiểmTokenChi phí
Có chú thích18,32,18M1,42 USD
Không chú thích19,01,71M1,04 USD

Nhiệm vụ lớn hơn: giữ một cửa sổ luôn nổi trên cùng (thang điểm 23)

NhánhĐiểmTokenChi phí
Có chú thích21,79,06M3,84 USD
Không chú thích22,09,12M3,95 USD

Các con số là trung bình của ba lần chạy. Chênh lệch về điểm nằm trong ngưỡng nhiễu, tương tự với chi phí ở nhiệm vụ lớn. Ở nhiệm vụ nhỏ, agent dùng ít hơn khoảng 22% token khi không có chú thích — điều này hợp lý vì đơn giản là có ít nội dung hơn để đọc.

Cái bẫy trong nhiệm vụ lớn

Nhiệm vụ lớn hơn cài sẵn một cái bẫy: trạng thái ghim phải tồn tại qua một lần tải lại trang, nhưng hàm PHP lưu phiên cửa sổ lại loại bỏ mọi khóa mà nó không nhận biết. Nếu bỏ sót, tính năng trông vẫn ổn cho đến khi bạn tải lại trang.

Đây chính là kiểu tình huống mà ta thường nghĩ rằng chú thích sẽ giúp ích. Vậy mà cả sáu lần chạy đều phát hiện ra cái bẫy — dù có chú thích hay không.

Chạy một lần là chưa đủ

Kế hoạch ban đầu của tác giả là chỉ chạy mỗi nhánh một lần. Anh thấy may vì đã không làm vậy.

Ở nhiệm vụ lớn, ba lần chạy có chú thích tiêu tốn 8,21M, 8,79M và 10,17M token. Ba lần không chú thích dùng 7,01M, 9,70M và 10,64M.

Nếu tôi chọn một lần chạy từ mỗi nhánh, tôi có thể viết được hai bài blog trái ngược nhau. So sánh 10,64M với 8,21M thì việc xóa chú thích khiến agent đắt hơn 30%. So sánh 7,01M với 10,17M thì nó lại rẻ hơn 31%. Cùng nhiệm vụ, cùng code, cùng ngày.

Bài học rút ra: AI agent không mang tính tất định. Nếu bạn đang đo lường một agent, hãy chạy nó nhiều hơn một lần.

Thiết lập thử nghiệm

  • Agent: Claude Code với Opus 5.5, chế độ effort cao. Cùng model và cấu hình cho mọi lần chạy.
  • Hai cơ sở mã: nhánh chính, và một bản sao đã xóa chú thích. Cả hai đều được biên dịch và kiểm tra để đảm bảo code sinh ra giống hệt nhau. Chỉ còn lại những chú thích mà công cụ cần để hoạt động, chẳng hạn như chỉ thị lint và header plugin, khoảng 800 dòng.
  • Nhiệm vụ: hai tính năng thực tế, với cùng một câu lệnh trên cả hai nhánh.
  • Kiểm tra: lint, kiểm tra kiểu và test của chính dự án. Với nhiệm vụ lớn, thêm một bài test ẩn được chèn sau khi agent hoàn thành, để nó không thể viết code chỉ nhằm vượt qua bài test.
  • Trọng tài: một phiên Claude riêng đọc từng thay đổi và chấm theo một danh sách tiêu chí được soạn trước khi chạy. Các thay đổi được dán nhãn bằng tên ngẫu nhiên để trọng tài không biết nguồn gốc.
  • Số lần chạy: ba lần mỗi nhánh cho mỗi nhiệm vụ, luân phiên giữa các nhánh để yếu tố thời điểm trong ngày ảnh hưởng như nhau.

Kết luận: hãy viết chú thích vì con người

Với agent, chú thích trong code không tạo ra khác biệt về chất lượng code mà nó viết ra. Chúng không giúp ích, cũng không gây hại.

Vì vậy, hãy giữ hay xóa một chú thích dựa trên giá trị của nó đối với những người đọc code, chứ không phải vì agent.

Tác giả cũng thẳng thắn lưu ý rằng thử nghiệm này chưa đủ để khẳng định chú thích không có tác động nào. Anh chỉ kiểm tra một model, hai nhiệm vụ và ba lần chạy mỗi nhánh — đủ để loại trừ một hiệu ứng lớn, nhưng chưa đủ để loại trừ một hiệu ứng nhỏ.

Đáng chú ý, bước tiếp theo trong nghiên cứu này hứa hẹn còn gây tranh cãi hơn: xóa chú thích không tạo ra khác biệt, nhưng xóa thư mục docs/ và tệp AGENTS.md thì có.

Góc nhìn cho lập trình viên Việt Nam

Với các nhóm phát triển phần mềm trong nước đang ngày càng dựa vào các công cụ như Claude Code, Cursor hay GitHub Copilot để tăng tốc, kết quả này mang vài hàm ý thiết thực:

  • Đừng tốn thời gian tối ưu chú thích cho agent. Nếu mục tiêu là giúp AI viết code tốt hơn, công sức đó nên dồn vào việc cung cấp cấu trúc dự án rõ ràng, tài liệu kiến trúc và các bài test chất lượng.
  • Hãy đo lường nghiêm túc. Nếu bạn định đánh giá một model hay một cách tiếp tục tối ưu prompt, đừng kết luận từ một lần chạy. Chi phí token có thể chênh nhau hơn 30% chỉ vì may mắn.
  • Chú thích vẫn quan trọng — nhưng cho con người. Trong một thị trường mà đội ngũ thường xuyên thay đổi và bàn giao dự án, chú thích tốt vẫn là tài sản dài hạn giúp đồng nghiệp của bạn đọc hiểu code nhanh hơn.

Bài viết gốc được đăng trên openstation.blog kèm dữ liệu đầy đủ, script thử nghiệm và các pull request minh họa.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗