Những việc AI Agents tuyệt đối không được phép tự ý thực hiện
Mặc dù AI Agents có khả năng tự động hóa và tăng năng suất, việc trao quyền tự chủ hoàn toàn có thể dẫn đến thảm họa. Bài viết này phân tích các rủi ro khi sử dụng AI, liệt kê các tác vụ cần chặn và hướng dẫn thiết lập tệp AGENTS.md để thiết lập quy tắc an toàn hiệu quả.

Những việc AI Agents tuyệt đối không được phép tự ý thực hiện
Tự chủ (autonomy) thường được xem là mục tiêu tối thượng khi làm việc với AI Agents: cung cấp cho chúng công cụ, quyền truy cập và để chúng tự vận hành. Tự do càng lớn, kết quả đầu ra càng tốt. Tôi bản thân cũng sử dụng các tác nhân AI hàng ngày và chúng thực sự đã nâng cao năng suất làm việc của tôi rất nhiều.
Tuy nhiên, tôi cũng từng mất hai giờ làm việc vì một tác nhân AI đã làm đúng chính xác những gì tôi yêu cầu — nhưng sai về mặt ngữ cảnh nghiệp vụ.
Sự cân bằng giữa tự chủ và kiểm soát
Biết nên kiểm soát tác vụ nào ở mức độ nào là chìa khóa để vận hành AI Agents hiệu quả. Trao cho chúng sự tự do tuyệt đối vào sai lọại tác vụ, và bạn sẽ phải dành cả buổi chiều để undo những gì chúng làm trong 30 giây.
Nguyên tắc quan trọng: Liệu nó có thể đảo ngược được không?
Một số tác vụ là có thể đảo ngược được. Ví dụ, một hàm đã được refactor có thể hoàn tác, hoặc một unit test mới có thể bị xóa. Chi phí của sai lầm ở mức thấp.
Ngược lại, việc xóa một bảng dữ liệu (table) trong môi trường sản xuất có thể chiếm trọn cả tuần của bạn để khôi phục, nếu điều đó là khả thi.
Câu hỏi trước khi chạy một tác vụ: Việc này có thể hoàn tác (undo) được không?
- Nếu Có: Hãy để Agent tự thực hiện.
- Nếu Không: Hãy thêm một bước kiểm tra bởi con người (checkpoint) trước khi chạy.
Dưới đây là "ma trận quyền hạn" mà tôi sử dụng. Các thay đổi nhỏ và unit test có thể có mức độ tự chủ cao, trong khi các thay đổi API, cơ sở dữ liệu, bảo mật và hạ tầng đám mây yêu cầu sự xem xét của con người ở mức độ tăng dần.
Ma trận quyền hạn cho AI Agents
6 danh mục tác vụ luôn cần sự can thiệp của con người
Một số danh mục tác vụ đòi hỏi điểm kiểm tra của con người bất kể đặc tả công việc có rõ ràng đến đâu. Rủi ro của sai sót quá lớn và chi phí khôi phục quá đắt đỏ.
1. Các thao tác tệp tin hủy diệt
Các lệnh như rm -rf, git clean -fd, git reset --hard. Những lệnh này xóa hoặc loại bỏ công việc có thể không thể phục hồi được. Một tác nhân AI sẽ chạy chúng nếu mô tả tác vụ gợi ý đến việc "dọn dẹp".
Cảnh báo về các thao tác nguy hiểm
Tôi từng để AI chạy lệnh git clean -fd giữa chừng refactor vì nhiệm vụ yêu cầu "dọn dẹp tệp tạm". Kết quả là công việc chưa commit của tôi biến mất. Biện pháp bảo vệ là danh sách chặn (block list) cụ thể với bước xác nhận, không phải là tin vào khả năng suy luận của AI.
2. Ghi vào cơ sở dữ liệu và Migration
Bất kỳ lệnh DELETE nào không có mệnh đề WHERE, bất kỳ lệnh DROP hoặc TRUNCATE, hay migration nào chạm đến dữ liệu sản xuất. Một lỗi chính tả trong mệnh đề WHERE có thể xóa sạch một bảng. Luôn luôn xem xét trước khi chạy.
3. Hạ tầng đám mây (Cloud Infrastructure)
Các lệnh như terraform apply, kubectl delete, hoặc thay đổi quyền IAM trên AWS/GCP. Những thay đổi này ảnh hưởng đến hệ thống trực tiếp và thường ảnh hưởng đến các team khác. Thiệt hại có thể vô hình cho đến khi hệ thống gặp sự cố.
4. Triển khai lên môi trường Production (Production Deployments)
Bất kỳ việc triển khai code lên môi trường sản xuất nên đi qua bước review của con người, ngay cả khi code đó do AI tạo ra. Pipeline CI/CD có thể chạy đầu ra của AI tự động, nhưng quyết định "deploy" là của bạn. Bạn biết rõ hiện trạng hệ thống, các sự cố đang mở, các bảo trì theo lịch trình — những thứ AI không có.
5. Logic xác thực và bảo mật (Auth and Security)
Luồng xác thực, quy tắc ủy quyền, xử lý token. Các lỗi ở đây không hiển thị trong unit test, chúng xuất hiện trong báo cáo sự cố (incident reports), đôi khi vài tháng sau đó. AI thường viết code logic "đúng" theo đường đi chủ đạo (happy path), nhưng bỏ sót các trường hợp ngoại lệ (edge cases) nguy hiểm.
6. Bí mật, tệp .env và API Keys
Một tác nhân AI đọc hoặc ghi thông tin đăng nhập tạo ra rủi ro lộ lọt. Hãy giữ danh mục này ngoài giới hạn mặc định và xử lý thủ công. Lệnh git push --force cũng cần được lưu ý đặc biệt vì nó ghi đè lịch sử remote, gây xung đột cho các lập trình viên khác.
AGENTS.md: Hợp đồng làm việc với AI
Hãy cung cấp cấu trúc cụ thể cho AI ngay từ đầu. Một tệp AGENTS.md tại thư mục gốc của repo sẽ cho Agent biết dự án là gì, cách chạy nó, và những gì nó không được chạm vào nếu không xin phép.
Khi AGENTS.md mơ hồ, Agent sẽ phỏng đoán. Tôi từng học bài học này khi để AI "tổ chức lại cấu trúc dự án". Nó đã di chuyển tệp tin dựa trên quy ước đặt tên của nó, làm hỏng tất cả các đường dẫn tham chiếu. Tác vụ của AI mất 20 phút, nhưng việc dọn dẹp của tôi mất 2 tiếng.
Dưới đây là mẫu tệp AGENTS.md tôi sử dụng:
# AGENTS.md
## Project
[Mô tả ngắn gọn về dự án và tech stack]
## Setup
\`\`\`bash
# Cài đặt
npm install # hoặc pip install -r requirements.txt
# Chạy
npm run dev
# Test
npm test
# Lint
npm run lint
\`\`\`
## Quy tắc viết code
- Thực hiện thay đổi tối thiểu. Đừng refactor code không liên quan.
- Nếu hành vi thay đổi, hãy thêm hoặc cập nhật test.
- Không chạm vào các tệp bên ngoài phạm vi tác vụ.
- Giữ diff dễ đọc. Một vấn đề cho mỗi commit.
## Quy tắc an toàn
Hãy hỏi trước khi chạy bất kỳ lệnh nào nằm trong blocked_commands.md.
Nếu bạn không chắc lệnh có an toàn không, hãy dừng lại và hỏi.
## Định nghĩa hoàn thành (Definition of done)
- Tests pass
- Diff có thể giải thích trong một câu
- Cung cấp báo cáo cuối cùng (xem bên dưới)
## Định dạng báo cáo cuối cùng
Sau mỗi tác vụ, cung cấp:
1. Tóm tắt các thay đổi
2. Các tệp đã thay đổi
3. Các test đã chạy và kết quả
4. Rủi ro hoặc giả định
5. Bất kỳ điều gì chưa hoàn thành
Kèm theo đó là tệp blocked_commands.md liệt kê chính xác những gì cần sự chấp thuận của con người trước khi chạy, bao gồm các lệnh hủy diệt, thao tác git nguy hiểm, database, cloud và secrets.
Vòng lặp hai tác nhân (The Two-Agent Loop)
Đối với bất kỳ tác vụ nào có độ phức tạp trung bình trở lên, đừng dùng một tác nhân, hãy dùng hai.
- Agent 1 (Người triển khai): Triển khai tác vụ cụ thể, tuân thủ quy tắc, tạo báo cáo.
- Agent 2 (Người review): Review diff, kiểm tra lỗi, edge case, bảo mật. Không viết lại code, chỉ gắn cờ (flag) các vấn đề.
Sau đó, Agent 1 áp dụng các phản hồi quan trọng.
Quy trình hai tác nhân giúp tăng độ chính xác
Người review không có cái tôi về đoạn code đó. Nó tìm kiếm lỗi, độ bao phủ test và vấn đề bảo mật một cách khách quan. Đây là quy trình code review được tự động hóa.
Báo cáo cuối cùng
Yêu cầu báo cáo cuối cùng cho mọi tác vụ của Agent. Điều này khiến Agent phải chịu trách nhiệm. Nếu nó không thể tóm tắt rõ ràng những gì mình đã làm, đó là tín hiệu cho thấy tác vụ không được thực hiện sạch sẽ.
Báo cáo này cũng giúp xây dựng tài liệu dự án một cách tự động. Khi có sự cố xảy ra một tuần sau đó, bạn có thể truy vết chính xác những gì đã thay đổi và tại sao.
Lời kết
Cơn sốt xung quanh AI Agents là có thật và xứng đáng. Chúng thực sự tăng năng suất của bạn. Tuy nhiên, những người thực sự khai thác tốt chúng là những người đã làm công việc thiết lập: viết AGENTS.md, suy nghĩ kỹ về mức độ quyền hạn, xây dựng danh sách lệnh bị chặn và thiết lập vòng lặp hai tác nhân.
AI Agents hoạt động tốt khi có hướng dẫn rõ ràng. Phần việc đó là trách nhiệm của bạn.



