Không Agent nào tự chấm điểm bài tập của chính mình
Bạn yêu cầu Claude xem lại mã nguồn của mình. Nó nói rằng mã nguồn trông rất sạch sẽ. Dĩ nhiên là vậy rồi. Nó vừa mới viết đoạn mã đó năm phút trước. Bạn đang yêu cầu tác giả tự chấm điểm bài làm của chính mình. Và anh ta tự cho mình điểm A.
Việc đánh giá mã nguồn bằng AI có hiệu quả. Chúng chỉ thất bại khi bạn yêu cầu tác giả tự xem lại công việc của chính họ. Chất lượng đến từ một kiến trúc mà trong đó không có vai trò nào tự kiểm tra chính mình.
Nghiên cứu từ năm 2024 cho thấy một sự thiên kiến tự ưu tiên (self-preference bias). Một mô hình sẽ đánh giá kết quả đầu ra của chính nó cao hơn so với các kết quả khác có chất lượng tương đương. Mô hình nhận ra phong cách của chính nó và ưu tiên phong cách đó.
Vòng lặp "viết, sau đó xem lại những gì vừa viết" là một vòng lặp lỗi. Bạn không nhận được một bản đánh giá. Bạn chỉ nhận được một sự biện hộ. Agent đã quyết định rằng đoạn mã đó là tốt rồi. Việc hỏi lại chỉ nhằm xác nhận lại quyết định đó mà thôi.
Hãy tuân thủ các quy tắc sau để xây dựng các quy trình làm việc (workflow) cho agent tốt hơn:
- Người đánh giá không bao giờ là tác giả. Hãy sử dụng một dòng mô hình (model family) khác cho người đánh giá để phá vỡ sự nhận diện phong cách.
- Sử dụng ngữ cảnh sạch. Người đánh giá không nên thấy prompt triển khai ban đầu hoặc các ràng buộc do tác giả thiết lập.
- Loại bỏ danh tính. Đừng nói cho người đánh giá biết ai là người đã viết mã. Danh tính của tác giả sẽ kích hoạt sự thiên kiến.
- Tránh việc báo lỗi quá mức (over-flagging). Các AI reviewer thường tự "bịa" ra vấn đề để tỏ ra hữu ích. Điều này khiến bạn dần mất niềm tin vào chúng.
Sử dụng "quy tắc biên lai" (receipt rule) để ngăn chặn các cảnh báo giả. Mọi phát hiện phải đi kèm với bằng chứng trước khi bạn xem xét nó.
Nếu một người đánh giá tuyên bố có rủi ro SQL injection, họ phải cung cấp:
- Một lệnh
grepcủa đầu vào người dùng. - Một vết truy vết (trace) của luồng truy vấn.
Nếu giá trị là một hằng số, hãy loại bỏ phát hiện đó. Nếu nó đến từ một yêu cầu HTTP, hãy giữ lại. Bằng chứng phải có trước khi đưa ra phán xét.
Đối với các phát hiện quan trọng, hãy sử dụng một hội đồng những người hoài nghi (panel of skeptics). Công việc của họ không phải là xác nhận lỗi. Công việc của họ là bác bỏ nó. Họ phải cố gắng chứng minh tại sao phát hiện đó không phải là một lỗi. Chỉ khi đa số không thể bác bỏ được phát hiện đó, thì nó mới được thông qua.
Sự thật đến từ sự mâu thuẫn, chứ không phải từ sự tự tuyên bố.
Hãy xây dựng một hệ thống nơi các vai trò không bao giờ chồng chéo:
- Người viết viết mã.
- Người kiểm thử chỉ viết các bài kiểm tra (tests) dựa trên đặc tả (spec).
- Người đánh giá không viết mã.
- Các cổng kiểm soát khách quan như linting và tests phải vượt qua trước khi bất kỳ con người hay LLM nào xem xét nó.
Một bộ sửa lỗi tự sửa lỗi chính mình thì sẽ chẳng sửa được gì cả. Chất lượng của một bản đánh giá AI phụ thuộc vào việc bạn ngăn chặn nó tự chấm điểm chính mình bao nhiêu lần.
Source: https://dev.to/ohugonnot/no-agent-grades-its-own-homework-8lb
Optional learning community: https://t.me/GyaanSetuAi
