Vũ Mạnh Tuấn
← Tất cả bài viết
AI4 phút đọc

Series Hiểu Claude · Bài 4/5

Khi AI đọc và sửa được cả một dự án

Khác biệt giữa chat và agent không nằm ở chỗ mô hình thông minh hơn, mà ở chỗ nó được phép làm gì.

Bạn từng copy một đoạn code vào chat, hỏi lỗi ở đâu, rồi tự quay lại dự án để vá. Cũng có lúc bạn cho AI đọc cả dự án: nó tự tìm, tự mở file, tự sửa, tự lưu.

Hai trải nghiệm đó khác nhau ở một thứ duy nhất: quyền bạn trao cho nó. Không phải mô hình bên nào thông minh hơn.

Chat và agent khác nhau chỗ nào

Chat: bạn dán bối cảnh vào, nó trả lời bằng chữ. Nó không thấy cây thư mục, không chạy được lệnh, không chạm được file. Bạn tự đối chiếu, tự sửa.

Agent: bạn cấp công cụ cho nó. Đọc thư mục, tìm trong dự án, chạy lệnh giới hạn, mở và ghi file. Bạn nêu mục tiêu, nó tự gom thông tin, tự đề xuất sửa, rồi áp dụng nếu bạn duyệt.

Cùng một mô hình cũng được. Cảm giác "khác hẳn" đến từ phạm vi hành động bạn cho phép.

Cách làm việc đổi thế nào

Khi chỉ chat, bạn làm người điều phối: file nào, dòng nào, đổi gì. Từng bước nhỏ đều qua tay bạn, và mất thời gian nhất là đoạn chuyển qua chuyển lại.

Khi dùng agent, bạn nói kết quả muốn có. Ví dụ: "Thêm bộ lọc theo tag ở trang danh sách, giữ nguyên phân trang."

Nó tự tìm chỗ render danh sách, lần theo API, thêm tham số, chỉnh component, cập nhật test nếu có, rồi trình bày diff kèm lý do.

Nhịp làm việc dịch từ hướng dẫn từng bước sang duyệt thay đổi.

Mặt trái, nói thẳng luôn

  • Đúng chữ, sai ý. Nó làm y như bạn viết, nhưng bỏ sót mấy trường hợp ẩn hoặc ràng buộc ngầm mà bạn quên nói.
  • Nhanh quá nên review không kịp. Diff dài tới mức bạn lướt thay vì đọc.
  • Quyền càng rộng, hỏng càng rộng. Nó hiểu sai mà lại có quyền ghi nhiều thư mục thì cái sai lan ra khắp nơi.

Mấy nguyên tắc mình theo

  • Chia việc nhỏ. Giao mục tiêu hẹp, xong bước này mới mở tiếp. Kiểu chỉ "thêm tham số và nối qua controller", chưa đụng UI.
  • Bắt nó lập kế hoạch trước. Liệt kê mục tiêu, file sẽ chạm, các bước, cách kiểm tra. Mình duyệt xong mới cho chạy.
  • Luôn xem diff. Đòi tóm tắt thay đổi theo từng file kèm lý do. Diff dài thì bắt nhóm lại theo module.
  • Cấp quyền dần. Mặc định chỉ cho đọc và tìm. Quyền ghi, chạy lệnh, gọi mạng thì mở từ từ.
  • Làm trên nhánh riêng. Ưu tiên sửa cho test xanh trở lại trước, rồi mới thêm tính năng.
  • Đặt chốt kiểm tra. Xong mỗi bước, bắt nó báo rủi ro còn lại và giả định chưa kiểm chứng.
  • Ai ký commit người đó chịu. Đọc lại, hiểu thay đổi, rồi mới merge.

Mình dùng thế nào

Mình làm sản phẩm, không phải lập trình viên chuyên nghiệp. Việc mình cần chủ yếu là dựng công cụ nội bộ và làm prototype.

Agent giúp mình bỏ bớt thao tác lặp: mô tả mục tiêu, bắt nó lập kế hoạch, cho phép đọc và sửa trong phạm vi hẹp. Mỗi lần sửa mình xem diff, chạy thử, thêm test cơ bản.

Thấy dấu hiệu nó hiểu nhầm là mình tắt quyền ghi, quay về chat để làm rõ lại. Nhanh thì vẫn nhanh, mà rủi ro nằm trong tầm.

Chọn cái nào

  • Cần giải thích, code mẫu, tham khảo nhanh → chat, để mình giữ tay lái
  • Cần chạm nhiều file, tìm xuyên dự án, lặp nhanh → agent, nhưng phải dựng rào chắn

Tóm lại

Khác biệt giữa chat và agent là quyền được làm gì.

Lợi ích là tốc độ và bớt việc vặt. Rủi ro là một cái hiểu nhầm sẽ lan ra nhiều file. Muốn hưởng tốc độ mà không mất kiểm soát thì chia việc nhỏ, bắt lập kế hoạch trước, cấp quyền dần, và tự đọc lại mọi thay đổi trước khi ký.

  • Claude
  • AI Agent
  • Workflow