Claude Fable 5: Khi AI trở nên cực kỳ chủ động để sửa lỗi code

12 tháng 6, 2026·6 phút đọc

Claude Fable 5 đã thể hiện khả năng tự động hóa đáng kinh ngạc khi tự tìm cách sửa lỗi giao diện chỉ từ một bức ảnh chụp màn hình. Từ việc tự viết script chụp ảnh, can thiệp vào mã nguồn trình duyệt cho đến tự dựng server để thu thập dữ liệu, AI này đã cho thấy tiềm năng to lớn nhưng cũng mang đến những lo ngại nghiêm trọng về an ninh nếu không được kiểm soát đúng cách.

Claude Fable 5: Khi AI trở nên cực kỳ chủ động để sửa lỗi code

Sau hai ngày trải nghiệm Claude Fable 5, tôi nghĩ cách tốt nhất để mô tả nó là "không ngừng chủ động" (relentlessly proactive). Nó biết rất nhiều mẹo và sẵn sàng triển khai bất kỳ cái nào trong số đó để đạt được mục tiêu.

Để minh họa, tôi sẽ lấy một ví dụ thực tế. Hôm nay, khi đang phát triển Datasette Agent, tôi phát hiện một lỗi nhỏ: một thanh cuộn ngang (horizontal scrollbar) xuất hiện nhầm trong menu chat. Tôi đã chụp màn hình lỗi này và bắt đầu một phiên làm việc mới với Claude trong thư mục dự án, kéo thả ảnh vào và yêu cầu: "Hãy xem xét các dependency để tìm nguyên nhân tại sao lại có thanh cuộn ở đây".

Lỗi thanh cuộn trong giao diện DatasetteLỗi thanh cuộn trong giao diện Datasette

Tôi nghi ngờ nguyên nhân nằm ở một dependency của Datasette Agent (có thể là chính Datasette) và biết Fable giỏi trong việc đào sâu vào mã nguồn dependency, thông qua việc kiểm tra các tệp đã cài đặt trong môi trường ảo hoặc tham chiếu đến mã nguồn trên đĩa cứng. Nói nó bắt đầu từ dependency dường như là một lựa chọn đúng đắn.

Sau đó, tôi bị phân tâm bởi việc nhà và rời đi khỏi máy tính.

Khi quay lại vài phút sau, tôi thấy máy tính của mình tự động mở một cửa sổ trình duyệt Firefox và điều hướng đến hộp thoại đang bị lỗi. Tôi không hề yêu cầu Claude Code sử dụng bất kỳ hình thức tự động hóa trình duyệt nào, và tôi khá chắc chắn nó không thể kích hoạt di chuyển chuột hay phím tắt trong cửa sổ. Vậy nó làm thế nào?

Tôi tò mò quan sát nó tiếp tục khám phá, rồi thấy nó mở cửa sổ Safari thay vì Firefox. Tôi cũng chụp được một ảnh từ terminal của Claude:

Terminal hiển thị lệnh pyobjcTerminal hiển thị lệnh pyobjc

Tại sao nó lại dùng lệnh uv run --with pyobjc-framework-Quartz?

Hóa ra Fable đã tự nghĩ ra một cách để chụp màn hình cửa sổ trình duyệt. Nó sử dụng Python để liệt kê tất cả các cửa sổ có sẵn trên máy, sau đó lọc tìm các cửa sổ Safari có chứa các chuỗi ký tự mong đợi như "textarea" trong tên cửa sổ. Nó dùng cách này để tìm số ID của cửa sổ—một số nguyên như 153551—sau đó sử dụng công cụ CLI screencapture để lấy ảnh PNG.

Được thôi, đó là một cách chụp ảnh khá hay. Nhưng nó đang chụp ảnh cái gì?

Hóa ra nó đã tự viết các trang HTML tạm thời để tái tạo lại lỗi, sau đó mở Safari và chụp ảnh màn hình.

Ảnh chụp màn hình do Fable tự tạoẢnh chụp màn hình do Fable tự tạo

Vậy tôi hiểu là nó mở trang test và chụp ảnh, nhưng làm sao nó kích hoạt được hộp thoại modal (dialog) cần kiểm tra? Hộp thoại này chỉ hiện khi click hoặc dùng phím tắt, và tôi không thấy cơ chế nào để nó thực hiện việc đó trong Safari.

Cuối cùng tôi cũng hiểu ra nó đã làm gì.

