Anthropic Engineering

# Cách chúng tôi xây dựng chế độ tự động của Claude Code: một cách an toàn hơn để bỏ qua quyền Chúng tôi đã phát triển chế độ tự động (auto mode) cho Claude Code nhằm mang đến trải nghiệm an toàn hơn khi bỏ qua các bước xác nhận quyền. Thay vì yêu cầu người dùng phải phê duyệt từng hành động, chế độ này cho phép Claude thực thi các tác vụ một cách tự động dựa trên các quy tắc và giới hạn được xác định trước. Cơ chế hoạt động dựa trên việc phân loại hành động thành các mức độ rủi ro khác nhau. Các hành động an toàn như đọc file, truy vấn thông tin cơ bản được thực hiện tự động. Trong khi đó, các hành động có rủi ro cao như ghi đè file, thực thi lệnh hệ thống vẫn yêu cầu sự phê duyệt của người dùng. Chúng tôi cũng tích hợp cơ chế "sandbox" để giới hạn phạm vi hoạt động của Claude, đảm bảo nó chỉ tương tác với các tài nguyên được ủy quyền. Ngoài ra, hệ thống còn ghi log chi tiết mọi hành động để người dùng có thể kiểm tra lại khi cần. Kết quả là chế độ tự động giúp tăng tốc độ làm việc đáng kể mà vẫn duy trì được mức độ an toàn cao, phù hợp cho các tác vụ lặp đi lặp lại hoặc các quy trình CI/CD.

🕐 20/07/2026 12:07 📰 Anthropic Engineering ✅ Đã dịch sang tiếng Việt

Theo mặc định, Claude Code yêu cầu người dùng phê duyệt trước khi chạy lệnh hoặc sửa đổi tệp. Điều này giúp người dùng an toàn, nhưng đồng nghĩa với việc phải nhấp "phê duyệt" rất nhiều lần. Theo thời gian, điều đó dẫn đến "mệt mỏi phê duyệt", khiến mọi người ngừng chú ý kỹ đến những gì họ đang phê duyệt.

Người dùng có hai giải pháp để tránh sự mệt mỏi này: một hộp cát tích hợp sẵn, nơi các công cụ được cách ly để ngăn chặn các hành động nguy hiểm, hoặc cờ `--dangerously-skip-permissions` vô hiệu hóa tất cả lời nhắc cấp quyền và cho phép Claude hành động tự do, điều này không an toàn trong hầu hết các tình huống. Hình 1 phác thảo không gian đánh đổi. Hộp cát an toàn nhưng tốn nhiều công bảo trì: mỗi khả năng mới cần được cấu hình, và bất cứ thứ gì yêu cầu truy cập mạng hoặc máy chủ đều phá vỡ sự cách ly. Bỏ qua quyền thì không cần bảo trì nhưng không có biện pháp bảo vệ nào. Lời nhắc thủ công nằm ở giữa, và trên thực tế, người dùng vẫn chấp nhận 93% trong số đó.

Chúng tôi duy trì một nhật ký sự cố nội bộ tập trung vào các hành vi sai trái của agent. Các ví dụ trước đây bao gồm xóa nhánh git từ xa do hiểu sai hướng dẫn, tải token xác thực GitHub của một kỹ sư lên cụm máy tính nội bộ, và cố gắng thực hiện di chuyển (migration) đối với cơ sở dữ liệu sản xuất. Mỗi sự cố này đều là kết quả của việc mô hình quá háo hức, chủ động theo cách mà người dùng không mong muốn. Chúng tôi đã ghi lại mô hình này trong thẻ hệ thống Claude Opus 4.6 (§6.2.1 và §6.2.3.3).

Chế độ Tự động (Auto mode) là một chế độ mới dành cho Claude Code, ủy quyền phê duyệt cho các bộ phân loại dựa trên mô hình—một giải pháp trung gian giữa xem xét thủ công và không có rào chắn. Mục tiêu là phát hiện các hành động nguy hiểm không phù hợp với ý định của người dùng, đồng thời cho phép phần còn lại chạy mà không cần lời nhắc phê duyệt. Bắt đầu sử dụng chế độ Tự động bằng cách làm theo tài liệu hướng dẫn.

Chế độ Tự động sử dụng hai lớp phòng thủ: một lớp cho những gì Claude đọc, một lớp cho những gì Claude làm.

