SpyBara
Go Premium

agent-sdk/permissions.md 2026-05-04 22:58 UTC to 2026-05-05 23:00 UTC

242 added, 0 removed.

2026
Sun 31 06:39 Sat 30 06:23 Fri 29 06:38 Thu 28 06:37 Wed 27 06:42 Tue 26 06:33 Sun 24 06:25 Sat 23 06:18 Fri 22 06:33 Thu 21 06:36 Wed 20 06:35 Tue 19 06:34 Mon 18 23:59 Sun 17 01:01 Fri 15 22:58 Thu 14 17:02 Wed 13 23:01 Tue 12 22:57 Mon 11 23:00 Sun 10 23:03 Sat 9 04:57 Fri 8 22:00 Thu 7 22:59 Tue 5 23:00 Mon 4 22:58 Sat 2 18:14 Fri 1 18:19

Настройка разрешений

Контролируйте использование инструментов вашим агентом с помощью режимов разрешений, hooks и декларативных правил allow/deny.

Claude Agent SDK предоставляет элементы управления разрешениями для управления использованием инструментов Claude. Используйте режимы разрешений и правила для определения того, что разрешено автоматически, и callback canUseTool для обработки всего остального во время выполнения.

Как оцениваются разрешения

Когда Claude запрашивает инструмент, SDK проверяет разрешения в следующем порядке:

1

Hooks

Сначала запустите hooks. Hook может отклонить вызов полностью или передать его дальше. Hook, который возвращает allow, не пропускает правила deny и ask ниже; они оцениваются независимо от результата hook.

2

Правила deny

Проверьте правила deny (из disallowed_tools и settings.json). Если правило deny совпадает, инструмент блокируется, даже в режиме bypassPermissions.

3

Режим разрешений

Примените активный режим разрешений. bypassPermissions одобряет всё, что достигает этого шага. acceptEdits одобряет операции с файлами. Другие режимы проходят дальше.

4

Правила allow

Проверьте правила allow (из allowed_tools и settings.json). Если правило совпадает, инструмент одобрен.

5

Callback canUseTool

Если не разрешено ни одним из вышеперечисленных, вызовите ваш callback canUseTool для принятия решения. В режиме dontAsk этот шаг пропускается и инструмент отклоняется.

Диаграмма потока оценки разрешений

На этой странице основное внимание уделяется правилам allow и deny и режимам разрешений. Для других шагов:

Правила allow и deny

allowed_tools и disallowed_tools (TypeScript: allowedTools / disallowedTools) добавляют записи в списки правил allow и deny в потоке оценки выше. Они контролируют, одобрен ли вызов инструмента, а не доступен ли инструмент для Claude.

Опция Эффект
allowed_tools=["Read", "Grep"] Read и Grep автоматически одобрены. Инструменты, не указанные здесь, всё ещё существуют и переходят к режиму разрешений и canUseTool.
disallowed_tools=["Bash"] Bash всегда отклоняется. Правила deny проверяются первыми и действуют в каждом режиме разрешений, включая bypassPermissions.

Для заблокированного агента объедините allowedTools с permissionMode: "dontAsk". Указанные инструменты одобрены; всё остальное отклоняется полностью вместо запроса:

const options = {
  allowedTools: ["Read", "Glob", "Grep"],
  permissionMode: "dontAsk"
};

Вы также можете настроить правила allow, deny и ask декларативно в .claude/settings.json. Эти правила читаются, когда включен источник параметра project, что происходит для параметров query() по умолчанию. Если вы явно установите setting_sources (TypeScript: settingSources), включите "project", чтобы они применялись. См. Параметры разрешений для синтаксиса правил.

Режимы разрешений

Режимы разрешений обеспечивают глобальный контроль над использованием инструментов Claude. Вы можете установить режим разрешений при вызове query() или изменить его динамически во время сеансов потоковой передачи.

Доступные режимы

SDK поддерживает эти режимы разрешений:

Режим Описание Поведение инструмента
default Стандартное поведение разрешений Без автоматических одобрений; несовпадающие инструменты запускают ваш callback canUseTool
dontAsk Отклонение вместо запроса Всё, что не предварительно одобрено allowed_tools или правилами, отклоняется; canUseTool никогда не вызывается
acceptEdits Автоматическое принятие редактирования файлов Редактирование файлов и операции с файловой системой (mkdir, rm, mv и т. д.) автоматически одобрены
bypassPermissions Обход всех проверок разрешений Все инструменты работают без запросов разрешений (используйте с осторожностью)
plan Режим планирования Инструменты только для чтения работают; Claude анализирует и планирует без редактирования исходных файлов
auto (только TypeScript) Одобрения, классифицированные моделью Классификатор модели одобряет или отклоняет каждый вызов инструмента. См. Режим Auto для доступности

Установка режима разрешений

Вы можете установить режим разрешений один раз при запуске запроса или изменить его динамически во время активного сеанса.

Передайте permission_mode (Python) или permissionMode (TypeScript) при создании запроса. Этот режим применяется для всего сеанса, если не изменён динамически.

import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions


async def main():
async for message in query(
prompt="Help me refactor this code",
options=ClaudeAgentOptions(
permission_mode="default",  # Установите режим здесь
),
):
if hasattr(message, "result"):
print(message.result)


asyncio.run(main())

Детали режимов

Режим принятия редактирования (acceptEdits)

Автоматически одобряет операции с файлами, чтобы Claude мог редактировать код без запроса. Другие инструменты (например, команды Bash, которые не являются операциями с файловой системой) по-прежнему требуют обычных разрешений.

Автоматически одобренные операции:

  • Редактирование файлов (инструменты Edit, Write)
  • Команды файловой системы: mkdir, touch, rm, rmdir, mv, cp, sed

Оба применяются только к путям внутри рабочего каталога или additionalDirectories. Пути вне этой области и записи в защищённые пути по-прежнему запрашивают разрешение.

Используйте, когда: вы доверяете редактированию Claude и хотите более быстрой итерации, например во время прототипирования или при работе в изолированном каталоге.

Режим без запроса (dontAsk)

Преобразует любой запрос разрешения в отклонение. Инструменты, предварительно одобренные allowed_tools, правилами allow в settings.json или hook, работают нормально. Всё остальное отклоняется без вызова canUseTool.

Используйте, когда: вы хотите фиксированную, явную поверхность инструментов для автономного агента и предпочитаете жёсткое отклонение молчаливому полаганию на отсутствие canUseTool.

Режим обхода разрешений (bypassPermissions)

Автоматически одобряет все использования инструментов без запросов. Hooks всё ещё выполняются и могут блокировать операции при необходимости.

Режим планирования (plan)

Ограничивает Claude инструментами только для чтения. Claude может читать файлы и запускать команды оболочки только для чтения для изучения кодовой базы, но не редактирует исходные файлы. Claude может использовать AskUserQuestion для уточнения требований перед завершением плана. См. Обработка утверждений и ввода пользователя для обработки этих запросов.

Используйте, когда: вы хотите, чтобы Claude предложил изменения без их выполнения, например при проверке кода или когда вам нужно одобрить изменения перед их внесением.

Связанные ресурсы

Для других шагов в потоке оценки разрешений: