Claude Agent SDK предоставляет элементы управления разрешениями для управления использованием инструментов Claude. Используйте режимы разрешений и правила для определения того, что разрешено автоматически, и обратный вызов canUseTool для обработки всего остального во время выполнения.
На этой странице рассматриваются режимы разрешений и правила. Чтобы создать интерактивные потоки утверждения, где пользователи одобряют или отклоняют запросы инструментов во время выполнения, см. Обработка утверждений и ввода пользователя.
Когда Claude запрашивает инструмент, SDK проверяет разрешения в следующем порядке:
Хуки
Запустите хуки в первую очередь, которые могут разрешить, запретить или перейти к следующему шагу
Правила разрешений
Проверьте правила, определённые в settings.json в этом порядке: сначала правила deny (блокируют независимо от других правил), затем правила allow (разрешают при совпадении), затем правила ask (запрашивают утверждение). Эти декларативные правила позволяют вам предварительно одобрить, заблокировать или потребовать утверждение для конкретных инструментов без написания кода.
Режим разрешений
Применить активный режим разрешений (bypassPermissions, acceptEdits, dontAsk и т. д.)
Обратный вызов canUseTool
Если не разрешено правилами или режимами, вызовите ваш обратный вызов canUseTool для принятия решения
На этой странице основное внимание уделяется режимам разрешений (шаг 3), статической конфигурации, которая контролирует поведение по умолчанию. Для других шагов:
settings.json. См. Параметры разрешений.Режимы разрешений обеспечивают глобальный контроль над использованием инструментов Claude. Вы можете установить режим разрешений при вызове query() или изменить его динамически во время сеансов потоковой передачи.
SDK поддерживает эти режимы разрешений:
| Режим | Описание | Поведение инструмента |
|---|---|---|
default | Стандартное поведение разрешений | Без автоматических одобрений; несовпадающие инструменты запускают ваш обратный вызов canUseTool |
acceptEdits | Автоматически принимать редактирование файлов | Редактирование файлов и операции с файловой системой (mkdir, rm, mv и т. д.) автоматически одобряются |
bypassPermissions | Обойти все проверки разрешений | Все инструменты работают без запросов разрешений (используйте с осторожностью) |
plan | Режим планирования | Нет выполнения инструментов; Claude планирует без внесения изменений |
Наследование подагентом: при использовании bypassPermissions все подагенты наследуют этот режим, и его нельзя переопределить. Подагенты могут иметь различные системные подсказки и менее ограниченное поведение, чем ваш основной агент. Включение bypassPermissions предоставляет им полный автономный доступ к системе без каких-либо запросов утверждения.
Вы можете установить режим разрешений один раз при запуске запроса или изменить его динамически во время активного сеанса.
acceptEdits)Автоматически одобряет операции с файлами, чтобы Claude мог редактировать код без запросов. Другие инструменты (такие как команды Bash, которые не являются операциями с файловой системой) по-прежнему требуют обычных разрешений.
Автоматически одобренные операции:
mkdir, touch, rm, mv, cpИспользуйте, когда: вы доверяете редактированию Claude и хотите более быструю итерацию, например при прототипировании или работе в изолированном каталоге.
bypassPermissions)Автоматически одобряет все использования инструментов без запросов. Хуки по-прежнему выполняются и могут блокировать операции при необходимости.
Используйте с большой осторожностью. Claude имеет полный доступ к системе в этом режиме. Используйте только в контролируемых средах, где вы доверяете всем возможным операциям.
plan)Полностью предотвращает выполнение инструментов. Claude может анализировать код и создавать планы, но не может вносить изменения. Claude может использовать AskUserQuestion для уточнения требований перед завершением плана. См. Обработка утверждений и ввода пользователя для обработки этих запросов.
Используйте, когда: вы хотите, чтобы Claude предложил изменения без их выполнения, например при проверке кода или когда вам нужно одобрить изменения перед их внесением.
Для других шагов в потоке оценки разрешений:
settings.jsonWas this page helpful?