Matt Shumer ngồi xuống máy tính và đưa ra một chỉ dẫn đơn giản cho tác nhân AI của mình: dọn dẹp các tệp tin. Anh đã chạy quy trình này hàng trăm lần mà không gặp bất kỳ vấn đề nào. Lần này, một lỗi phân giải đường dẫn đã biến một tác vụ dọn dẹp thông thường thành một thảm họa thực sự. Hàng năm trời mã nguồn, tài liệu và ảnh đã biến mất chỉ trong vài giây.

Đây không phải là một rủi ro giả định. Nó đã xảy ra với một nhà phát triển thực thụ trên một chiếc máy tính thực thụ, và tác nhân liên quan có một lịch sử hoạt động trông có vẻ không thể sai sót cho đến tận khoảnh khắc nó thất bại. Các tác nhân AI có khả năng viết tệp, thực thi lệnh terminal và tạo ra các tác nhân phụ (subagents) hiện đang được tích hợp vào các IDE, giao diện chat và các quy trình tự động hóa. Chúng được tin tưởng giao quyền truy cập trực tiếp vào hệ điều hành, và chính sự tin tưởng đó là nơi ẩn chứa nguy hiểm. Những phương thức lỗi tương tự đã phá hủy máy tính của Shumer cũng tồn tại trong mọi tác nhân có quyền truy cập công cụ. Hiểu tại sao chúng thất bại và cách kiểm soát chúng đúng cách hiện là một kỹ năng sinh tồn cơ bản cho bất kỳ ai đang sử dụng các công cụ này.

Khi việc khớp mẫu gặp phải hệ thống tệp tin

Các tác nhân AI không suy nghĩ. Chúng khớp các mẫu. Khi bạn nói “dọn dẹp các tệp tin,” mô hình sẽ tìm kiếm trong bộ nhớ huấn luyện của nó hàng ngàn tương tác tương tự và tạo ra một câu lệnh phù hợp về mặt thống kê với mẫu đó. Nếu chỉ dẫn là xóa các tệp tạm thời trong một thư mục build, nó có thể tạo ra một câu lệnh như rm -rf /tmp/build-cache/*. Nó trông có vẻ hợp lý vì nó giống với mọi câu lệnh dọn dẹp khác mà mô hình từng thấy.

Nhưng chuyện gì sẽ xảy ra khi một biến như $HOME không thể phân giải được? Một con người sẽ thấy một chuỗi rỗng hoặc một đường dẫn không mong muốn, dừng lại và đặt câu hỏi. Một tác nhân AI sẽ thấy rằng mẫu đó vẫn khớp và nhấn Enter. Trong trường hợp của Shumer, một câu lệnh đáng lẽ chỉ để cắt tỉa một thư mục cụ thể thay vào đó lại nhắm vào thư mục gốc của người dùng. Tác nhân đã không dừng lại để tự hỏi tại sao đường dẫn trông có vẻ lạ lùng. Nó không xác minh mục tiêu. Nó thực thi câu lệnh vì việc thực thi khớp với mẫu “dọn dẹp.”

Đây là sự không tương thích cốt lõi giữa các mô hình ngôn ngữ lớn và quản trị hệ thống. Tư duy thực sự bao gồm việc hiểu ngữ cảnh, xác minh các giả định và xử lý các trường hợp biên. Khớp mẫu bao gồm việc tạo ra văn bản giống với một câu trả lời đúng về mặt thống kê. Khi câu trả lời đó là một câu lệnh terminal mang cờ xóa đệ quy, thì sự tương đồng về mặt thống kê là không đủ.

Điểm mù của tác nhân phụ

Nhiều khung làm việc tác nhân (agent frameworks) hiện đại sử dụng một bộ điều phối chính để giao phó nhiệm vụ cho các tác nhân phụ. Tác nhân cha có thể có những chỉ dẫn nghiêm ngặt: không bao giờ chạm vào thư mục home, luôn hỏi trước khi xóa, duy trì nhật ký kiểm tra. Sau đó, nó tạo ra một tác nhân phụ với một prompt hẹp như “dọn dẹp các bản ghi cũ.”

Tác nhân phụ đó thường hoạt động trong một môi trường biệt lập. Nó thừa hưởng các công cụ nhưng không thừa hưởng văn hóa an toàn của tác nhân cha. Các ràng buộc giúp tác nhân chính thận trọng có thể bị nén lại, tóm tắt hoặc bị loại bỏ hoàn toàn trong quá trình quản lý cửa sổ ngữ cảnh. Tác nhân phụ nhận được một nhiệm vụ và một bộ công cụ, nhưng nó không nhận được hàng giờ hướng dẫn (prompting) cẩn thận vốn đã thiết lập các rào chắn bảo vệ (guardrails).

Kết quả là một kiểu "mất trí nhớ tổ chức". Một quy tắc an toàn nằm trong system prompt của tác nhân cha coi như không tồn tại đối với tác nhân phụ. Điều này đặc biệt nguy hiểm vì các tác nhân phụ thường được giao các loại nhiệm vụ lặp đi lặp lại, ít quan trọng mà người vận hành ngừng giám sát chặt chẽ. Không ai theo dõi một công việc dọn dẹp nhật ký cho đến khi nó xóa sạch cơ sở dữ liệu production.

Sự nguy hiểm của tính quyết đoán

Có một xu hướng thiết kế trong các tác nhân AI hướng tới sự tự chủ tối đa. Một tác nhân lý tưởng, theo tầm nhìn này, sẽ không bao giờ làm phiền người dùng bằng những câu hỏi tầm thường. Nó hành động quyết đoán, xâu chuỗi các lệnh gọi công cụ và hoàn thành các quy trình làm việc nhiều bước mà không cần dừng lại để thở.

Chính sự quyết đoán đó là thứ khiến các hệ thống này trở nên không an toàn. Một mô hình được lập trình để “hành động quyết đoán” sẽ không kiểm tra lại công việc của mình. Nó không dừng lại khi một câu lệnh trông có vẻ mang tính hủy diệt. Nó coi sự do dự là một lỗi thay vì một tính năng. Khi mô hình làm đúng, điều này mang lại cảm giác kỳ diệu. Khi nó làm sai, nó mang lại cảm giác không thể ngăn cản. Không có sự ma sát tự nhiên nào trong hệ thống để làm chậm một câu lệnh sai lầm.

Agent của Shumer đã hoạt động chính xác hàng trăm lần. Thành tích đó đã tạo ra một cảm giác an toàn giả tạo. Nhưng sự tin cậy qua hàng trăm lần thử nghiệm chẳng có ý nghĩa gì nếu lần thử thứ một trăm lẻ một là một điểm ngoại lệ thống kê, nơi mà quy luật bị phá vỡ. Trong an toàn hệ thống, hiệu suất trong quá khứ chỉ quan trọng nếu phương thức lỗi diễn ra dần dần và có thể nhận thấy được. Các lỗi của agent AI thường diễn ra đột ngột, âm thầm và toàn diện. “Nó đã hoạt động hàng trăm lần” không phải là một hồ sơ an toàn. Đó chỉ là một mô tả về sự may mắn mà cuối cùng rồi cũng sẽ cạn kiệt.

Cách Xây Dựng Sự Bảo Vệ Thực Sự

Nếu mô hình không phải là lớp bảo vệ