GadgetForge

GadgetForge

Claude Code: Phía Sau 'Cánh Cửa' Quyền Hạn và Những Công Cụ Quyền Năng


Claude Code: Phía Sau "Cánh Cửa" Quyền Hạn và Những Công Cụ Quyền Năng

1. Lời mở đầu

Trong kỷ nguyên lập trình hiện đại, AI không còn chỉ dừng lại ở việc gợi ý mã nguồn trên trình duyệt. Với Claude Code, AI đã thực sự bước vào terminal của bạn. Tuy nhiên, sự tiện lợi này thường đi kèm với những nỗi lo: Liệu AI có tự ý xóa nhầm file? Hay cảm giác phiền phức khi phải gõ "y" liên tục để cấp quyền cho từng thay đổi nhỏ?

Claude Code không chỉ là một mô hình ngôn ngữ biết "nói", nó là một thực thể có khả năng hành động thực tế. Chìa khóa để làm chủ thực thể này nằm ở việc thấu hiểu hệ thống Tools (Công cụ)Permissions (Quyền hạn) — nơi ranh giới giữa sự tự động hóa mạnh mẽ và tính an toàn bảo mật được thiết lập.

2. Công cụ (Tools): "Cây cầu" nối giữa Suy nghĩ và Hành động

Hãy cùng mổ xẻ những gì thực sự diễn ra "dưới nắp ca-pô". Về bản chất, một mô hình AI dù thông minh đến đâu cũng chỉ có thể lập luận, lập kế hoạch và tạo văn bản. Nó không có "tay" để chạm vào hệ thống file hay thực thi lệnh terminal. Tools chính là giải pháp.

"Tools là cầu nối giữa mô hình AI và dự án của bạn."

Khi bạn nhập một prompt, quy trình vận hành sẽ như sau:

  1. Mô hình (như Claude 3.5 Sonnet hoặc mới hơn) phân tích yêu cầu và lập kế hoạch.
  2. Mô hình chọn công cụ cần thiết (ví dụ: write để tạo file).
  3. Claude Code thực thi công cụ đó và gửi kết quả ngược lại cho mô hình để tiếp tục xử lý.

Các công cụ quyền năng tích hợp sẵn bao gồm:

  • read, write, edit: Đọc, ghi và chỉnh sửa file.
    Lưu ý: Các công cụ read-only là ngoại lệ duy nhất không yêu cầu cấp quyền vì chúng được coi là an toàn tuyệt đối.
  • bash: Thực thi các lệnh terminal.
  • glob & grep: Tìm kiếm tệp tin và nội dung bên trong tệp theo pattern.
  • web_search & web_fetch: Tra cứu tài liệu và lấy dữ liệu từ các tên miền cụ thể trên internet.

Điểm tinh tế của Claude Code là trải nghiệm người dùng: bạn chỉ cần đưa ra mục tiêu, việc chọn công cụ nào và gọi ra sao hoàn toàn do mô hình tự động điều phối.

3. Phá bỏ rào cản: Chế độ Tự động hóa (Auto-edit mode)

Mặc định, Claude sẽ hỏi ý kiến bạn trước mỗi hành động thay đổi tệp. Để tăng tốc quy trình phát triển mà không bị ngắt quãng, bạn có thể kích hoạt chế độ "Allow all edits during this session" (hay còn gọi là accept edits on).

Khi bật chế độ này, thông báo "accept edits on" sẽ xuất hiện. Đây là quyền hạn mang tính Session-based (theo phiên làm việc): nó cực kỳ mạnh mẽ nhưng sẽ biến mất ngay khi bạn thoát terminal hoặc đóng VS Code. Nếu AI thực hiện sai? Đừng lo, lệnh rewind luôn sẵn sàng để đưa mã nguồn trở lại trạng thái an toàn.

Dưới đây là screenshot minh họa thông báo "accept edits on" và tùy chọn "Yes, allow all edits during this session":

Mẹo sử dụng phím tắt (Keyboard Shortcuts) – Cập nhật 2026:

  • Nếu đang ở chế độ mặc định: Nhấn Shift + Tab 1 lần → Bật ngay Auto-edit ("accept edits on").
  • Nhấn Shift + Tab 2 lần → Vào Plan Mode (chế độ lập kế hoạch, không chỉnh sửa).
  • Nhấn lần thứ 3 → Quay về mặc định (hỏi quyền thủ công).

IV. Kiểm soát tinh vi với Specifiers và Wildcards

Đôi khi bạn không muốn cấp quyền "trắng" cho toàn bộ lệnh Bash nhưng cũng không muốn phải phê duyệt lặp đi lặp lại. Đây là lúc Specifiers phát huy sức mạnh để tạo ra phân quyền chi tiết (fine-grained permissions).

Thay vì cho phép toàn bộ tool, bạn có thể giới hạn theo cú pháp tool_name(parameter):

  • Cấp quyền lệnh cụ thể: bash(git init) cho phép Claude khởi tạo repo mà không cần hỏi, nhưng các lệnh bash khác vẫn phải xin phép.
  • Sử dụng Wildcards (Dấu sao): Để linh hoạt hơn, hãy dùng dấu *. Ví dụ: bash(git switch *) cho phép Claude chuyển sang bất kỳ nhánh nào (vì phần sau của lệnh là biến thiên).
  • Giới hạn tên miền: Bạn có thể cấp quyền web_fetch(nextjs.org/*) để AI tự tra cứu tài liệu của dự án mà không vi phạm bảo mật.

Dưới đây là ví dụ thực tế trong file cấu hình:

V. Quản lý Quyền hạn: Ba phạm vi và Ba trạng thái

Khác với Auto-edit chỉ có tác dụng tạm thời, các thiết lập thông qua lệnh /permissions sẽ có tính chất Project-based (lâu dài) và được lưu trữ trong thư mục .claude tại gốc dự án.

1. Ba phạm vi lưu trữ (Scopes):

  • Local project (.claude/settings.local.json): Lưu tại máy cá nhân, được tự động thêm vào .gitignore. Phù hợp cho tùy chỉnh riêng tư.
  • Normal project (.claude/settings.json): Được lưu vào Git, chia sẻ quy tắc chung cho toàn đội ngũ.
  • User scope: Cấu hình toàn cục, áp dụng cho mọi dự án trên máy tính của bạn.

2. Ba trạng thái quản lý (Tabs):

  • Allow (Cho phép): Danh sách công cụ được tự động thực thi.
  • Ask (Hỏi trước): Bắt buộc dừng lại xin ý kiến người dùng.
  • Deny (Từ chối): Chặn tuyệt đối hành động ngay khi AI có ý định sử dụng công cụ đó.

Dưới đây là giao diện quản lý permissions trong Claude Code:

VI. Kết luận và Suy ngẫm

Làm chủ Tools và Permissions chính là cách bạn thiết lập "hợp đồng tin cậy" với Claude Code. Khi AI có khả năng vận hành công cụ như một kỹ sư thực thụ, vai trò của người lập trình không hề mất đi mà đang dịch chuyển mạnh mẽ.

Chúng ta đang chuyển từ vai trò người trực tiếp gõ phím (Coder) sang vai trò của một người điều phối (Orchestrator) — người thiết kế quy trình và giám sát quyền hạn. Bạn sẽ thiết lập "cánh cửa" quyền hạn của mình như thế nào để vừa giải phóng sức sáng tạo tối đa, vừa giữ vững sự an toàn tuyệt đối cho dự án?