Rất nhiều người gọi chung mọi công cụ AI viết code là "Copilot", nhưng thực tế có ba cấp độ khác nhau. Hiểu đúng cấp độ giúp bạn chọn công cụ đúng và không kỳ vọng sai.
Ba cấp độ trợ lý AI trong lập trình
- Autocomplete (gợi ý dòng lệnh): AI đoán vài dòng tiếp theo dựa trên ngữ cảnh con trỏ. Bạn vẫn là người lái. Ví dụ điển hình: GitHub Copilot bản gốc.
- Chat/Edit trong IDE: Bạn chọn một đoạn code, ra lệnh bằng ngôn ngữ tự nhiên ("refactor hàm này thành async"), AI sửa ngay trong file. Cursor và Windsurf mạnh ở đây.
- Agent tự chủ (agentic): Bạn giao một nhiệm vụ ("thêm endpoint đăng nhập, viết test, chạy test cho pass"), agent tự đọc nhiều file, sửa nhiều nơi, chạy lệnh terminal, đọc kết quả và lặp lại. Claude Code, Aider, Devin thuộc nhóm này.
Ví dụ cụ thể
Giả sử bạn cần sửa một bug: hàm tính thuế trả sai số khi giá trị âm.
- Với autocomplete: bạn phải tự mở file, tự tìm hàm, gõ sửa; AI chỉ gợi ý cú pháp.
- Với agent: bạn gõ một câu.
Bug: calc_tax() trả sai với input âm.
Hãy tìm hàm, viết 1 test tái hiện bug, sửa, chạy test cho pass.
Agent sẽ grep tìm calc_tax, đọc file, viết test, chạy pytest, đọc thông báo lỗi, sửa, chạy lại — tất cả trong một lượt.
Các bước để nhận diện bạn đang cần cấp độ nào
- Xác định phạm vi công việc: một dòng, một hàm, hay nhiều file?
- Hỏi: công việc có cần chạy lệnh (test, build, git) không?
- Nếu chỉ gõ nhanh trong lúc code -> autocomplete là đủ.
- Nếu cần sửa có chủ đích một vùng cụ thể -> chat/edit.
- Nếu cần "giao việc rồi đi làm việc khác" -> agent tự chủ.
Khung tư duy: Tam giác Kiểm soát – Tự chủ – Rủi ro
- Càng tự chủ, càng nhanh nhưng càng cần review kỹ.
- Càng kiểm soát (từng dòng), càng an toàn nhưng chậm.
- Chọn cấp độ theo mức độ bạn tin vào output và khả năng rollback.
Checklist chọn cấp độ
- [ ] Tôi có thể mô tả nhiệm vụ bằng một câu rõ ràng không?
- [ ] Có test hoặc cách kiểm chứng tự động không?
- [ ] Nếu agent làm sai, tôi có git để hoàn tác không?
- [ ] Vùng code có nhạy cảm (thanh toán, bảo mật) không?
Sai lầm thường gặp
- Kỳ vọng agent "đọc được suy nghĩ": nhiệm vụ mơ hồ -> kết quả lan man. Agent cần tiêu chí thành công rõ ràng.
- Giao việc lớn cho agent mà không có test: không có cách kiểm chứng -> bạn phải đọc từng dòng, mất luôn lợi ích tốc độ.
- Dùng autocomplete để làm việc của agent: cố dùng Copilot gõ tay refactor 10 file, chậm và dễ sót.
- Không dùng version control: agent sửa hỏng mà không rollback được là thảm họa.
<!--les-append-->
Vì sao ba cấp độ này đòi ba kỹ năng khác nhau
Phân biệt cấp độ không chỉ để chọn công cụ — mỗi cấp độ đòi bạn làm một việc khác:
| Cấp độ | Việc của bạn | Kỹ năng quyết định |
|---|---|---|
| Autocomplete | Đọc và chấp nhận từng gợi ý | Đọc code nhanh |
| Chat/Edit trong IDE | Diễn đạt yêu cầu, xem diff | Viết yêu cầu rõ ràng |
| Agent tự chủ | Đặt tiêu chí nghiệm thu, rồi kiểm | Biết thế nào là xong |
Điều agent tự chủ thay đổi: ai giữ ngữ cảnh
Với autocomplete, ngữ cảnh ở trong đầu bạn. Bạn biết vì sao mỗi dòng ở đó.
Với agent, ngữ cảnh ở trong phiên làm việc của agent — và nó mất khi phiên kết thúc. Bạn còn lại code không ai trong đội hiểu lý do tồn tại, kể cả bạn. Đây là dạng nợ kỹ thuật mới mà autocomplete không tạo ra.
Cách chặn: mỗi lần agent làm xong một việc đáng kể, bạn viết hai dòng vào mô tả commit hoặc PR — vì sao làm cách này, và phương án nào đã bị loại. Nếu bạn không viết được hai dòng đó, bạn chưa hiểu code mình vừa nhận.
Phép thử: bạn có thật sự dùng được cấp độ 3 chưa
Ba câu, trả lời trung thực:
- Dự án của bạn có test chạy được bằng một lệnh không?
- Bạn có nói được "xong" nghĩa là gì, bằng một tiêu chí kiểm được không?
- Bạn có đọc được diff 300 dòng và phát hiện chỗ sai không?
Không đạt cả ba thì hãy ở cấp 1–2 trước. Đó không phải lùi bước — đó là dùng đúng công cụ.
Sai kỳ vọng phổ biến nhất
"Agent làm được mọi việc, chỉ cần mô tả rõ." Không đúng. Agent mạnh ở việc có tiêu chí kiểm được (sửa cho test pass, thêm endpoint theo mẫu có sẵn, đổi tên xuyên dự án) và yếu ở việc đòi phán đoán kiến trúc hoặc bối cảnh nghiệp vụ không có trong code.
Nói cách khác: agent tốt ở việc bạn biết cách kiểm, kém ở việc bạn phải nghĩ.
Làm ngay
Trả lời ba câu ở trên cho dự án bạn đang làm. Nếu câu 1 là "không", việc đáng làm nhất tuần này không phải là thử một công cụ AI — mà là làm cho test chạy được bằng một lệnh. <!--/les-append-->