Claude Agent SDK menyediakan kontrol izin untuk mengelola bagaimana Claude menggunakan alat. Gunakan mode izin dan aturan untuk menentukan apa yang diizinkan secara otomatis, dan callback canUseTool untuk menangani segalanya di runtime.
Halaman ini mencakup mode izin dan aturan. Untuk membangun alur persetujuan interaktif di mana pengguna menyetujui atau menolak permintaan alat di runtime, lihat Tangani persetujuan dan input pengguna.
Ketika Claude meminta alat, SDK memeriksa izin dalam urutan ini:
Hook
Jalankan hook terlebih dahulu, yang dapat mengizinkan, menolak, atau melanjutkan ke langkah berikutnya
Aturan izin
Periksa aturan yang ditentukan dalam settings.json dalam urutan ini: aturan deny terlebih dahulu (blokir terlepas dari aturan lain), kemudian aturan allow (izinkan jika cocok), kemudian aturan ask (minta persetujuan). Aturan deklaratif ini memungkinkan Anda untuk pra-menyetujui, memblokir, atau memerlukan persetujuan untuk alat tertentu tanpa menulis kode.
Mode izin
Terapkan mode izin aktif (bypassPermissions, acceptEdits, dontAsk, dll.)
Callback canUseTool
Jika tidak diselesaikan oleh aturan atau mode, panggil callback canUseTool Anda untuk keputusan
Halaman ini berfokus pada mode izin (langkah 3), konfigurasi statis yang mengontrol perilaku default. Untuk langkah-langkah lainnya:
settings.json. Lihat Pengaturan izin.Mode izin menyediakan kontrol global atas bagaimana Claude menggunakan alat. Anda dapat mengatur mode izin saat memanggil query() atau mengubahnya secara dinamis selama sesi streaming.
SDK mendukung mode izin ini:
| Mode | Deskripsi | Perilaku alat |
|---|---|---|
default | Perilaku izin standar | Tidak ada persetujuan otomatis; alat yang tidak cocok memicu callback canUseTool Anda |
acceptEdits | Terima otomatis edit file | Edit file dan operasi sistem file (mkdir, rm, mv, dll.) disetujui secara otomatis |
bypassPermissions | Lewati semua pemeriksaan izin | Semua alat berjalan tanpa prompt izin (gunakan dengan hati-hati) |
plan | Mode perencanaan | Tidak ada eksekusi alat; Claude merencanakan tanpa membuat perubahan |
Warisan subagen: Saat menggunakan bypassPermissions, semua subagen mewarisi mode ini dan tidak dapat ditimpa. Subagen mungkin memiliki prompt sistem yang berbeda dan perilaku yang kurang terbatas daripada agen utama Anda. Mengaktifkan bypassPermissions memberikan mereka akses sistem penuh dan otonom tanpa prompt persetujuan apa pun.
Anda dapat mengatur mode izin sekali saat memulai kueri, atau mengubahnya secara dinamis saat sesi aktif.
acceptEdits)Menyetujui operasi file secara otomatis sehingga Claude dapat mengedit kode tanpa meminta. Alat lain (seperti perintah Bash yang bukan operasi sistem file) masih memerlukan izin normal.
Operasi yang disetujui otomatis:
mkdir, touch, rm, mv, cpGunakan saat: Anda mempercayai edit Claude dan menginginkan iterasi lebih cepat, seperti selama prototyping atau saat bekerja di direktori terisolasi.
bypassPermissions)Menyetujui semua penggunaan alat tanpa prompt. Hook masih dijalankan dan dapat memblokir operasi jika diperlukan.
Gunakan dengan sangat hati-hati. Claude memiliki akses sistem penuh dalam mode ini. Hanya gunakan di lingkungan terkontrol di mana Anda mempercayai semua operasi yang mungkin.
plan)Mencegah eksekusi alat sepenuhnya. Claude dapat menganalisis kode dan membuat rencana tetapi tidak dapat membuat perubahan. Claude dapat menggunakan AskUserQuestion untuk memperjelas persyaratan sebelum menyelesaikan rencana. Lihat Tangani persetujuan dan input pengguna untuk menangani prompt ini.
Gunakan saat: Anda ingin Claude mengusulkan perubahan tanpa menjalankannya, seperti selama tinjauan kode atau ketika Anda perlu menyetujui perubahan sebelum dibuat.
Untuk langkah-langkah lain dalam alur evaluasi izin:
settings.jsonWas this page helpful?