Mỗi Pull Request (PR) là một điểm nghẽn quen thuộc: reviewer bận, phản hồi chậm nửa ngày, và những lỗi lặp đi lặp lại (thiếu null-check, log lộ token, quên xử lý lỗi) vẫn lọt qua. Linter bắt được lỗi cú pháp và style, nhưng nó không hiểu ngữ cảnh: nó không biết hàm này vừa đổi contract API, không biết đoạn code mới thiếu test cho nhánh lỗi. Đó là khoảng trống mà Agent review PR lấp vào.
Agent khác linter và khác chatbot ở đâu
| Tiêu chí | Linter/Formatter | Chatbot hỏi-đáp | Agent review PR |
|---|---|---|---|
| Hiểu ngữ cảnh diff | Không | Một phần | Có, đọc diff + file liên quan |
| Tự chạy trong CI | Có | Không | Có |
| Gợi ý sửa cụ thể | Ít | Có | Có, kèm patch |
| Quyết định block/pass | Theo rule cứng | Không | Theo policy có thể tinh chỉnh |
Ví dụ cụ thể
Một PR sửa hàm thanh toán, thêm dòng:
def charge(user, amount):
balance = get_balance(user)
return api.charge(user, amount) # thiếu kiểm tra balance < amount
- Linter: im lặng (cú pháp đúng).
- Agent: đọc diff, thấy
balanceđược tính nhưng không dùng, suy ra thiếu kiểm tra số dư, và comment: "Dòng 3:balancetính ra nhưng không được kiểm tra trước khi charge — khả năng cho phép chi vượt số dư. Gợi ý thêmif balance < amount: raise InsufficientFunds."
Khung tư duy: 4 lớp giá trị của agent review
- Chặn lỗi nghiêm trọng (bug logic, lỗ hổng bảo mật) — ưu tiên cao nhất.
- Chuẩn hoá chất lượng (thiếu test, thiếu xử lý lỗi, đặt tên khó hiểu).
- Giảm tải cho người (bắt lỗi vặt để reviewer tập trung vào thiết kế).
- Kiến thức lan toả (giải thích vì sao để dev học được).
Các bước để hình dung một agent tối thiểu
- Xác định trigger: PR mở hoặc cập nhật.
- Lấy diff và metadata (tiêu đề, mô tả, danh sách file).
- Ghép prompt gồm diff + tiêu chí review.
- Gọi LLM để nhận danh sách nhận xét dạng cấu trúc.
- Đăng nhận xét lên PR và quyết định pass/block.
Checklist trước khi bắt đầu
- [ ] Đội bạn đau nhất ở loại lỗi nào? (bảo mật? test? style?)
- [ ] Bạn muốn agent chặn merge hay chỉ góp ý? (giai đoạn đầu nên góp ý)
- [ ] Có linter/test sẵn chưa? Agent nên bổ sung, không thay thế.
- [ ] Ai chịu trách nhiệm khi agent sai?
Sai lầm thường gặp
- Kỳ vọng agent thay thế review người ngay lập tức. Giai đoạn đầu agent nên chạy song song, ở chế độ góp ý, để xây niềm tin.
- Bắt agent làm mọi thứ. Một agent "review tất cả" sẽ nói lan man và nhiều false positive. Hãy thu hẹp phạm vi (ví dụ chỉ bảo mật + logic) trước.
- Bỏ qua linter/test có sẵn. Đừng để LLM đi kiểm tra style — việc đó linter làm rẻ và chắc chắn hơn. Dành LLM cho phần cần hiểu ngữ cảnh.
- Không định nghĩa "thành công". Nếu không đo tỷ lệ nhận xét hữu ích, bạn không biết agent tốt lên hay tệ đi.
Học xong bài này rồi?
Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu,
và học hết khóa thì có chứng chỉ.
Lưu tiến độ của tôi