Claude đang chạy trong một thư mục chứa mã nguồn của ứng dụng. Nó hiểu đủ về Datasette để chạy một máy chủ phát triển cục bộ (local dev server). Hóa ra là nó đã chỉnh sửa các template của chính Datasette để thêm JavaScript nhằm kích hoạt phím tắt đúng ngay khi cửa sổ mở ra. Sau 1,2 giây khi cửa sổ mở ra, đoạn mã này kích hoạt phím giả lập /, chính là phím tắt để mở hộp thoại modal.

Vẫn còn một thách thức cuối cùng. Để hiểu rõ những gì đang diễn ra, Claude cần chạy JavaScript trên trang để tự đo lường các thông số.

Nó đã tự viết một ứng dụng web tùy chỉnh để bắt thông tin qua CORS, sau đó chạy nó như một máy chủ cục bộ và mở một trang có JavaScript sẽ POST trực tiếp đến nó!

Đây là ứng dụng web Python mà nó viết, sử dụng gói http.server trong thư viện chuẩn. Tất cả những gì nó làm là chấp nhận một yêu cầu POST chứa JSON và ghi nó vào tệp /tmp/diag.json. Nó gửi các header Access-Control-Allow-Origin: * (bao gồm cả từ các yêu cầu OPTIONS) để mã đang chạy trên một tên miền khác vẫn có thể giao tiếp ngược lại với nó.

Sau đó Claude đã chèn đoạn mã này vào template mà nó đang tải trên trình duyệt. Đoạn mã này đo lường phần tử bên trong Web Component và gửi kết quả về server, server sẽ ghi ra tệp trên đĩa, và Claude có thể đọc lại sau đó.

Sau khi áp dụng hết các mẹo này, Fable... đã va phải một rào cản vô hình và tự hạ cấp xuống Opus. May mắn thay, Opus có quyền truy cập vào toàn bộ lịch sử trò chuyện và có thể tiếp tục sử dụng các mẹo do Fable khởi xướng, và ngay sau đó đã tìm ra, kiểm tra và xác minh bản sửa lỗi.

Tôi đã yêu cầu nó viết một báo cáo vào /tmp/automation-report.md ghi lại tất cả các mẹo đã sử dụng trong phiên này để kiểm tra trên trình duyệt thật, bao gồm các đoạn mã có thể chạy được. Kết quả là bản báo cáo này, vô cùng quý giá để tôi tái hiện lại chi tiết những gì đã xảy ra cho bài viết này.

Chỉ với một bức ảnh và một dòng lệnh yêu cầu, Claude Fable 5 kết hợp với Claude Code đã tự động hóa quy trình debug một cách phức tạp đến mức khó tin.

Một mặt, việc chứng kiến Fable đi đến những độ cực đoan để lấy thông tin cần thiết nhằm debug một lỗi mà cuối cùng chỉ cần sửa 2 dòng CSS, thực sự rất thú vị.

Nhưng ở khía cạnh khác... đây là một lời nhắc nhở mạnh mẽ rằng các tác nhân lập trình (coding agents) có thể làm bất cứ điều gì bạn có thể làm bằng cách gõ lệnh vào terminal—và các mô hình AI tiên phong biết mọi mẹo trong sách, và rõ ràng là còn vài mẹo mà chưa ai từng ghi lại cả.

Nếu Fable đang thực hiện các chỉ định độc hại—một cuộc tấn công chèn lệnh (prompt injection) ẩn trong mã hoặc một luồng vấn đề, hoặc một thứ gì đó tôi vô tình dán vào terminal—thật đáng sợ khi nghĩ rằng nó có thể đi xa đến mức nào để rò rỉ dữ liệu hoặc gây ra các hình thức phá hoại khác.

Chạy các tác nhân lập trình bên ngoài một hộp cát (sandbox) luôn là một ý tưởng tồi—đây là ứng cử viên hàng đầu cho một sự cố kiểu "Thảm họa Challenger", như được Johann Rehberger mô tả trong bài viết "Sự bình thường hóa của sự lệch lạc trong AI".

Có thể tranh luận rằng Fable thông minh hơn và do đó nghi ngờ hơn các chỉ định có hại. Nhưng sự thông minh đó chính là con dao hai lưỡi: nếu nó bị lôi kéo bởi các chỉ định, lượng thiệt hại nó có thể gây ra given sự chủ động không ngừng nghỉ của nó là thật sự đáng sợ.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