Ở lớp đầu vào, một bộ dò tìm tiêm prompt phía máy chủ sẽ quét các đầu ra công cụ (đọc tệp, tìm nạp web, đầu ra shell, phản hồi công cụ bên ngoài) trước khi chúng đi vào ngữ cảnh của agent. Khi nội dung có vẻ như là một nỗ lực chiếm quyền điều khiển hành vi, bộ dò sẽ thêm một cảnh báo vào ngữ cảnh của agent trước khi kết quả được chuyển tiếp—yêu cầu agent coi nội dung này là đáng ngờ và bám sát những gì người dùng thực sự yêu cầu.

Ở lớp đầu ra, bộ phân loại transcript (chạy trên Sonnet 4.6) đánh giá từng hành động dựa trên một bộ tiêu chí quyết định trước khi thực thi, hoạt động như một người thay thế cho người phê duyệt là con người. Bộ phân loại chạy theo hai giai đoạn: một bộ lọc nhanh một token (quyết định 'có' để chặn hoặc 'không' để cho phép), tiếp theo là suy luận chuỗi suy nghĩ (chain-of-thought) chỉ khi bộ lọc đầu tiên đánh dấu transcript. Vì hầu hết các hành động đều vượt qua giai đoạn đầu, token suy luận chỉ được sử dụng khi cần thiết. Bộ phân loại chỉ nhìn thấy tin nhắn của người dùng và các lệnh gọi công cụ của agent; chúng tôi loại bỏ các tin nhắn của chính Claude và đầu ra công cụ, khiến nó mù suy luận (reasoning-blind) theo thiết kế. Chúng tôi sẽ giải thích chi tiết từng lựa chọn này, bao gồm lợi ích và chi phí của chúng, trong phần Quyết định thiết kế bên dưới.

Một agent có thể thực hiện một hành động nguy hiểm vì bốn lý do

Lý do:

Trong cả bốn trường hợp, biện pháp phòng vệ là chặn hành động. Bộ phân loại của chúng tôi được tinh chỉnh để xử lý hành vi quá nhiệt tình và sai sót trung thực, vì chúng tôi có các ví dụ cụ thể về hành vi này từ quá trình thử nghiệm mô hình nội bộ, nhưng biện pháp phòng vệ vẫn được áp dụng bất kể mối đe dọa nào tạo ra hành động đó.

Các ví dụ dưới đây được điều chỉnh từ nhật ký sự cố nội bộ của chúng tôi để minh họa những gì chế độ tự động được thiết kế để chặn:

Tất cả các ví dụ trên sẽ đến được bộ phân loại, nhưng hầu hết các hành động đều được cho phép trước bước đó bởi các quy tắc cho phép tiêu chuẩn của Claude Code:

**Cấp 1:** Danh sách cho phép công cụ an toàn tích hợp sẵn và cài đặt người dùng. Một danh sách cho phép cố định bao gồm các công cụ không thể sửa đổi trạng thái, bao gồm đọc tệp, tìm kiếm văn bản và mẫu tệp, điều hướng mã, chuyển đổi chế độ todo và plan. Người dùng cũng có thể cấu hình các quy tắc luôn cho phép cho các mẫu công cụ cụ thể. Một ngoại lệ là khi vào chế độ tự động, chúng tôi loại bỏ các quy tắc cấp quyền được biết là cho phép thực thi mã tùy ý, bao gồm quyền truy cập shell toàn diện, trình thông dịch script có ký tự đại diện (python, node, ruby và tương tự) và các lệnh chạy của trình quản lý gói. Mặc dù đây là nỗ lực tốt nhất dựa trên việc sử dụng thực tế, nhưng bất kỳ danh sách nào cũng chắc chắn sẽ không đầy đủ. Nhiều người dùng thiết lập các quy tắc toàn diện này để thuận tiện trong chế độ phê duyệt thủ công, nhưng để chúng hoạt động có nghĩa là bộ phân loại sẽ không bao giờ thấy các lệnh có khả năng gây thiệt hại nhất. Các quy tắc hẹp ("cho phép chạy trình định dạng mã") được giữ lại, nhưng các lối thoát trình thông dịch rộng thì không.

**Cấp 2:** Thao tác tệp trong dự án. Ghi và chỉnh sửa tệp trong thư mục dự án được cho phép mà không cần gọi bộ phân loại. Việc viết mã thông thường (ví dụ: chỉnh sửa tệp nguồn trong kho lưu trữ của bạn) không phải trả độ trễ của bộ phân loại; các chỉnh sửa trong dự án có thể được xem xét thông qua kiểm soát phiên bản.

Chỉ những hành động có tiềm năng gây hại thực sự mới đến được cấp cuối cùng:

**Cấp 3:** Bộ phân loại bảng điểm. Bộ phân loại bảng điểm xem mọi thứ khác, bao gồm lệnh shell, tìm nạp web, tích hợp công cụ bên ngoài, tạo tác nhân phụ, thao tác hệ thống tệp bên ngoài thư mục dự án. Giai đoạn 1 là một bộ lọc nhanh một token (có/không) được hướng dẫn ưu tiên chặn; nếu nó đánh dấu, giai đoạn 2 sẽ đánh giá lại cùng một đầu vào với lý luận chuỗi suy nghĩ để giảm kết quả dương tính giả.

Lời nhắc của bộ phân loại là một mẫu cố định mà chúng tôi cung cấp, với ba vị trí có thể tùy chỉnh được chèn vào giữa. Các phần cố định thực hiện công việc diễn giải—cách xác định một hành động thực sự làm gì, cách đọc ủy quyền của người dùng, chính quy trình phân loại—và chúng giống nhau cho tất cả mọi người. Các vị trí xác định chính sách của bạn: những gì được coi là đáng tin cậy trong môi trường của bạn, danh mục nào cần chặn, ngoại lệ nào cần tạo. Các giá trị mặc định tốt được cung cấp sẵn. Bạn có thể bắt đầu sử dụng chế độ tự động ngay lập tức và mở rộng cấu hình một cách lặp đi lặp lại khi bạn làm việc với tính năng này.

Các quy tắc đánh giá cho bộ phân loại biết cách tìm kiếm các lệnh nguy hiểm. Nguyên tắc là đánh giá tác động thực tế của một hành động, thay vì chỉ văn bản bề mặt của lệnh gọi. Tác nhân không thể che giấu một hành động nguy hiểm.

Một thao tác nguy hiểm ẩn sau một lớp vỏ bọc có vẻ vô hại. Nếu agent ghi payload vào một tệp và sau đó chạy nó, bộ phân loại sẽ đánh giá payload đó. Nếu một chuỗi lệnh được nối với nhau bằng &&, toàn bộ chuỗi đó được coi là một hành động. Nếu agent viết một tập lệnh Python để lắp ráp một lệnh shell, bộ phân loại sẽ đánh giá lệnh đã được lắp ráp từ ngữ cảnh của bản ghi trước khi cho phép tập lệnh được thực thi.

Các quy tắc về ý định của người dùng hướng dẫn bộ phân loại cách đọc ủy quyền. Đây là phần khó của prompt để thực hiện đúng. Đây cũng là nơi chứa cơ chế phòng vệ hành vi quá nhiệt tình. Bộ phân loại phải quyết định xem hành động đó có phải là điều người dùng đã ủy quyền hay không, chứ không chỉ là một hành động liên quan đến mục tiêu của người dùng. Bộ phân loại cố tình thận trọng. Prompt thiết lập những gì được ủy quyền; mọi thứ agent tự chọn đều không được ủy quyền cho đến khi người dùng nói khác. Trong trường hợp này, "dọn dẹp các nhánh của tôi" không ủy quyền cho việc xóa hàng loạt, và "chúng ta có thể sửa lỗi này không?" sẽ được coi là một câu hỏi, không phải một chỉ thị.

Mẫu bao gồm một quy trình phân loại từng bước, trong đó nó kiểm tra hành động dựa trên các quy tắc chặn, sau đó cho phép các ngoại lệ, tiếp theo là ý định của người dùng, trước khi đưa ra quyết định cuối cùng.

"Môi trường" xác định ranh giới tin cậy của các miền, bucket đám mây, tổ chức kiểm soát mã nguồn và dịch vụ nội bộ nào được coi là "bên trong" so với "bên ngoài". Theo mặc định, thứ duy nhất bộ phân loại tin cậy là kho git mà bạn hiện đang làm việc. Người dùng có thể tùy chỉnh điều này trong cài đặt để bộ phân loại có thể xác định cơ sở hạ tầng đáng tin cậy của họ (ví dụ: tổ chức GitHub, bucket đám mây hoặc API nội bộ). Bất cứ thứ gì khác bên ngoài ranh giới này đều có thể là rủi ro rò rỉ dữ liệu.

Mặc định có hơn hai mươi quy tắc chặn, thuộc các nhóm sau:

Các ngoại lệ cho phép là những trường hợp miễn trừ bắt buộc khi một quy tắc chặn về mặt kỹ thuật khớp nhưng hành động lại vô hại. Mặc định là hẹp, bao gồm việc cài đặt các gói đã được khai báo trong tệp kê khai của kho, các luồng thông tin xác thực tiêu chuẩn và việc đẩy

📎 Nguồn gốc: Anthropic Engineering Xem bài gốc →