Claude Code

Auto mode trong Claude Code: bớt hỏi quyền nhờ bộ phân loại an toàn

Tóm tắt

Auto mode để một model phân loại duyệt hành động thay bạn, chặn thao tác phá huỷ, deploy production hay gửi dữ liệu ra ngoài. Nó giảm hỏi quyền nhưng không đảm bảo tuyệt đối; điều cấm tuyệt đối phải nằm trong deny rule.

Dùng Claude Code lâu, ai cũng gặp "mệt mỏi vì hỏi quyền": bấm Allow hàng chục lần một giờ, đến mức bấm theo phản xạ mà không đọc lệnh. Lối thoát cũ là bypassPermissions, tức tắt gần hết kiểm tra, quá rủi ro trên máy thật. Auto mode là con đường ở giữa: một model phân loại riêng xem xét từng hành động trước khi chạy, cho qua việc bình thường và chặn những gì vượt quá yêu cầu của bạn. Từ v2.1.283, auto mode là chế độ khởi đầu mặc định của phiên tương tác trên terminal và VS Code.

Cơ chế: thứ tự quyết định

  1. Rule: allow, ask, deny trong settings được áp trước (có ngoại lệ, ví dụ ghi vào đường dẫn được bảo vệ vẫn đi qua bộ phân loại).
  2. Tự duyệt sẵn: thao tác chỉ đọc và sửa file trong thư mục làm việc.
  3. Bộ phân loại: mọi thứ còn lại, chủ yếu là lệnh shell và mạng.
  4. Kết luận: nếu bị chặn, Claude nhận lý do và tìm cách khác.

Khi vào auto mode, các allow rule quá rộng kiểu Bash(*) bị bỏ qua; rule hẹp như Bash(npm test) vẫn giữ.

Mặc định bị chặn

NhómVí dụ
Chạy code tải vềcurl ... | bash
Gửi dữ liệu nhạy cảm ra ngoàiĐẩy secret lên endpoint lạ
Thao tác phá huỷgit push --force, git reset --hard, terraform destroy
ProductionDeploy, migration production
Quyền hạnCấp quyền IAM/repo, merge PR chưa ai duyệt

Push lên nhánh của repo hiện tại vẫn được phép, trừ khi có secret.

Bật và cấu hình

claude --permission-mode auto      # hoặc Shift+Tab để chuyển chế độ

// ~/.claude/settings.json
{ "permissions": { "defaultMode": "auto" } }

Đặt "auto" trong settings cấp dự án không có tác dụng: repo không tự bật được auto mode cho bạn. Các núm chỉnh:

  • autoMode.environment: khai báo repo, bucket, service bạn tin cậy.
  • autoMode.allow: cho phép các pattern thường dùng mà mặc định bị chặn.
  • claude auto-mode defaults: in toàn bộ luật mặc định dạng JSON.
  • CLAUDE_CODE_AUTO_MODE_MODEL: đổi model phân loại (mặc định Sonnet 5).

So với các chế độ khác

Chế độTự duyệtCó bộ phân loại?
acceptEditsSửa file, lệnh filesystem phổ biếnKhông; lệnh khác vẫn hỏi
autoGần như mọi thứ an toànCó
bypassPermissionsGần như tất cảKhông; chỉ dùng trong container/VM

Deny rule có hiệu lực ở mọi chế độ.

Chi phí và giới hạn

  • Với tài khoản Enterprise và API, các lần gọi bộ phân loại tính vào token. Mỗi lần kiểm tra thêm một vòng trễ, chủ yếu ở lệnh shell và mạng.
  • Bị chặn 3 lần liên tiếp, hoặc 20 lần trong một phiên, auto mode tạm dừng và quay về hỏi quyền. Ngưỡng này không đổi được.
  • Bộ phân loại đọc lại các dặn dò trong hội thoại ("đừng push"). Khi hội thoại bị compact, dặn dò có thể mất. Cần đảm bảo cứng thì dùng deny rule.
  • Model hỗ trợ: Opus/Sonnet 4.6 trở lên, Haiku 5.5, Fable (qua API Anthropic). Admin Team/Enterprise có thể tắt bằng permissions.disableAutoMode.

Áp dụng thế nào?

  • Dev: Dùng auto mode cho task bạn tin hướng đi. Thêm permissions.ask cho lệnh muốn tự duyệt, như Bash(git push *).
  • Tech Lead: Viết deny rule cho thứ tuyệt đối không được làm (đọc .env, sửa infra/prod). Kết hợp sandbox Bash để có hai lớp bảo vệ.
  • PM/Admin: Theo dõi chi phí bộ phân loại trên tài khoản API; báo false positive bằng /feedback để cải thiện.

Nguồn & tham khảo

  1. Choose a permission mode — Claude Code Docs
  2. Configure auto mode — Claude Code Docs