Nhờ Claude kiểm tra công cụ chống xóa nhầm dữ liệu, lập trình viên bị xóa sạch 700 GB

Một công cụ được tạo ra để dọn rác an toàn đã gây ra kết quả hoàn toàn trái ngược. Sự cố cho thấy chỉ một biến bị dùng sai cũng đủ biến quá trình kiểm tra của AI thành lệnh xóa dữ liệu thật.

Lập trình viên Sebastien Guillemot thường xuyên sử dụng nhiều AI agent trong công việc. Theo chia sẻ của ông trên X, các agent liên tục tạo dữ liệu tạm nhưng không tự dọn dẹp, khiến thư mục /tmp ngày càng chứa nhiều tệp rác và chiếm hàng chục GB dung lượng.

Guillemot vì thế nhờ Claude Fable viết một cơ chế “sandbox”. Mỗi agent sẽ được cấp một khu vực riêng trong thư mục tạm, sau đó dữ liệu được tự động xóa khi phiên làm việc kết thúc. Yêu cầu quan trọng nhất là công cụ không được động đến tệp đang được sử dụng và càng không được xóa dữ liệu nằm ngoài /tmp.

Kết quả cuối cùng lại đi theo hướng không ai mong muốn. Claude đã giải phóng khoảng 700 GB dung lượng, nhưng số dữ liệu biến mất chính là thư mục cá nhân của Guillemot cùng lượng công việc được ông thực hiện trong khoảng một tuần.

Công cụ chống xóa nhầm lại xóa nhầm

Ban đầu, Fable đề xuất viết thêm logic để phát hiện những agent còn hoạt động. Nếu một phiên làm việc vẫn đang mở, phần dữ liệu tạm tương ứng sẽ được giữ lại thay vì bị xóa theo lịch.

Guillemot nhận xét đoạn script trở nên quá phức tạp. Từ đây, Claude tự khởi động một quy trình “đánh giá đối nghịch” để tìm điểm yếu trong thiết kế, dù lập trình viên cho biết ông không yêu cầu bước kiểm tra này.

Nhờ Claude kiểm tra công cụ chống xóa nhầm dữ liệu, lập trình viên bị xóa sạch 700 GB- Ảnh 1.

Lập trình viên Sebastien Guillemot cho biết Claude đã chạy lệnh xóa trên thư mục cá nhân trong lúc thử nghiệm cơ chế sandbox, khiến khoảng 700 GB dữ liệu biến mất. Ảnh: X/Sebastien Guillemot.

Do đoạn mã liên quan đến thao tác xóa dữ liệu, cơ chế kiểm soát an toàn của Anthropic được cho là đã kích hoạt hai lần. Mô hình đang xử lý tác vụ lần lượt bị chuyển từ Fable xuống Opus 5 rồi Opus 4.8.

Opus 4.8 nhận ra một rủi ro đáng chú ý: liên kết tượng trưng nằm trong /tmp có thể trỏ đến dữ liệu ở nơi khác. Nếu script chỉ kiểm tra đường dẫn bên ngoài mà không xác định đích thật, nó vẫn có khả năng xóa nhầm tệp trong thư mục cá nhân.

Để xử lý vấn đề, AI tạo một script “xóa an toàn”, chỉ được phép tác động đến dữ liệu bên trong /tmp. Claude sau đó tiến hành thử nghiệm bằng cách sử dụng cả thư mục tạm và thư mục HOME của người dùng làm mục tiêu. Lệnh xóa HOME được nhận diện chính xác là nguy hiểm và đáng lẽ phải bị chặn.

Sai sót xuất hiện ở bước dọn dẹp sau thử nghiệm. Theo Tom’s Hardware, đoạn mã sử dụng lại cùng một tên biến cho mục tiêu kiểm tra và mục tiêu cần dọn. Hậu quả là thay vì xóa dữ liệu thử nghiệm, quy trình dọn dẹp tác động trực tiếp đến thư mục HOME thật.

Guillemot phát hiện và dừng tiến trình, nhưng đã quá muộn. Ông viết: “Tin xấu là Fable đã xóa sạch máy phát triển của tôi. Sandbox không hoạt động. Mọi thứ đã biến mất”.

Trớ trêu hơn, /tmp - thư mục chứa tệp rác mà Guillemot muốn dọn từ đầu - lại không bị xóa. Sau sự cố, ông cho biết máy chỉ còn dữ liệu rác trong /tmp và nhật ký của các phiên làm việc AI.

Hạ cấp mô hình có thể là một yếu tố

Tom’s Hardware đặt khả năng việc tự động chuyển sang mô hình thấp hơn đã góp phần dẫn đến sai sót. Theo lập luận này, Fable có năng lực lập trình tốt hơn Opus 4.8 và có thể nhận ra việc hai bước trong đoạn mã sử dụng trùng tên biến.

Tuy nhiên, đây mới là nhận định dựa trên diễn biến do Guillemot công bố. Chưa có bằng chứng cho thấy Fable chắc chắn sẽ tránh được lỗi, cũng chưa có xác nhận từ Anthropic rằng quá trình hạ cấp mô hình là nguyên nhân trực tiếp khiến dữ liệu bị xóa.

Nhờ Claude kiểm tra công cụ chống xóa nhầm dữ liệu, lập trình viên bị xóa sạch 700 GB- Ảnh 2.

Thiệt hại cuối cùng cũng không hoàn toàn là 700 GB dữ liệu mất vĩnh viễn. Vì đây là môi trường phát triển, nhiều tệp vẫn tồn tại trên GitHub, Git, Nix, các worktree, nhật ký phiên làm việc và một số vị trí khác. Guillemot cho biết phần lớn dữ liệu đã được ghép lại từ những nguồn này, với sự hỗ trợ của công cụ khôi phục.

Sự cố cho thấy rủi ro không chỉ nằm ở việc AI viết sai mã. Vấn đề trở nên nghiêm trọng hơn khi agent được trao quyền thực thi lệnh trực tiếp trên máy và tự quyết định cách kiểm tra sản phẩm của chính nó. Một bài thử an toàn nếu không được cô lập hoàn toàn vẫn có thể biến thành thao tác thật chỉ vì một biến bị sử dụng sai.

Guillemot có thể dựng lại môi trường làm việc, nhưng câu chuyện vẫn để lại một chi tiết khó bỏ qua: nhiều AI agent cùng hoạt động trên máy, song không có bản sao lưu hàng ngày đủ hoàn chỉnh để khôi phục mọi thứ ngay lập tức.