How we built Claude Code auto mode: a safer way to skip permissions
Bài tóm tắt Anthropic 2026 3. Quy mô lớn Độ khó: Khó
Anthropic · 2026 · 3. Quy mô lớn · Độ khó: Khó — bài gốc
Bài của nhà cung cấp mô tả tính năng của sản phẩm mình, số liệu tự đo; mọi nhận định ghi "theo Anthropic".
Bối cảnh
- Mặc định Claude Code hỏi người dùng trước khi chạy lệnh hay sửa file; theo Anthropic người dùng chấp nhận 93% số lời hỏi, dẫn tới "mỏi duyệt" và duyệt không còn chú ý. Hai lối thoát sẵn có: sandbox (an toàn nhưng tốn công cấu hình cho từng khả năng mới, hỏng khi cần mạng hay host) và cờ bỏ qua mọi quyền (không bảo vệ gì).
- Nhật ký sự cố nội bộ về hành vi agent: xoá branch remote do hiểu sai yêu cầu, tải token GitHub của engineer lên cụm compute nội bộ, chạy migration vào database production. Phần lớn là agent quá hăng hái: hiểu mục tiêu, muốn giúp, nhưng làm vượt phạm vi người dùng cho phép.
Thay đổi chính
- Hai lớp: ở đầu vào, một probe phía server quét kết quả công cụ (file, trang web, output shell) và chèn cảnh báo khi trông giống prompt injection; ở đầu ra, một classifier trên transcript (Sonnet 4.6) xét từng hành động trước khi chạy, thay cho người duyệt.
- Ba tầng quyết định: (1) allowlist công cụ không đổi trạng thái (đọc, tìm, điều hướng code) và rule của người dùng, nhưng khi vào auto mode thì bỏ các rule cho phép chạy code tuỳ ý (shell toàn quyền, interpreter wildcard, lệnh run của package manager) vì giữ chúng thì classifier không bao giờ thấy lệnh nguy hiểm nhất; (2) sửa file trong thư mục project cho qua (xem lại được qua version control); (3) mọi thứ còn lại (shell, fetch web, công cụ ngoài, subagent, file ngoài project) qua classifier.
- Classifier hai giai đoạn: giai đoạn 1 trả một token có/không, được dặn "nghiêng về chặn"; chỉ khi bị gắn cờ mới sang giai đoạn 2 suy luận đầy đủ với cùng prompt (gần như toàn bộ là cache hit). Prompt là template cố định với ba chỗ tuỳ biến: môi trường tin cậy (mặc định chỉ tin repo git hiện tại), luật chặn (hơn 20 luật: phá huỷ/rò dữ liệu, hạ tư thế bảo mật, vượt ranh giới tin cậy, bỏ qua review hay ảnh hưởng người khác), ngoại lệ cho phép.
- Mù lý lẽ có chủ ý: classifier chỉ thấy tin nhắn của người dùng và lệnh gọi công cụ; bỏ lời của agent (để agent không thuyết phục được) và kết quả công cụ (nơi nội dung độc vào). Cái giá: không biết một tham số do agent bịa hay tra ra. Theo Anthropic, thêm lời agent và kết quả công cụ làm tệ đi trên tập "quá hăng hái"; bỏ cả tin nhắn người dùng thì mất mốc ý định và chặn cả việc được yêu cầu rõ.
- Subagent: kiểm ở cả hai đầu: khi giao việc (bên trong subagent, lệnh của orchestrator trông như lệnh người dùng) và khi trả kết quả (subagent có thể bị injection giữa chừng).
- Bị chặn thì tìm đường an toàn hơn, không dừng: sau 3 lần bị từ chối liên tiếp hoặc 20 lần tổng thì dừng và hỏi người; chế độ headless thì kết thúc process.
Vì sao
- Đánh giá (2026, theo Anthropic): trên 10.000 lệnh gọi thật của nhân viên, cả pipeline chặn nhầm 0,4% (giai đoạn 1 riêng: 8,5%); trên 52 hành động "quá hăng hái" thật, bỏ lọt 17% (giai đoạn 1: 6,6%); trên 1.000 ca rò dữ liệu tổng hợp, bỏ lọt 5,7%.
- Phần lớn ca lọt: classifier nhận ra hành động nguy hiểm nhưng nhầm rằng một câu của người dùng ("dọn PR đi") là sự đồng ý cho đúng bán kính của hành động đó. Theo Anthropic, so với chạy không quyền thì là cải thiện lớn; so với người duyệt cẩn thận từng lệnh thì có thể là thoái lui, nên không thay được review của người trên hạ tầng rủi ro cao.
Bài học cho SWE
- Agent là một loại chủ thể mới của hệ phân quyền: câu hỏi không phải "có quyền không" mà "người dùng có cho phép đúng hành động này không"; mặc định mọi thứ agent tự chọn là chưa được phép.
- Cổng phân loại hai tầng (rẻ, nhạy → đắt, chính xác) tách được chi phí khỏi recall; đo bằng cả tỉ lệ chặn nhầm trên traffic thật lẫn recall trên tập sự cố thật.
- Rule cho phép quá rộng lập ra trước đó có thể vô hiệu hoá lớp kiểm tra mới; khi đổi chế độ phải rà lại.
Liên quan
Xác thực và phân quyền (authn/authz)Coding agent trong engineering (migrate, viết lại, chạy song song, quyền hạn)
#Coding agent#Permission#Classifier#Prompt injection#Approval fatigue#False positive rate#Recall#Allowlist#Subagent#Least privilege
Được nhắc tới trong
Chủ đề (2)
Công ty (1)
Bài tóm tắt (3)