6 6
7> Полный справочник API для Python Agent SDK, включая все функции, типы и классы.7> Полный справочник API для Python Agent SDK, включая все функции, типы и классы.
8 8
9## Установка9<h2 id="installation">
10 Установка
11</h2>
10 12
11```bash theme={null}13```bash theme={null}
12pip install claude-agent-sdk14pip install claude-agent-sdk
13```15```
14 16
15## Выбор между `query()` и `ClaudeSDKClient`17<h2 id="choosing-between-query-and-claudesdkclient">
18 Выбор между `query()` и `ClaudeSDKClient`
19</h2>
16 20
17Python SDK предоставляет два способа взаимодействия с Claude Code:21Python SDK предоставляет два способа взаимодействия с Claude Code:
18 22
19### Быстрое сравнение23<h3 id="quick-comparison">
24 Быстрое сравнение
25</h3>
20 26
21| Функция | `query()` | `ClaudeSDKClient` |27| Функция | `query()` | `ClaudeSDKClient` |
22| :------------------------------- | :------------------------------------------------ | :-------------------------------------- |28| :------------------------------- | :------------------------------------------------ | :-------------------------------------- |
30| **Продолжить чат** | Ручное через `continue_conversation` или `resume` | ✅ Автоматическое |36| **Продолжить чат** | Ручное через `continue_conversation` или `resume` | ✅ Автоматическое |
31| **Вариант использования** | Одноразовые задачи | Непрерывные разговоры |37| **Вариант использования** | Одноразовые задачи | Непрерывные разговоры |
32 38
33### Когда использовать `query()` (одноразовые задачи)39<h3 id="when-to-use-query-one-off-tasks">
40 Когда использовать `query()` (одноразовые задачи)
41</h3>
34 42
35**Лучше всего для:**43**Лучше всего для:**
36 44
39* Простых скриптов автоматизации47* Простых скриптов автоматизации
40* Когда вы хотите начать с чистого листа каждый раз48* Когда вы хотите начать с чистого листа каждый раз
41 49
42### Когда использовать `ClaudeSDKClient` (непрерывный разговор)50<h3 id="when-to-use-claudesdkclient-continuous-conversation">
51 Когда использовать `ClaudeSDKClient` (непрерывный разговор)
52</h3>
43 53
44**Лучше всего для:**54**Лучше всего для:**
45 55
49* **Логики, управляемой ответом** - Когда следующее действие зависит от ответа Claude59* **Логики, управляемой ответом** - Когда следующее действие зависит от ответа Claude
50* **Управления сеансом** - Явное управление жизненным циклом разговора60* **Управления сеансом** - Явное управление жизненным циклом разговора
51 61
52## Функции62<h2 id="functions">
63 Функции
64</h2>
53 65
54### `query()`66<h3 id="query">
67 `query()`
68</h3>
55 69
56Создает новый сеанс для каждого взаимодействия с Claude Code по умолчанию. Возвращает асинхронный итератор, который выдает сообщения по мере их поступления. Каждый вызов `query()` начинается с нуля без памяти о предыдущих взаимодействиях, если вы не передадите `continue_conversation=True` или `resume` в [`ClaudeAgentOptions`](#claudeagentoptions). См. [Sessions](/ru/agent-sdk/sessions).70Создает новый сеанс для каждого взаимодействия с Claude Code по умолчанию. Возвращает асинхронный итератор, который выдает сообщения по мере их поступления. Каждый вызов `query()` начинается с нуля без памяти о предыдущих взаимодействиях, если вы не передадите `continue_conversation=True` или `resume` в [`ClaudeAgentOptions`](#claudeagentoptions). См. [Sessions](/ru/agent-sdk/sessions).
57 71
64) -> AsyncIterator[Message]78) -> AsyncIterator[Message]
65```79```
66 80
67#### Параметры81<h4 id="parameters">
82 Параметры
83</h4>
68 84
69| Параметр | Тип | Описание |85| Параметр | Тип | Описание |
70| :---------- | :--------------------------- | :--------------------------------------------------------------------------------------- |86| :---------- | :--------------------------- | :--------------------------------------------------------------------------------------- |
72| `options` | `ClaudeAgentOptions \| None` | Объект дополнительной конфигурации (по умолчанию `ClaudeAgentOptions()`, если None) |88| `options` | `ClaudeAgentOptions \| None` | Объект дополнительной конфигурации (по умолчанию `ClaudeAgentOptions()`, если None) |
73| `transport` | `Transport \| None` | Дополнительный пользовательский транспорт для связи с процессом CLI |89| `transport` | `Transport \| None` | Дополнительный пользовательский транспорт для связи с процессом CLI |
74 90
75#### Возвращаемое значение91<h4 id="returns">
92 Возвращаемое значение
93</h4>
76 94
77Возвращает `AsyncIterator[Message]`, который выдает сообщения из разговора.95Возвращает `AsyncIterator[Message]`, который выдает сообщения из разговора.
78 96
79#### Пример - С параметрами97<h4 id="example-with-options">
98 Пример - С параметрами
99</h4>
80 100
81```python theme={null}101```python theme={null}
82import asyncio102import asyncio
97asyncio.run(main())117asyncio.run(main())
98```118```
99 119
100### `tool()`120<h3 id="tool">
121 `tool()`
122</h3>
101 123
102Декоратор для определения MCP tools с проверкой типов.124Декоратор для определения MCP tools с проверкой типов.
103 125
110) -> Callable[[Callable[[Any], Awaitable[dict[str, Any]]]], SdkMcpTool[Any]]132) -> Callable[[Callable[[Any], Awaitable[dict[str, Any]]]], SdkMcpTool[Any]]
111```133```
112 134
113#### Параметры135<h4 id="parameters-1">
136 Параметры
137</h4>
114 138
115| Параметр | Тип | Описание |139| Параметр | Тип | Описание |
116| :------------- | :---------------------------------------------- | :------------------------------------------------------------------------------ |140| :------------- | :---------------------------------------------- | :------------------------------------------------------------------------------ |
119| `input_schema` | `type \| dict[str, Any]` | Схема, определяющая входные параметры инструмента (см. ниже) |143| `input_schema` | `type \| dict[str, Any]` | Схема, определяющая входные параметры инструмента (см. ниже) |
120| `annotations` | [`ToolAnnotations`](#toolannotations)` \| None` | Дополнительные аннотации MCP tool, предоставляющие подсказки поведения клиентам |144| `annotations` | [`ToolAnnotations`](#toolannotations)` \| None` | Дополнительные аннотации MCP tool, предоставляющие подсказки поведения клиентам |
121 145
122#### Варианты схемы ввода146<h4 id="input-schema-options">
147 Варианты схемы ввода
148</h4>
123 149
1241. **Простое сопоставление типов** (рекомендуется):1501. **Простое сопоставление типов** (рекомендуется):
125 151
139 }165 }
140 ```166 ```
141 167
142#### Возвращаемое значение168<h4 id="returns-1">
169 Возвращаемое значение
170</h4>
143 171
144Функция-декоратор, которая оборачивает реализацию инструмента и возвращает экземпляр `SdkMcpTool`.172Функция-декоратор, которая оборачивает реализацию инструмента и возвращает экземпляр `SdkMcpTool`.
145 173
146#### Пример174<h4 id="example">
175 Пример
176</h4>
147 177
148```python theme={null}178```python theme={null}
149from claude_agent_sdk import tool179from claude_agent_sdk import tool
155 return {"content": [{"type": "text", "text": f"Hello, {args['name']}!"}]}185 return {"content": [{"type": "text", "text": f"Hello, {args['name']}!"}]}
156```186```
157 187
158#### `ToolAnnotations`188<h4 id="toolannotations">
189 `ToolAnnotations`
190</h4>
159 191
160Переэкспортировано из `mcp.types` (также доступно как `from claude_agent_sdk import ToolAnnotations`). Все поля являются дополнительными подсказками; клиенты не должны полагаться на них для решений безопасности.192Переэкспортировано из `mcp.types` (также доступно как `from claude_agent_sdk import ToolAnnotations`). Все поля являются дополнительными подсказками; клиенты не должны полагаться на них для решений безопасности.
161 193
182 return {"content": [{"type": "text", "text": f"Results for: {args['query']}"}]}214 return {"content": [{"type": "text", "text": f"Results for: {args['query']}"}]}
183```215```
184 216
185### `create_sdk_mcp_server()`217<h3 id="create_sdk_mcp_server">
218 `create_sdk_mcp_server()`
219</h3>
186 220
187Создайте встроенный MCP server, который работает в вашем приложении Python.221Создайте встроенный MCP server, который работает в вашем приложении Python.
188 222
194) -> McpSdkServerConfig228) -> McpSdkServerConfig
195```229```
196 230
197#### Параметры231<h4 id="parameters-2">
232 Параметры
233</h4>
198 234
199| Параметр | Тип | По умолчанию | Описание |235| Параметр | Тип | По умолчанию | Описание |
200| :-------- | :------------------------------ | :----------- | :------------------------------------------------------------------ |236| :-------- | :------------------------------ | :----------- | :------------------------------------------------------------------ |
202| `version` | `str` | `"1.0.0"` | Строка версии сервера |238| `version` | `str` | `"1.0.0"` | Строка версии сервера |
203| `tools` | `list[SdkMcpTool[Any]] \| None` | `None` | Список функций инструментов, созданных с помощью декоратора `@tool` |239| `tools` | `list[SdkMcpTool[Any]] \| None` | `None` | Список функций инструментов, созданных с помощью декоратора `@tool` |
204 240
205#### Возвращаемое значение241<h4 id="returns-2">
242 Возвращаемое значение
243</h4>
206 244
207Возвращает объект `McpSdkServerConfig`, который можно передать в `ClaudeAgentOptions.mcp_servers`.245Возвращает объект `McpSdkServerConfig`, который можно передать в `ClaudeAgentOptions.mcp_servers`.
208 246
209#### Пример247<h4 id="example-1">
248 Пример
249</h4>
210 250
211```python theme={null}251```python theme={null}
212from claude_agent_sdk import tool, create_sdk_mcp_server252from claude_agent_sdk import tool, create_sdk_mcp_server
235)275)
236```276```
237 277
238### `list_sessions()`278<h3 id="list_sessions">
279 `list_sessions()`
280</h3>
239 281
240Выводит список прошлых сеансов с метаданными. Фильтруйте по каталогу проекта или выводите сеансы во всех проектах. Синхронно; возвращается немедленно.282Выводит список прошлых сеансов с метаданными. Фильтруйте по каталогу проекта или выводите сеансы во всех проектах. Синхронно; возвращается немедленно.
241 283
247) -> list[SDKSessionInfo]289) -> list[SDKSessionInfo]
248```290```
249 291
250#### Параметры292<h4 id="parameters-3">
293 Параметры
294</h4>
251 295
252| Параметр | Тип | По умолчанию | Описание |296| Параметр | Тип | По умолчанию | Описание |
253| :------------------ | :------------ | :----------- | :------------------------------------------------------------------------------------------- |297| :------------------ | :------------ | :----------- | :------------------------------------------------------------------------------------------- |
255| `limit` | `int \| None` | `None` | Максимальное количество возвращаемых сеансов |299| `limit` | `int \| None` | `None` | Максимальное количество возвращаемых сеансов |
256| `include_worktrees` | `bool` | `True` | Когда `directory` находится внутри репозитория git, включайте сеансы из всех путей worktrees |300| `include_worktrees` | `bool` | `True` | Когда `directory` находится внутри репозитория git, включайте сеансы из всех путей worktrees |
257 301
258#### Тип возвращаемого значения: `SDKSessionInfo`302<h4 id="return-type-sdksessioninfo">
303 Тип возвращаемого значения: `SDKSessionInfo`
304</h4>
259 305
260| Свойство | Тип | Описание |306| Свойство | Тип | Описание |
261| :-------------- | :------------ | :---------------------------------------------------------------------------------------------------- |307| :-------------- | :------------ | :---------------------------------------------------------------------------------------------------- |
270| `tag` | `str \| None` | Тег сеанса, установленный пользователем (см. [`tag_session()`](#tag_session)) |316| `tag` | `str \| None` | Тег сеанса, установленный пользователем (см. [`tag_session()`](#tag_session)) |
271| `created_at` | `int \| None` | Время создания сеанса в миллисекундах с начала эпохи |317| `created_at` | `int \| None` | Время создания сеанса в миллисекундах с начала эпохи |
272 318
273#### Пример319<h4 id="example-2">
320 Пример
321</h4>
274 322
275Выведите 10 самых последних сеансов для проекта. Результаты отсортированы по `last_modified` в убывающем порядке, поэтому первый элемент - самый новый. Опустите `directory`, чтобы искать во всех проектах.323Выведите 10 самых последних сеансов для проекта. Результаты отсортированы по `last_modified` в убывающем порядке, поэтому первый элемент - самый новый. Опустите `directory`, чтобы искать во всех проектах.
276 324
281 print(f"{session.summary} ({session.session_id})")329 print(f"{session.summary} ({session.session_id})")
282```330```
283 331
284### `get_session_messages()`332<h3 id="get_session_messages">
333 `get_session_messages()`
334</h3>
285 335
286Извлекает сообщения из прошлого сеанса. Синхронно; возвращается немедленно.336Извлекает сообщения из прошлого сеанса. Синхронно; возвращается немедленно.
287 337
294) -> list[SessionMessage]344) -> list[SessionMessage]
295```345```
296 346
297#### Параметры347<h4 id="parameters-4">
348 Параметры
349</h4>
298 350
299| Параметр | Тип | По умолчанию | Описание |351| Параметр | Тип | По умолчанию | Описание |
300| :----------- | :------------ | :----------- | :-------------------------------------------------------------- |352| :----------- | :------------ | :----------- | :-------------------------------------------------------------- |
303| `limit` | `int \| None` | `None` | Максимальное количество возвращаемых сообщений |355| `limit` | `int \| None` | `None` | Максимальное количество возвращаемых сообщений |
304| `offset` | `int` | `0` | Количество сообщений для пропуска с начала |356| `offset` | `int` | `0` | Количество сообщений для пропуска с начала |
305 357
306#### Тип возвращаемого значения: `SessionMessage`358<h4 id="return-type-sessionmessage">
359 Тип возвращаемого значения: `SessionMessage`
360</h4>
307 361
308| Свойство | Тип | Описание |362| Свойство | Тип | Описание |
309| :------------------- | :----------------------------- | :----------------------------------------- |363| :------------------- | :----------------------------- | :----------------------------------------- |
313| `message` | `Any` | Необработанное содержимое сообщения |367| `message` | `Any` | Необработанное содержимое сообщения |
314| `parent_tool_use_id` | `None` | Зарезервировано для будущего использования |368| `parent_tool_use_id` | `None` | Зарезервировано для будущего использования |
315 369
316#### Пример370<h4 id="example-3">
371 Пример
372</h4>
317 373
318```python theme={null}374```python theme={null}
319from claude_agent_sdk import list_sessions, get_session_messages375from claude_agent_sdk import list_sessions, get_session_messages
325 print(f"[{msg.type}] {msg.uuid}")381 print(f"[{msg.type}] {msg.uuid}")
326```382```
327 383
328### `get_session_info()`384<h3 id="get_session_info">
385 `get_session_info()`
386</h3>
329 387
330Читает метаданные для одного сеанса по ID без сканирования полного каталога проекта. Синхронно; возвращается немедленно.388Читает метаданные для одного сеанса по ID без сканирования полного каталога проекта. Синхронно; возвращается немедленно.
331 389
336) -> SDKSessionInfo | None394) -> SDKSessionInfo | None
337```395```
338 396
339#### Параметры397<h4 id="parameters-5">
398 Параметры
399</h4>
340 400
341| Параметр | Тип | По умолчанию | Описание |401| Параметр | Тип | По умолчанию | Описание |
342| :----------- | :------------ | :----------- | :------------------------------------------------------------------- |402| :----------- | :------------ | :----------- | :------------------------------------------------------------------- |
345 405
346Возвращает [`SDKSessionInfo`](#return-type-sdksessioninfo) или `None`, если сеанс не найден.406Возвращает [`SDKSessionInfo`](#return-type-sdksessioninfo) или `None`, если сеанс не найден.
347 407
348#### Пример408<h4 id="example-4">
409 Пример
410</h4>
349 411
350Найдите метаданные одного сеанса без сканирования каталога проекта. Полезно, когда у вас уже есть ID сеанса из предыдущего запуска.412Найдите метаданные одного сеанса без сканирования каталога проекта. Полезно, когда у вас уже есть ID сеанса из предыдущего запуска.
351 413
357 print(f"{info.summary} (branch: {info.git_branch}, tag: {info.tag})")419 print(f"{info.summary} (branch: {info.git_branch}, tag: {info.tag})")
358```420```
359 421
360### `rename_session()`422<h3 id="rename_session">
423 `rename_session()`
424</h3>
361 425
362Переименовывает сеанс, добавляя запись с пользовательским названием. Повторные вызовы безопасны; побеждает самое последнее название. Синхронно.426Переименовывает сеанс, добавляя запись с пользовательским названием. Повторные вызовы безопасны; побеждает самое последнее название. Синхронно.
363 427
369) -> None433) -> None
370```434```
371 435
372#### Параметры436<h4 id="parameters-6">
437 Параметры
438</h4>
373 439
374| Параметр | Тип | По умолчанию | Описание |440| Параметр | Тип | По умолчанию | Описание |
375| :----------- | :------------ | :----------- | :------------------------------------------------------------------- |441| :----------- | :------------ | :----------- | :------------------------------------------------------------------- |
379 445
380Вызывает `ValueError`, если `session_id` не является допустимым UUID или `title` пуст; `FileNotFoundError`, если сеанс не найден.446Вызывает `ValueError`, если `session_id` не является допустимым UUID или `title` пуст; `FileNotFoundError`, если сеанс не найден.
381 447
382#### Пример448<h4 id="example-5">
449 Пример
450</h4>
383 451
384Переименуйте самый последний сеанс, чтобы его было легче найти позже. Новое название появляется в [`SDKSessionInfo.custom_title`](#return-type-sdksessioninfo) при последующих чтениях.452Переименуйте самый последний сеанс, чтобы его было легче найти позже. Новое название появляется в [`SDKSessionInfo.custom_title`](#return-type-sdksessioninfo) при последующих чтениях.
385 453
391 rename_session(sessions[0].session_id, "Refactor auth module")459 rename_session(sessions[0].session_id, "Refactor auth module")
392```460```
393 461
394### `tag_session()`462<h3 id="tag_session">
463 `tag_session()`
464</h3>
395 465
396Помечает сеанс. Передайте `None` для очистки тега. Повторные вызовы безопасны; побеждает самый последний тег. Синхронно.466Помечает сеанс. Передайте `None` для очистки тега. Повторные вызовы безопасны; побеждает самый последний тег. Синхронно.
397 467
403) -> None473) -> None
404```474```
405 475
406#### Параметры476<h4 id="parameters-7">
477 Параметры
478</h4>
407 479
408| Параметр | Тип | По умолчанию | Описание |480| Параметр | Тип | По умолчанию | Описание |
409| :----------- | :------------ | :----------- | :------------------------------------------------------------------------- |481| :----------- | :------------ | :----------- | :------------------------------------------------------------------------- |
413 485
414Вызывает `ValueError`, если `session_id` не является допустимым UUID или `tag` пуст после очистки; `FileNotFoundError`, если сеанс не найден.486Вызывает `ValueError`, если `session_id` не является допустимым UUID или `tag` пуст после очистки; `FileNotFoundError`, если сеанс не найден.
415 487
416#### Пример488<h4 id="example-6">
489 Пример
490</h4>
417 491
418Пометьте сеанс, затем отфильтруйте по этому тегу при последующем чтении. Передайте `None` для очистки существующего тега.492Пометьте сеанс, затем отфильтруйте по этому тегу при последующем чтении. Передайте `None` для очистки существующего тега.
419 493
429 print(session.summary)503 print(session.summary)
430```504```
431 505
432## Классы506<h2 id="classes">
507 Классы
508</h2>
433 509
434### `ClaudeSDKClient`510<h3 id="claudesdkclient">
511 `ClaudeSDKClient`
512</h3>
435 513
436**Поддерживает сеанс разговора через несколько обменов.** Это эквивалент Python того, как функция `query()` TypeScript SDK работает внутри - она создает объект клиента, который может продолжать разговоры.514**Поддерживает сеанс разговора через несколько обменов.** Это эквивалент Python того, как функция `query()` TypeScript SDK работает внутри - она создает объект клиента, который может продолжать разговоры.
437 515
438#### Ключевые особенности516<h4 id="key-features">
517 Ключевые особенности
518</h4>
439 519
440* **Непрерывность сеанса**: Поддерживает контекст разговора через несколько вызовов `query()`520* **Непрерывность сеанса**: Поддерживает контекст разговора через несколько вызовов `query()`
441* **Один разговор**: Сеанс сохраняет предыдущие сообщения521* **Один разговор**: Сеанс сохраняет предыдущие сообщения
463 async def disconnect(self) -> None543 async def disconnect(self) -> None
464```544```
465 545
466#### Методы546<h4 id="methods">
547 Методы
548</h4>
467 549
468| Метод | Описание |550| Метод | Описание |
469| :---------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |551| :---------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
483| `get_server_info()` | Получите информацию о сервере, включая ID сеанса и возможности |565| `get_server_info()` | Получите информацию о сервере, включая ID сеанса и возможности |
484| `disconnect()` | Отключитесь от Claude |566| `disconnect()` | Отключитесь от Claude |
485 567
486#### Поддержка менеджера контекста568<h4 id="context-manager-support">
569 Поддержка менеджера контекста
570</h4>
487 571
488Клиент можно использовать как асинхронный менеджер контекста для автоматического управления соединением:572Клиент можно использовать как асинхронный менеджер контекста для автоматического управления соединением:
489 573
496 580
497> **Важно:** При итерации по сообщениям избегайте использования `break` для раннего выхода, так как это может вызвать проблемы с очисткой asyncio. Вместо этого позвольте итерации завершиться естественным образом или используйте флаги для отслеживания, когда вы нашли то, что вам нужно.581> **Важно:** При итерации по сообщениям избегайте использования `break` для раннего выхода, так как это может вызвать проблемы с очисткой asyncio. Вместо этого позвольте итерации завершиться естественным образом или используйте флаги для отслеживания, когда вы нашли то, что вам нужно.
498 582
499#### Пример - Продолжение разговора583<h4 id="example-continuing-a-conversation">
584 Пример - Продолжение разговора
585</h4>
500 586
501```python theme={null}587```python theme={null}
502import asyncio588import asyncio
537asyncio.run(main())623asyncio.run(main())
538```624```
539 625
540#### Пример - Потоковый ввод с ClaudeSDKClient626<h4 id="example-streaming-input-with-claudesdkclient">
627 Пример - Потоковый ввод с ClaudeSDKClient
628</h4>
541 629
542```python theme={null}630```python theme={null}
543import asyncio631import asyncio
581asyncio.run(main())669asyncio.run(main())
582```670```
583 671
584#### Пример - Использование прерываний672<h4 id="example-using-interrupts">
673 Пример - Использование прерываний
674</h4>
585 675
586```python theme={null}676```python theme={null}
587import asyncio677import asyncio
624 **Поведение буфера после прерывания:** `interrupt()` отправляет сигнал остановки, но не очищает буфер сообщений. Сообщения, уже созданные прерванной задачей, включая ее `ResultMessage` (с `subtype="error_during_execution"`), остаются в потоке. Вы должны слить их с помощью `receive_response()` перед чтением ответа на новый запрос. Если вы отправите новый запрос сразу после `interrupt()` и вызовете `receive_response()` только один раз, вы получите сообщения прерванной задачи, а не ответ на новый запрос.714 **Поведение буфера после прерывания:** `interrupt()` отправляет сигнал остановки, но не очищает буфер сообщений. Сообщения, уже созданные прерванной задачей, включая ее `ResultMessage` (с `subtype="error_during_execution"`), остаются в потоке. Вы должны слить их с помощью `receive_response()` перед чтением ответа на новый запрос. Если вы отправите новый запрос сразу после `interrupt()` и вызовете `receive_response()` только один раз, вы получите сообщения прерванной задачи, а не ответ на новый запрос.
625</Note>715</Note>
626 716
627#### Пример - Расширенное управление разрешениями717<h4 id="example-advanced-permission-control">
718 Пример - Расширенное управление разрешениями
719</h4>
628 720
629```python theme={null}721```python theme={null}
630from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions722from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions
673asyncio.run(main())765asyncio.run(main())
674```766```
675 767
676## Типы768<h2 id="types">
769 Типы
770</h2>
677 771
678<Note>772<Note>
679 **`@dataclass` vs `TypedDict`:** Этот SDK использует два вида типов. Классы, украшенные `@dataclass` (такие как `ResultMessage`, `AgentDefinition`, `TextBlock`), являются экземплярами объектов во время выполнения и поддерживают доступ к атрибутам: `msg.result`. Классы, определенные с помощью `TypedDict` (такие как `ThinkingConfigEnabled`, `McpStdioServerConfig`, `SyncHookJSONOutput`), являются **простыми словарями во время выполнения** и требуют доступа к ключам: `config["budget_tokens"]`, а не `config.budget_tokens`. Синтаксис вызова `ClassName(field=value)` работает для обоих, но только dataclasses создают объекты с атрибутами.773 **`@dataclass` vs `TypedDict`:** Этот SDK использует два вида типов. Классы, украшенные `@dataclass` (такие как `ResultMessage`, `AgentDefinition`, `TextBlock`), являются экземплярами объектов во время выполнения и поддерживают доступ к атрибутам: `msg.result`. Классы, определенные с помощью `TypedDict` (такие как `ThinkingConfigEnabled`, `McpStdioServerConfig`, `SyncHookJSONOutput`), являются **простыми словарями во время выполнения** и требуют доступа к ключам: `config["budget_tokens"]`, а не `config.budget_tokens`. Синтаксис вызова `ClassName(field=value)` работает для обоих, но только dataclasses создают объекты с атрибутами.
680</Note>774</Note>
681 775
682### `SdkMcpTool`776<h3 id="sdkmcptool">
777 `SdkMcpTool`
778</h3>
683 779
684Определение для SDK MCP tool, созданного с помощью декоратора `@tool`.780Определение для SDK MCP tool, созданного с помощью декоратора `@tool`.
685 781
701| `handler` | `Callable[[T], Awaitable[dict[str, Any]]]` | Асинхронная функция, которая обрабатывает выполнение инструмента |797| `handler` | `Callable[[T], Awaitable[dict[str, Any]]]` | Асинхронная функция, которая обрабатывает выполнение инструмента |
702| `annotations` | `ToolAnnotations \| None` | Дополнительные аннотации MCP tool (например, `readOnlyHint`, `destructiveHint`, `openWorldHint`). Из `mcp.types` |798| `annotations` | `ToolAnnotations \| None` | Дополнительные аннотации MCP tool (например, `readOnlyHint`, `destructiveHint`, `openWorldHint`). Из `mcp.types` |
703 799
704### `Transport`800<h3 id="transport">
801 `Transport`
802</h3>
705 803
706Абстрактный базовый класс для пользовательских реализаций транспорта. Используйте это для связи с процессом Claude через пользовательский канал (например, удаленное соединение вместо локального подпроцесса).804Абстрактный базовый класс для пользовательских реализаций транспорта. Используйте это для связи с процессом Claude через пользовательский канал (например, удаленное соединение вместо локального подпроцесса).
707 805
746 844
747Импорт: `from claude_agent_sdk import Transport`845Импорт: `from claude_agent_sdk import Transport`
748 846
749### `ClaudeAgentOptions`847<h3 id="claudeagentoptions">
848 `ClaudeAgentOptions`
849</h3>
750 850
751Dataclass конфигурации для запросов Claude Code.851Dataclass конфигурации для запросов Claude Code.
752 852
837| `skills` | `list[str] \| Literal["all"] \| None` | `None` | Skills, доступные сеансу. Передайте `"all"` для включения каждого обнаруженного skill, или список имен skills. Когда установлено, SDK автоматически добавляет инструмент Skill в `allowed_tools`. Если вы также передаете `tools`, включите `"Skill"` в этот список. См. [Skills](/ru/agent-sdk/skills) |937| `skills` | `list[str] \| Literal["all"] \| None` | `None` | Skills, доступные сеансу. Передайте `"all"` для включения каждого обнаруженного skill, или список имен skills. Когда установлено, SDK автоматически добавляет инструмент Skill в `allowed_tools`. Если вы также передаете `tools`, включите `"Skill"` в этот список. См. [Skills](/ru/agent-sdk/skills) |
838| `max_thinking_tokens` | `int \| None` | `None` | *Устарело* - Максимальные токены для блоков мышления. Вместо этого используйте `thinking` |938| `max_thinking_tokens` | `int \| None` | `None` | *Устарело* - Максимальные токены для блоков мышления. Вместо этого используйте `thinking` |
839| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | Управляет поведением расширенного мышления. Имеет приоритет над `max_thinking_tokens` |939| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | Управляет поведением расширенного мышления. Имеет приоритет над `max_thinking_tokens` |
840| `effort` | [`EffortLevel`](#effortlevel) ` \| None` | `None` | Уровень усилий для глубины мышления |940| `effort` | [`EffortLevel`](#effortlevel) ` \| None` | `None` | Уровень усилий для глубины мышления. См. [adjust the effort level](/ru/model-config#adjust-effort-level) |
841| `session_store` | [`SessionStore`](/ru/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | Зеркалируйте стенограммы сеансов во внешний бэкэнд, чтобы любой хост мог их возобновить. См. [Persist sessions to external storage](/ru/agent-sdk/session-storage) |941| `session_store` | [`SessionStore`](/ru/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | Зеркалируйте стенограммы сеансов во внешний бэкэнд, чтобы любой хост мог их возобновить. См. [Persist sessions to external storage](/ru/agent-sdk/session-storage) |
842| `session_store_flush` | `Literal["batched", "eager"]` | `"batched"` | Когда сбрасывать записи зеркальной стенограммы в `session_store`. `"batched"` сбрасывает один раз за ход или когда буфер заполняется; `"eager"` запускает фоновый сброс после каждого кадра. Игнорируется, когда `session_store` равен `None` |942| `session_store_flush` | `Literal["batched", "eager"]` | `"batched"` | Когда сбрасывать записи зеркальной стенограммы в `session_store`. `"batched"` сбрасывает один раз за ход или когда буфер заполняется; `"eager"` запускает фоновый сброс после каждого кадра. Игнорируется, когда `session_store` равен `None` |
843 943
844#### Обработка медленных или зависших ответов API944<h4 id="handle-slow-or-stalled-api-responses">
945 Обработка медленных или зависших ответов API
946</h4>
845 947
846Подпроцесс CLI читает несколько переменных окружения, которые управляют тайм-аутами API и обнаружением зависания. Передайте их через `ClaudeAgentOptions.env`:948Подпроцесс CLI читает несколько переменных окружения, которые управляют тайм-аутами API и обнаружением зависания. Передайте их через `ClaudeAgentOptions.env`:
847 949
858* `API_TIMEOUT_MS`: тайм-аут для каждого запроса на клиенте Anthropic в миллисекундах. По умолчанию `600000`. Применяется к основному циклу и всем подагентам.960* `API_TIMEOUT_MS`: тайм-аут для каждого запроса на клиенте Anthropic в миллисекундах. По умолчанию `600000`. Применяется к основному циклу и всем подагентам.
859* `CLAUDE_CODE_MAX_RETRIES`: максимальное количество повторных попыток API. По умолчанию `10`. Каждая повторная попытка получает свое собственное окно `API_TIMEOUT_MS`, поэтому наихудшее время стены примерно `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` плюс отступ.961* `CLAUDE_CODE_MAX_RETRIES`: максимальное количество повторных попыток API. По умолчанию `10`. Каждая повторная попытка получает свое собственное окно `API_TIMEOUT_MS`, поэтому наихудшее время стены примерно `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` плюс отступ.
860* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: сторожевой таймер зависания для подагентов, запущенных с `run_in_background`. По умолчанию `600000`. Сбрасывается при каждом событии потока; при зависании он прерывает подагента, отмечает задачу как неудачную и выводит ошибку родителю с любым частичным результатом. Не применяется к синхронным подагентам.962* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: сторожевой таймер зависания для подагентов, запущенных с `run_in_background`. По умолчанию `600000`. Сбрасывается при каждом событии потока; при зависании он прерывает подагента, отмечает задачу как неудачную и выводит ошибку родителю с любым частичным результатом. Не применяется к синхронным подагентам.
861* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` с `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: прерывает запрос, когда заголовки прибыли, но тело ответа перестает потоковать. По умолчанию отключено. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` по умолчанию `300000` и зажимается до этого минимума. Прерванный запрос проходит через обычный путь повторной попытки.963* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` с `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: прерывает запрос, когда заголовки прибыли, но тело ответа перестает потоковать. Когда `CLAUDE_ENABLE_STREAM_WATCHDOG` не установлен, по умолчанию используется управление сервером на прямом API Anthropic и отключено на других поставщиках. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` по умолчанию `300000` и зажимается до этого минимума. Прерванный запрос проходит через обычный путь повторной попытки.
862 964
863### `OutputFormat`965<h3 id="outputformat">
966 `OutputFormat`
967</h3>
864 968
865Конфигурация для валидации структурированного вывода. Передайте это как `dict` в поле `output_format` на `ClaudeAgentOptions`:969Конфигурация для валидации структурированного вывода. Передайте это как `dict` в поле `output_format` на `ClaudeAgentOptions`:
866 970
877| `type` | Да | Должно быть `"json_schema"` для валидации JSON Schema |981| `type` | Да | Должно быть `"json_schema"` для валидации JSON Schema |
878| `schema` | Да | Определение JSON Schema для валидации вывода |982| `schema` | Да | Определение JSON Schema для валидации вывода |
879 983
880### `SystemPromptPreset`984<h3 id="systempromptpreset">
985 `SystemPromptPreset`
986</h3>
881 987
882Конфигурация для использования предустановленной системной подсказки Claude Code с дополнительными добавлениями.988Конфигурация для использования предустановленной системной подсказки Claude Code с дополнительными добавлениями.
883 989
896| `append` | Нет | Дополнительные инструкции для добавления к предустановленной системной подсказке |1002| `append` | Нет | Дополнительные инструкции для добавления к предустановленной системной подсказке |
897| `exclude_dynamic_sections` | Нет | Переместите контекст для каждого сеанса, такой как рабочий каталог, статус git и пути памяти, из системной подсказки в первое пользовательское сообщение. Улучшает повторное использование кэша подсказок между пользователями и машинами. См. [Modify system prompts](/ru/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |1003| `exclude_dynamic_sections` | Нет | Переместите контекст для каждого сеанса, такой как рабочий каталог, статус git и пути памяти, из системной подсказки в первое пользовательское сообщение. Улучшает повторное использование кэша подсказок между пользователями и машинами. См. [Modify system prompts](/ru/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |
898 1004
899### `SettingSource`1005<h3 id="settingsource">
1006 `SettingSource`
1007</h3>
900 1008
901Управляет тем, какие источники конфигурации на основе файловой системы загружает SDK.1009Управляет тем, какие источники конфигурации на основе файловой системы загружает SDK.
902 1010
910| `"project"` | Общие параметры проекта (контролируемые версией) | `.claude/settings.json` |1018| `"project"` | Общие параметры проекта (контролируемые версией) | `.claude/settings.json` |
911| `"local"` | Локальные параметры проекта (gitignored) | `.claude/settings.local.json` |1019| `"local"` | Локальные параметры проекта (gitignored) | `.claude/settings.local.json` |
912 1020
913#### Поведение по умолчанию1021<h4 id="default-behavior">
1022 Поведение по умолчанию
1023</h4>
914 1024
915Когда `setting_sources` опущено или `None`, `query()` загружает те же параметры файловой системы, что и Claude Code CLI: пользовательские, проектные и локальные. Управляемые параметры политики загружаются во всех случаях. См. [What settingSources does not control](/ru/agent-sdk/claude-code-features#what-settingsources-does-not-control) для входов, которые читаются независимо от этой опции, и как их отключить.1025Когда `setting_sources` опущено или `None`, `query()` загружает те же параметры файловой системы, что и Claude Code CLI: пользовательские, проектные и локальные. Управляемые параметры политики загружаются во всех случаях. См. [What settingSources does not control](/ru/agent-sdk/claude-code-features#what-settingsources-does-not-control) для входов, которые читаются независимо от этой опции, и как их отключить.
916 1026
917#### Почему использовать setting\_sources1027<h4 id="why-use-setting_sources">
1028 Почему использовать setting\_sources
1029</h4>
918 1030
919**Отключить параметры файловой системы:**1031**Отключить параметры файловой системы:**
920 1032
1011 print(message)1123 print(message)
1012```1124```
1013 1125
1014#### Приоритет параметров1126<h4 id="settings-precedence">
1127 Приоритет параметров
1128</h4>
1015 1129
1016Когда загружаются несколько источников, параметры объединяются с этим приоритетом (от наивысшего к наименьшему):1130Когда загружаются несколько источников, параметры объединяются с этим приоритетом (от наивысшего к наименьшему):
1017 1131
1021 1135
1022Программные опции, такие как `agents` и `allowed_tools`, переопределяют параметры пользователя, проекта и локальной файловой системы. Управляемые параметры политики имеют приоритет над программными опциями.1136Программные опции, такие как `agents` и `allowed_tools`, переопределяют параметры пользователя, проекта и локальной файловой системы. Управляемые параметры политики имеют приоритет над программными опциями.
1023 1137
1024### `AgentDefinition`1138<h3 id="agentdefinition">
1139 `AgentDefinition`
1140</h3>
1025 1141
1026Конфигурация для подагента, определенного программно.1142Конфигурация для подагента, определенного программно.
1027 1143
1044```1160```
1045 1161
1046| Поле | Обязательно | Описание |1162| Поле | Обязательно | Описание |
1047| :---------------- | :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1163| :---------------- | :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1048| `description` | Да | Описание на естественном языке, когда использовать этого агента |1164| `description` | Да | Описание на естественном языке, когда использовать этого агента |
1049| `prompt` | Да | Системная подсказка агента |1165| `prompt` | Да | Системная подсказка агента |
1050| `tools` | Нет | Массив разрешенных имен инструментов. Если опущено, наследует все инструменты |1166| `tools` | Нет | Массив разрешенных имен инструментов. Если опущено, наследует все инструменты |
1051| `disallowedTools` | Нет | Массив имен инструментов для удаления из набора инструментов агента |1167| `disallowedTools` | Нет | Массив имен инструментов для удаления из набора инструментов агента. Также принимаются шаблоны уровня MCP server: `mcp__server` или `mcp__server__*` удаляет каждый инструмент с этого сервера, и `mcp__*` удаляет каждый MCP tool с любого сервера |
1052| `model` | Нет | Переопределение модели для этого агента. Принимает псевдоним, такой как `"sonnet"`, `"opus"`, `"haiku"` или `"inherit"`, или полный ID модели. Если опущено, использует основную модель |1168| `model` | Нет | Переопределение модели для этого агента. Принимает псевдоним, такой как `"sonnet"`, `"opus"`, `"haiku"` или `"inherit"`, или полный ID модели. Если опущено, использует основную модель |
1053| `skills` | Нет | Список имен skills для предварительной загрузки в контекст агента при запуске. Неуказанные skills остаются вызываемыми через инструмент Skill |1169| `skills` | Нет | Список имен skills для предварительной загрузки в контекст агента при запуске. Неуказанные skills остаются вызываемыми через инструмент Skill |
1054| `memory` | Нет | Источник памяти для этого агента: `"user"`, `"project"` или `"local"` |1170| `memory` | Нет | Источник памяти для этого агента: `"user"`, `"project"` или `"local"` |
1063 Имена полей `AgentDefinition` используют camelCase, такие как `disallowedTools`, `permissionMode` и `maxTurns`. Эти имена напрямую соответствуют формату проводки, общему с TypeScript SDK. Это отличается от `ClaudeAgentOptions`, который использует Python snake\_case для эквивалентных полей верхнего уровня, таких как `disallowed_tools` и `permission_mode`. Поскольку `AgentDefinition` является dataclass, передача ключевого слова snake\_case вызывает `TypeError` во время конструирования.1179 Имена полей `AgentDefinition` используют camelCase, такие как `disallowedTools`, `permissionMode` и `maxTurns`. Эти имена напрямую соответствуют формату проводки, общему с TypeScript SDK. Это отличается от `ClaudeAgentOptions`, который использует Python snake\_case для эквивалентных полей верхнего уровня, таких как `disallowed_tools` и `permission_mode`. Поскольку `AgentDefinition` является dataclass, передача ключевого слова snake\_case вызывает `TypeError` во время конструирования.
1064</Note>1180</Note>
1065 1181
1066### `PermissionMode`1182<h3 id="permissionmode">
1183 `PermissionMode`
1184</h3>
1067 1185
1068Режимы разрешений для управления выполнением инструментов.1186Режимы разрешений для управления выполнением инструментов.
1069 1187
1071PermissionMode = Literal[1189PermissionMode = Literal[
1072 "default", # Standard permission behavior1190 "default", # Standard permission behavior
1073 "acceptEdits", # Auto-accept file edits1191 "acceptEdits", # Auto-accept file edits
1074 "plan", # Planning mode - read-only tools only1192 "plan", # Planning mode - explore without editing
1075 "dontAsk", # Deny anything not pre-approved instead of prompting1193 "dontAsk", # Deny anything not pre-approved instead of prompting
1076 "bypassPermissions", # Bypass all permission checks (use with caution)1194 "bypassPermissions", # Bypass permission checks; explicit ask rules still prompt (use with caution)
1077]1195]
1078```1196```
1079 1197
1080### `EffortLevel`1198<h3 id="effortlevel">
1199 `EffortLevel`
1200</h3>
1081 1201
1082Уровни усилий для руководства глубиной мышления.1202Уровни усилий для руководства глубиной мышления.
1083 1203
1086 "low", # Minimal thinking, fastest responses1206 "low", # Minimal thinking, fastest responses
1087 "medium", # Moderate thinking1207 "medium", # Moderate thinking
1088 "high", # Deep reasoning1208 "high", # Deep reasoning
1089 "xhigh", # Extended reasoning (Opus 4.7 only; falls back to "high" on other models)1209 "xhigh", # Extended reasoning (Opus 4.8 and Opus 4.7; falls back to "high" on other models)
1090 "max", # Maximum effort1210 "max", # Maximum effort
1091]1211]
1092```1212```
1093 1213
1094### `CanUseTool`1214<h3 id="canusetool">
1215 `CanUseTool`
1216</h3>
1095 1217
1096Псевдоним типа для функций обратного вызова разрешения инструмента.1218Псевдоним типа для функций обратного вызова разрешения инструмента.
1097 1219
1109 1231
1110Возвращает `PermissionResult` (либо `PermissionResultAllow`, либо `PermissionResultDeny`).1232Возвращает `PermissionResult` (либо `PermissionResultAllow`, либо `PermissionResultDeny`).
1111 1233
1112### `ToolPermissionContext`1234<h3 id="toolpermissioncontext">
1235 `ToolPermissionContext`
1236</h3>
1113 1237
1114Информация контекста, передаваемая в обратные вызовы разрешения инструмента.1238Информация контекста, передаваемая в обратные вызовы разрешения инструмента.
1115 1239
1135| `display_name` | `str \| None` | Короткая именная фраза для действия инструмента, такая как `Read file`, подходящая для меток кнопок |1259| `display_name` | `str \| None` | Короткая именная фраза для действия инструмента, такая как `Read file`, подходящая для меток кнопок |
1136| `description` | `str \| None` | Понятный подзаголовок для пользовательского интерфейса разрешений |1260| `description` | `str \| None` | Понятный подзаголовок для пользовательского интерфейса разрешений |
1137 1261
1138### `PermissionResult`1262<h3 id="permissionresult">
1263 `PermissionResult`
1264</h3>
1139 1265
1140Тип объединения для результатов обратного вызова разрешения.1266Тип объединения для результатов обратного вызова разрешения.
1141 1267
1143PermissionResult = PermissionResultAllow | PermissionResultDeny1269PermissionResult = PermissionResultAllow | PermissionResultDeny
1144```1270```
1145 1271
1146### `PermissionResultAllow`1272<h3 id="permissionresultallow">
1273 `PermissionResultAllow`
1274</h3>
1147 1275
1148Результат, указывающий, что вызов инструмента должен быть разрешен.1276Результат, указывающий, что вызов инструмента должен быть разрешен.
1149 1277
1161| `updated_input` | `dict[str, Any] \| None` | `None` | Измененный ввод для использования вместо оригинала |1289| `updated_input` | `dict[str, Any] \| None` | `None` | Измененный ввод для использования вместо оригинала |
1162| `updated_permissions` | `list[PermissionUpdate] \| None` | `None` | Обновления разрешений для применения |1290| `updated_permissions` | `list[PermissionUpdate] \| None` | `None` | Обновления разрешений для применения |
1163 1291
1164### `PermissionResultDeny`1292<h3 id="permissionresultdeny">
1293 `PermissionResultDeny`
1294</h3>
1165 1295
1166Результат, указывающий, что вызов инструмента должен быть отклонен.1296Результат, указывающий, что вызов инструмента должен быть отклонен.
1167 1297
1179| `message` | `str` | `""` | Сообщение, объясняющее, почему инструмент был отклонен |1309| `message` | `str` | `""` | Сообщение, объясняющее, почему инструмент был отклонен |
1180| `interrupt` | `bool` | `False` | Следует ли прерывать текущее выполнение |1310| `interrupt` | `bool` | `False` | Следует ли прерывать текущее выполнение |
1181 1311
1182### `PermissionUpdate`1312<h3 id="permissionupdate">
1313 `PermissionUpdate`
1314</h3>
1183 1315
1184Конфигурация для программного обновления разрешений.1316Конфигурация для программного обновления разрешений.
1185 1317
1212| `directories` | `list[str] \| None` | Каталоги для операций добавления/удаления каталога |1344| `directories` | `list[str] \| None` | Каталоги для операций добавления/удаления каталога |
1213| `destination` | `Literal[...] \| None` | Где применить обновление разрешений |1345| `destination` | `Literal[...] \| None` | Где применить обновление разрешений |
1214 1346
1215### `PermissionRuleValue`1347<h3 id="permissionrulevalue">
1348 `PermissionRuleValue`
1349</h3>
1216 1350
1217Правило для добавления, замены или удаления в обновлении разрешений.1351Правило для добавления, замены или удаления в обновлении разрешений.
1218 1352
1223 rule_content: str | None = None1357 rule_content: str | None = None
1224```1358```
1225 1359
1226### `ToolsPreset`1360<h3 id="toolspreset">
1361 `ToolsPreset`
1362</h3>
1227 1363
1228Конфигурация предустановленных инструментов для использования набора инструментов Claude Code по умолчанию.1364Конфигурация предустановленных инструментов для использования набора инструментов Claude Code по умолчанию.
1229 1365
1233 preset: Literal["claude_code"]1369 preset: Literal["claude_code"]
1234```1370```
1235 1371
1236### `ThinkingConfig`1372<h3 id="thinkingconfig">
1373 `ThinkingConfig`
1374</h3>
1237 1375
1238Управляет поведением расширенного мышления. Объединение трех конфигураций:1376Управляет поведением расширенного мышления. Объединение трех конфигураций:
1239 1377
1281# config.budget_tokens would raise AttributeError1419# config.budget_tokens would raise AttributeError
1282```1420```
1283 1421
1284### `SdkBeta`1422<h3 id="sdkbeta">
1423 `SdkBeta`
1424</h3>
1285 1425
1286Тип Literal для функций бета-версии SDK.1426Тип Literal для функций бета-версии SDK.
1287 1427
1292Используйте с полем `betas` в `ClaudeAgentOptions` для включения функций бета-версии.1432Используйте с полем `betas` в `ClaudeAgentOptions` для включения функций бета-версии.
1293 1433
1294<Warning>1434<Warning>
1295 Бета-версия `context-1m-2025-08-07` снята с производства по состоянию на 30 апреля 2026 года. Передача этого заголовка с Claude Sonnet 4.5 или Sonnet 4 не имеет эффекта, и запросы, превышающие стандартное окно контекста 200k-токенов, возвращают ошибку. Чтобы использовать окно контекста 1M-токенов, перейдите на [Claude Sonnet 4.6, Claude Opus 4.6 или Claude Opus 4.7](https://platform.claude.com/docs/en/about-claude/models/overview), которые включают контекст 1M по стандартной цене без требования заголовка бета-версии.1435 Бета-версия `context-1m-2025-08-07` снята с производства по состоянию на 30 апреля 2026 года. Передача этого заголовка с Claude Sonnet 4.5 или Sonnet 4 не имеет эффекта, и запросы, превышающие стандартное окно контекста 200k-токенов, возвращают ошибку. Чтобы использовать окно контекста 1M-токенов, перейдите на [Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7 или Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview), которые включают контекст 1M по стандартной цене без требования заголовка бета-версии.
1296</Warning>1436</Warning>
1297 1437
1298### `McpSdkServerConfig`1438<h3 id="mcpsdkserverconfig">
1439 `McpSdkServerConfig`
1440</h3>
1299 1441
1300Конфигурация для SDK MCP servers, созданных с помощью `create_sdk_mcp_server()`.1442Конфигурация для SDK MCP servers, созданных с помощью `create_sdk_mcp_server()`.
1301 1443
1306 instance: Any # MCP Server instance1448 instance: Any # MCP Server instance
1307```1449```
1308 1450
1309### `McpServerConfig`1451<h3 id="mcpserverconfig">
1452 `McpServerConfig`
1453</h3>
1310 1454
1311Тип объединения для конфигураций MCP server.1455Тип объединения для конфигураций MCP server.
1312 1456
1316)1460)
1317```1461```
1318 1462
1319#### `McpStdioServerConfig`1463<h4 id="mcpstdioserverconfig">
1464 `McpStdioServerConfig`
1465</h4>
1320 1466
1321```python theme={null}1467```python theme={null}
1322class McpStdioServerConfig(TypedDict):1468class McpStdioServerConfig(TypedDict):
1326 env: NotRequired[dict[str, str]]1472 env: NotRequired[dict[str, str]]
1327```1473```
1328 1474
1329#### `McpSSEServerConfig`1475<h4 id="mcpsseserverconfig">
1476 `McpSSEServerConfig`
1477</h4>
1330 1478
1331```python theme={null}1479```python theme={null}
1332class McpSSEServerConfig(TypedDict):1480class McpSSEServerConfig(TypedDict):
1335 headers: NotRequired[dict[str, str]]1483 headers: NotRequired[dict[str, str]]
1336```1484```
1337 1485
1338#### `McpHttpServerConfig`1486<h4 id="mcphttpserverconfig">
1487 `McpHttpServerConfig`
1488</h4>
1339 1489
1340```python theme={null}1490```python theme={null}
1341class McpHttpServerConfig(TypedDict):1491class McpHttpServerConfig(TypedDict):
1344 headers: NotRequired[dict[str, str]]1494 headers: NotRequired[dict[str, str]]
1345```1495```
1346 1496
1347### `McpServerStatusConfig`1497<h3 id="mcpserverstatusconfig">
1498 `McpServerStatusConfig`
1499</h3>
1348 1500
1349Конфигурация MCP server, как сообщается [`get_mcp_status()`](#methods). Это объединение всех вариантов транспорта [`McpServerConfig`](#mcpserverconfig) плюс вариант `claudeai-proxy` только для вывода для servers, проксированных через claude.ai.1501Конфигурация MCP server, как сообщается [`get_mcp_status()`](#methods). Это объединение всех вариантов транспорта [`McpServerConfig`](#mcpserverconfig) плюс вариант `claudeai-proxy` только для вывода для servers, проксированных через claude.ai.
1350 1502
1360 1512
1361`McpSdkServerConfigStatus` - это сериализуемая форма [`McpSdkServerConfig`](#mcpsdkserverconfig) с только полями `type` (`"sdk"`) и `name` (`str`); встроенный `instance` опущен. `McpClaudeAIProxyServerConfig` имеет поля `type` (`"claudeai-proxy"`), `url` (`str`) и `id` (`str`).1513`McpSdkServerConfigStatus` - это сериализуемая форма [`McpSdkServerConfig`](#mcpsdkserverconfig) с только полями `type` (`"sdk"`) и `name` (`str`); встроенный `instance` опущен. `McpClaudeAIProxyServerConfig` имеет поля `type` (`"claudeai-proxy"`), `url` (`str`) и `id` (`str`).
1362 1514
1363### `McpStatusResponse`1515<h3 id="mcpstatusresponse">
1516 `McpStatusResponse`
1517</h3>
1364 1518
1365Ответ от [`ClaudeSDKClient.get_mcp_status()`](#methods). Оборачивает список статусов сервера под ключом `mcpServers`.1519Ответ от [`ClaudeSDKClient.get_mcp_status()`](#methods). Оборачивает список статусов сервера под ключом `mcpServers`.
1366 1520
1369 mcpServers: list[McpServerStatus]1523 mcpServers: list[McpServerStatus]
1370```1524```
1371 1525
1372### `McpServerStatus`1526<h3 id="mcpserverstatus">
1527 `McpServerStatus`
1528</h3>
1373 1529
1374Статус подключенного MCP server, содержащийся в [`McpStatusResponse`](#mcpstatusresponse).1530Статус подключенного MCP server, содержащийся в [`McpStatusResponse`](#mcpstatusresponse).
1375 1531
1394| `scope` | `str` (опционально) | Область конфигурации |1550| `scope` | `str` (опционально) | Область конфигурации |
1395| `tools` | `list` (опционально) | Инструменты, предоставляемые этим сервером, каждый с полями `name`, `description` и `annotations` |1551| `tools` | `list` (опционально) | Инструменты, предоставляемые этим сервером, каждый с полями `name`, `description` и `annotations` |
1396 1552
1397### `SdkPluginConfig`1553<h3 id="sdkpluginconfig">
1554 `SdkPluginConfig`
1555</h3>
1398 1556
1399Конфигурация для загрузки plugins в SDK.1557Конфигурация для загрузки plugins в SDK.
1400 1558
1420 1578
1421Для полной информации о создании и использовании plugins см. [Plugins](/ru/agent-sdk/plugins).1579Для полной информации о создании и использовании plugins см. [Plugins](/ru/agent-sdk/plugins).
1422 1580
1423## Типы сообщений1581<h2 id="message-types">
1582 Типы сообщений
1583</h2>
1424 1584
1425### `Message`1585<h3 id="message">
1586 `Message`
1587</h3>
1426 1588
1427Тип объединения всех возможных сообщений.1589Тип объединения всех возможных сообщений.
1428 1590
1437)1599)
1438```1600```
1439 1601
1440### `UserMessage`1602<h3 id="usermessage">
1603 `UserMessage`
1604</h3>
1441 1605
1442Сообщение пользовательского ввода.1606Сообщение пользовательского ввода.
1443 1607
1457| `parent_tool_use_id` | `str \| None` | ID использования инструмента, если это сообщение является ответом результата инструмента |1621| `parent_tool_use_id` | `str \| None` | ID использования инструмента, если это сообщение является ответом результата инструмента |
1458| `tool_use_result` | `dict[str, Any] \| None` | Данные результата инструмента, если применимо |1622| `tool_use_result` | `dict[str, Any] \| None` | Данные результата инструмента, если применимо |
1459 1623
1460### `AssistantMessage`1624<h3 id="assistantmessage">
1625 `AssistantMessage`
1626</h3>
1461 1627
1462Сообщение ответа помощника с блоками содержимого.1628Сообщение ответа помощника с блоками содержимого.
1463 1629
1481| `usage` | `dict[str, Any] \| None` | Использование токенов для каждого сообщения (те же ключи, что и [`ResultMessage.usage`](#resultmessage)) |1647| `usage` | `dict[str, Any] \| None` | Использование токенов для каждого сообщения (те же ключи, что и [`ResultMessage.usage`](#resultmessage)) |
1482| `message_id` | `str \| None` | ID сообщения API. Несколько сообщений из одного хода имеют одинаковый ID |1648| `message_id` | `str \| None` | ID сообщения API. Несколько сообщений из одного хода имеют одинаковый ID |
1483 1649
1484### `AssistantMessageError`1650<h3 id="assistantmessageerror">
1651 `AssistantMessageError`
1652</h3>
1485 1653
1486Возможные типы ошибок для сообщений помощника.1654Возможные типы ошибок для сообщений помощника.
1487 1655
1497]1665]
1498```1666```
1499 1667
1500### `SystemMessage`1668<h3 id="systemmessage">
1669 `SystemMessage`
1670</h3>
1501 1671
1502Системное сообщение с метаданными.1672Системное сообщение с метаданными.
1503 1673
1508 data: dict[str, Any]1678 data: dict[str, Any]
1509```1679```
1510 1680
1511### `ResultMessage`1681<h3 id="resultmessage">
1682 `ResultMessage`
1683</h3>
1512 1684
1513Финальное сообщение результата с информацией о стоимости и использовании.1685Финальное сообщение результата с информацией о стоимости и использовании.
1514 1686
1534 uuid: str | None = None1706 uuid: str | None = None
1535```1707```
1536 1708
1709Поле `subtype` определяет, какие другие поля заполнены. Это одно из `"success"`, `"error_during_execution"`, `"error_max_turns"`, `"error_max_budget_usd"` или `"error_max_structured_output_retries"`. Dataclass Python объединяет все варианты в одну форму, поэтому поля, которые не применяются к возвращаемому подтипу, имеют значение `None`.
1710
1711Несколько полей содержат диагностические детали, когда разговор заканчивается с ошибкой:
1712
1713* `is_error`: `True`, когда разговор закончился в состоянии ошибки. Всегда `True` на подтипах `error_*`. На `subtype="success"` это `True`, когда финальный запрос модели не удался, что означает, что цикл агента завершился, но последний вызов API вернул ошибку.
1714* `api_error_status`: код состояния HTTP завершающей ошибки API. `None`, когда ход закончился без ошибки. Заполняется только на `subtype="success"`.
1715* `result`: текст финального сообщения помощника на `subtype="success"` или `None` на подтипах `error_*`. Когда `subtype="success"` и `is_error=True`, это содержит строку ошибки API, если она доступна, но может быть пустой, поэтому проверьте `api_error_status` и предыдущее содержимое `AssistantMessage` для деталей.
1716* `errors`: строки ошибок уровня цикла, такие как сообщение о максимальных ходах. Заполняется только на подтипах `error_*`.
1717
1537Словарь `usage` содержит следующие ключи, если они присутствуют:1718Словарь `usage` содержит следующие ключи, если они присутствуют:
1538 1719
1539| Ключ | Тип | Описание |1720| Ключ | Тип | Описание |
1556| `contextWindow` | `int` | Размер окна контекста для этой модели. |1737| `contextWindow` | `int` | Размер окна контекста для этой модели. |
1557| `maxOutputTokens` | `int` | Максимальный лимит выходных токенов для этой модели. |1738| `maxOutputTokens` | `int` | Максимальный лимит выходных токенов для этой модели. |
1558 1739
1559### `StreamEvent`1740<h3 id="streamevent">
1741 `StreamEvent`
1742</h3>
1560 1743
1561Событие потока для частичных обновлений сообщений во время потоковой передачи. Получается только когда `include_partial_messages=True` в `ClaudeAgentOptions`. Импортируйте через `from claude_agent_sdk.types import StreamEvent`.1744Событие потока для частичных обновлений сообщений во время потоковой передачи. Получается только когда `include_partial_messages=True` в `ClaudeAgentOptions`. Импортируйте через `from claude_agent_sdk.types import StreamEvent`.
1562 1745
1576| `event` | `dict[str, Any]` | Необработанные данные события потока Claude API |1759| `event` | `dict[str, Any]` | Необработанные данные события потока Claude API |
1577| `parent_tool_use_id` | `str \| None` | ID использования родительского инструмента, если это событие из подагента |1760| `parent_tool_use_id` | `str \| None` | ID использования родительского инструмента, если это событие из подагента |
1578 1761
1579### `RateLimitEvent`1762<h3 id="ratelimitevent">
1763 `RateLimitEvent`
1764</h3>
1580 1765
1581Выдается при изменении статуса ограничения скорости (например, с `"allowed"` на `"allowed_warning"`). Используйте это для предупреждения пользователей перед достижением жесткого лимита или для отката, когда статус `"rejected"`.1766Выдается при изменении статуса ограничения скорости (например, с `"allowed"` на `"allowed_warning"`). Используйте это для предупреждения пользователей перед достижением жесткого лимита или для отката, когда статус `"rejected"`.
1582 1767
1594| `uuid` | `str` | Уникальный идентификатор события |1779| `uuid` | `str` | Уникальный идентификатор события |
1595| `session_id` | `str` | Идентификатор сеанса |1780| `session_id` | `str` | Идентификатор сеанса |
1596 1781
1597### `RateLimitInfo`1782<h3 id="ratelimitinfo">
1783 `RateLimitInfo`
1784</h3>
1598 1785
1599Состояние ограничения скорости, переносимое [`RateLimitEvent`](#ratelimitevent).1786Состояние ограничения скорости, переносимое [`RateLimitEvent`](#ratelimitevent).
1600 1787
1628| `overage_disabled_reason` | `str \| None` | Почему переплата недоступна, если статус `"rejected"` |1815| `overage_disabled_reason` | `str \| None` | Почему переплата недоступна, если статус `"rejected"` |
1629| `raw` | `dict[str, Any]` | Полный необработанный словарь из CLI, включая поля, не смоделированные выше |1816| `raw` | `dict[str, Any]` | Полный необработанный словарь из CLI, включая поля, не смоделированные выше |
1630 1817
1631### `TaskStartedMessage`1818<h3 id="taskstartedmessage">
1819 `TaskStartedMessage`
1820</h3>
1632 1821
1633Выдается при запуске фоновой задачи. Фоновая задача - это все, что отслеживается вне основного хода: фоновая команда Bash, наблюдение Monitor, подагент, порожденный через инструмент Agent, или удаленный агент. Поле `task_type` говорит вам, какой. Это именование не связано с переименованием инструмента `Task` на `Agent`.1822Выдается при запуске фоновой задачи. Фоновая задача - это все, что отслеживается вне основного хода: фоновая команда Bash, наблюдение Monitor, подагент, порожденный через инструмент Agent, или удаленный агент. Поле `task_type` говорит вам, какой. Это именование не связано с переименованием инструмента `Task` на `Agent`.
1634 1823
1652| `tool_use_id` | `str \| None` | Связанный ID использования инструмента |1841| `tool_use_id` | `str \| None` | Связанный ID использования инструмента |
1653| `task_type` | `str \| None` | Какой вид фоновой задачи: `"local_bash"` для фонового Bash и наблюдений Monitor, `"local_agent"` или `"remote_agent"` |1842| `task_type` | `str \| None` | Какой вид фоновой задачи: `"local_bash"` для фонового Bash и наблюдений Monitor, `"local_agent"` или `"remote_agent"` |
1654 1843
1655### `TaskUsage`1844<h3 id="taskusage">
1845 `TaskUsage`
1846</h3>
1656 1847
1657Данные токенов и времени для фоновой задачи.1848Данные токенов и времени для фоновой задачи.
1658 1849
1663 duration_ms: int1854 duration_ms: int
1664```1855```
1665 1856
1666### `TaskProgressMessage`1857<h3 id="taskprogressmessage">
1858 `TaskProgressMessage`
1859</h3>
1667 1860
1668Выдается периодически с обновлениями прогресса для выполняющейся фоновой задачи.1861Выдается периодически с обновлениями прогресса для выполняющейся фоновой задачи.
1669 1862
1689| `tool_use_id` | `str \| None` | Связанный ID использования инструмента |1882| `tool_use_id` | `str \| None` | Связанный ID использования инструмента |
1690| `last_tool_name` | `str \| None` | Имя последнего инструмента, который использовала задача |1883| `last_tool_name` | `str \| None` | Имя последнего инструмента, который использовала задача |
1691 1884
1692### `TaskNotificationMessage`1885<h3 id="tasknotificationmessage">
1886 `TaskNotificationMessage`
1887</h3>
1693 1888
1694Выдается при завершении, сбое или остановке фоновой задачи. Фоновые задачи включают команды Bash `run_in_background`, наблюдения Monitor и фоновые подагенты.1889Выдается при завершении, сбое или остановке фоновой задачи. Фоновые задачи включают команды Bash `run_in_background`, наблюдения Monitor и фоновые подагенты.
1695 1890
1717| `tool_use_id` | `str \| None` | Связанный ID использования инструмента |1912| `tool_use_id` | `str \| None` | Связанный ID использования инструмента |
1718| `usage` | `TaskUsage \| None` | Финальное использование токенов для задачи |1913| `usage` | `TaskUsage \| None` | Финальное использование токенов для задачи |
1719 1914
1720## Типы блоков содержимого1915<h2 id="content-block-types">
1916 Типы блоков содержимого
1917</h2>
1721 1918
1722### `ContentBlock`1919<h3 id="contentblock">
1920 `ContentBlock`
1921</h3>
1723 1922
1724Тип объединения всех блоков содержимого.1923Тип объединения всех блоков содержимого.
1725 1924
1727ContentBlock = TextBlock | ThinkingBlock | ToolUseBlock | ToolResultBlock1926ContentBlock = TextBlock | ThinkingBlock | ToolUseBlock | ToolResultBlock
1728```1927```
1729 1928
1730### `TextBlock`1929<h3 id="textblock">
1930 `TextBlock`
1931</h3>
1731 1932
1732Блок содержимого текста.1933Блок содержимого текста.
1733 1934
1737 text: str1938 text: str
1738```1939```
1739 1940
1740### `ThinkingBlock`1941<h3 id="thinkingblock">
1942 `ThinkingBlock`
1943</h3>
1741 1944
1742Блок содержимого мышления (для моделей с возможностью мышления).1945Блок содержимого мышления (для моделей с возможностью мышления).
1743 1946
1748 signature: str1951 signature: str
1749```1952```
1750 1953
1751### `ToolUseBlock`1954<h3 id="tooluseblock">
1955 `ToolUseBlock`
1956</h3>
1752 1957
1753Блок запроса использования инструмента.1958Блок запроса использования инструмента.
1754 1959
1760 input: dict[str, Any]1965 input: dict[str, Any]
1761```1966```
1762 1967
1763### `ToolResultBlock`1968<h3 id="toolresultblock">
1969 `ToolResultBlock`
1970</h3>
1764 1971
1765Блок результата выполнения инструмента.1972Блок результата выполнения инструмента.
1766 1973
1772 is_error: bool | None = None1979 is_error: bool | None = None
1773```1980```
1774 1981
1775## Типы ошибок1982<h2 id="error-types">
1983 Типы ошибок
1984</h2>
1776 1985
1777### `ClaudeSDKError`1986<h3 id="claudesdkerror">
1987 `ClaudeSDKError`
1988</h3>
1778 1989
1779Базовый класс исключения для всех ошибок SDK.1990Базовый класс исключения для всех ошибок SDK.
1780 1991
1783 """Base error for Claude SDK."""1994 """Base error for Claude SDK."""
1784```1995```
1785 1996
1786### `CLINotFoundError`1997<h3 id="clinotfounderror">
1998 `CLINotFoundError`
1999</h3>
1787 2000
1788Вызывается, когда Claude Code CLI не установлен или не найден.2001Вызывается, когда Claude Code CLI не установлен или не найден.
1789 2002
1799 """2012 """
1800```2013```
1801 2014
1802### `CLIConnectionError`2015<h3 id="cliconnectionerror">
2016 `CLIConnectionError`
2017</h3>
1803 2018
1804Вызывается, когда соединение с Claude Code не удается.2019Вызывается, когда соединение с Claude Code не удается.
1805 2020
1808 """Failed to connect to Claude Code."""2023 """Failed to connect to Claude Code."""
1809```2024```
1810 2025
1811### `ProcessError`2026<h3 id="processerror">
2027 `ProcessError`
2028</h3>
1812 2029
1813Вызывается, когда процесс Claude Code не работает.2030Вызывается, когда процесс Claude Code не работает.
1814 2031
1821 self.stderr = stderr2038 self.stderr = stderr
1822```2039```
1823 2040
1824### `CLIJSONDecodeError`2041<h3 id="clijsondecodeerror">
2042 `CLIJSONDecodeError`
2043</h3>
1825 2044
1826Вызывается, когда разбор JSON не удается.2045Вызывается, когда разбор JSON не удается.
1827 2046
1837 self.original_error = original_error2056 self.original_error = original_error
1838```2057```
1839 2058
1840## Типы hooks2059<h2 id="hook-types">
2060 Типы hooks
2061</h2>
1841 2062
1842Для полного руководства по использованию hooks с примерами и общими шаблонами см. [Hooks guide](/ru/agent-sdk/hooks).2063Для полного руководства по использованию hooks с примерами и общими шаблонами см. [Hooks guide](/ru/agent-sdk/hooks).
1843 2064
1844### `HookEvent`2065<h3 id="hookevent">
2066 `HookEvent`
2067</h3>
1845 2068
1846Поддерживаемые типы событий hooks.2069Поддерживаемые типы событий hooks.
1847 2070
1864 TypeScript SDK поддерживает дополнительные события hooks, которые еще недоступны в Python: `SessionStart`, `SessionEnd`, `Setup`, `TeammateIdle`, `TaskCompleted`, `ConfigChange`, `WorktreeCreate`, `WorktreeRemove`, `PostToolBatch` и `MessageDisplay`.2087 TypeScript SDK поддерживает дополнительные события hooks, которые еще недоступны в Python: `SessionStart`, `SessionEnd`, `Setup`, `TeammateIdle`, `TaskCompleted`, `ConfigChange`, `WorktreeCreate`, `WorktreeRemove`, `PostToolBatch` и `MessageDisplay`.
1865</Note>2088</Note>
1866 2089
1867### `HookCallback`2090<h3 id="hookcallback">
2091 `HookCallback`
2092</h3>
1868 2093
1869Определение типа для функций обратного вызова hooks.2094Определение типа для функций обратного вызова hooks.
1870 2095
1884* `systemMessage`: Предупреждающее сообщение, показываемое пользователю2109* `systemMessage`: Предупреждающее сообщение, показываемое пользователю
1885* `hookSpecificOutput`: Вывод, специфичный для hooks2110* `hookSpecificOutput`: Вывод, специфичный для hooks
1886 2111
1887### `HookContext`2112<h3 id="hookcontext">
2113 `HookContext`
2114</h3>
1888 2115
1889Информация контекста, передаваемая в обратные вызовы hooks.2116Информация контекста, передаваемая в обратные вызовы hooks.
1890 2117
1893 signal: Any | None # Future: abort signal support2120 signal: Any | None # Future: abort signal support
1894```2121```
1895 2122
1896### `HookMatcher`2123<h3 id="hookmatcher">
2124 `HookMatcher`
2125</h3>
1897 2126
1898Конфигурация для сопоставления hooks с определенными событиями или инструментами.2127Конфигурация для сопоставления hooks с определенными событиями или инструментами.
1899 2128
1911 )2140 )
1912```2141```
1913 2142
1914### `HookInput`2143<h3 id="hookinput">
2144 `HookInput`
2145</h3>
1915 2146
1916Тип объединения всех типов ввода hooks. Фактический тип зависит от поля `hook_event_name`.2147Тип объединения всех типов ввода hooks. Фактический тип зависит от поля `hook_event_name`.
1917 2148
1930)2161)
1931```2162```
1932 2163
1933### `BaseHookInput`2164<h3 id="basehookinput">
2165 `BaseHookInput`
2166</h3>
1934 2167
1935Базовые поля, присутствующие во всех типах ввода hooks.2168Базовые поля, присутствующие во всех типах ввода hooks.
1936 2169
1949| `cwd` | `str` | Текущий рабочий каталог |2182| `cwd` | `str` | Текущий рабочий каталог |
1950| `permission_mode` | `str` (опционально) | Текущий режим разрешений |2183| `permission_mode` | `str` (опционально) | Текущий режим разрешений |
1951 2184
1952### `PreToolUseHookInput`2185<h3 id="pretoolusehookinput">
2186 `PreToolUseHookInput`
2187</h3>
1953 2188
1954Входные данные для событий hooks `PreToolUse`.2189Входные данные для событий hooks `PreToolUse`.
1955 2190
1972| `agent_id` | `str` (опционально) | Идентификатор подагента, присутствует, когда hooks срабатывает внутри подагента |2207| `agent_id` | `str` (опционально) | Идентификатор подагента, присутствует, когда hooks срабатывает внутри подагента |
1973| `agent_type` | `str` (опционально) | Тип подагента, присутствует, когда hooks срабатывает внутри подагента |2208| `agent_type` | `str` (опционально) | Тип подагента, присутствует, когда hooks срабатывает внутри подагента |
1974 2209
1975### `PostToolUseHookInput`2210<h3 id="posttoolusehookinput">
2211 `PostToolUseHookInput`
2212</h3>
1976 2213
1977Входные данные для событий hooks `PostToolUse`.2214Входные данные для событий hooks `PostToolUse`.
1978 2215
1997| `agent_id` | `str` (опционально) | Идентификатор подагента, присутствует, когда hooks срабатывает внутри подагента |2234| `agent_id` | `str` (опционально) | Идентификатор подагента, присутствует, когда hooks срабатывает внутри подагента |
1998| `agent_type` | `str` (опционально) | Тип подагента, присутствует, когда hooks срабатывает внутри подагента |2235| `agent_type` | `str` (опционально) | Тип подагента, присутствует, когда hooks срабатывает внутри подагента |
1999 2236
2000### `PostToolUseFailureHookInput`2237<h3 id="posttoolusefailurehookinput">
2238 `PostToolUseFailureHookInput`
2239</h3>
2001 2240
2002Входные данные для событий hooks `PostToolUseFailure`. Вызывается, когда выполнение инструмента не удается.2241Входные данные для событий hooks `PostToolUseFailure`. Вызывается, когда выполнение инструмента не удается.
2003 2242
2024| `agent_id` | `str` (опционально) | Идентификатор подагента, присутствует, когда hooks срабатывает внутри подагента |2263| `agent_id` | `str` (опционально) | Идентификатор подагента, присутствует, когда hooks срабатывает внутри подагента |
2025| `agent_type` | `str` (опционально) | Тип подагента, присутствует, когда hooks срабатывает внутри подагента |2264| `agent_type` | `str` (опционально) | Тип подагента, присутствует, когда hooks срабатывает внутри подагента |
2026 2265
2027### `UserPromptSubmitHookInput`2266<h3 id="userpromptsubmithookinput">
2267 `UserPromptSubmitHookInput`
2268</h3>
2028 2269
2029Входные данные для событий hooks `UserPromptSubmit`.2270Входные данные для событий hooks `UserPromptSubmit`.
2030 2271
2039| `hook_event_name` | `Literal["UserPromptSubmit"]` | Всегда "UserPromptSubmit" |2280| `hook_event_name` | `Literal["UserPromptSubmit"]` | Всегда "UserPromptSubmit" |
2040| `prompt` | `str` | Отправленная пользователем подсказка |2281| `prompt` | `str` | Отправленная пользователем подсказка |
2041 2282
2042### `StopHookInput`2283<h3 id="stophookinput">
2284 `StopHookInput`
2285</h3>
2043 2286
2044Входные данные для событий hooks `Stop`.2287Входные данные для событий hooks `Stop`.
2045 2288
2054| `hook_event_name` | `Literal["Stop"]` | Всегда "Stop" |2297| `hook_event_name` | `Literal["Stop"]` | Всегда "Stop" |
2055| `stop_hook_active` | `bool` | Активен ли hooks остановки |2298| `stop_hook_active` | `bool` | Активен ли hooks остановки |
2056 2299
2057### `SubagentStopHookInput`2300<h3 id="subagentstophookinput">
2301 `SubagentStopHookInput`
2302</h3>
2058 2303
2059Входные данные для событий hooks `SubagentStop`.2304Входные данные для событий hooks `SubagentStop`.
2060 2305
2075| `agent_transcript_path` | `str` | Путь к файлу стенограммы подагента |2320| `agent_transcript_path` | `str` | Путь к файлу стенограммы подагента |
2076| `agent_type` | `str` | Тип подагента |2321| `agent_type` | `str` | Тип подагента |
2077 2322
2078### `PreCompactHookInput`2323<h3 id="precompacthookinput">
2324 `PreCompactHookInput`
2325</h3>
2079 2326
2080Входные данные для событий hooks `PreCompact`.2327Входные данные для событий hooks `PreCompact`.
2081 2328
2092| `trigger` | `Literal["manual", "auto"]` | Что вызвало уплотнение |2339| `trigger` | `Literal["manual", "auto"]` | Что вызвало уплотнение |
2093| `custom_instructions` | `str \| None` | Пользовательские инструкции для уплотнения |2340| `custom_instructions` | `str \| None` | Пользовательские инструкции для уплотнения |
2094 2341
2095### `NotificationHookInput`2342<h3 id="notificationhookinput">
2343 `NotificationHookInput`
2344</h3>
2096 2345
2097Входные данные для событий hooks `Notification`.2346Входные данные для событий hooks `Notification`.
2098 2347
2111| `title` | `str` (опционально) | Название уведомления |2360| `title` | `str` (опционально) | Название уведомления |
2112| `notification_type` | `str` | Тип уведомления |2361| `notification_type` | `str` | Тип уведомления |
2113 2362
2114### `SubagentStartHookInput`2363<h3 id="subagentstarthookinput">
2364 `SubagentStartHookInput`
2365</h3>
2115 2366
2116Входные данные для событий hooks `SubagentStart`.2367Входные данные для событий hooks `SubagentStart`.
2117 2368
2128| `agent_id` | `str` | Уникальный идентификатор подагента |2379| `agent_id` | `str` | Уникальный идентификатор подагента |
2129| `agent_type` | `str` | Тип подагента |2380| `agent_type` | `str` | Тип подагента |
2130 2381
2131### `PermissionRequestHookInput`2382<h3 id="permissionrequesthookinput">
2383 `PermissionRequestHookInput`
2384</h3>
2132 2385
2133Входные данные для событий hooks `PermissionRequest`. Позволяет hooks программно обрабатывать решения разрешений.2386Входные данные для событий hooks `PermissionRequest`. Позволяет hooks программно обрабатывать решения разрешений.
2134 2387
2147| `tool_input` | `dict[str, Any]` | Входные параметры для инструмента |2400| `tool_input` | `dict[str, Any]` | Входные параметры для инструмента |
2148| `permission_suggestions` | `list[Any]` (опционально) | Предложенные обновления разрешений из CLI |2401| `permission_suggestions` | `list[Any]` (опционально) | Предложенные обновления разрешений из CLI |
2149 2402
2150### `HookJSONOutput`2403<h3 id="hookjsonoutput">
2404 `HookJSONOutput`
2405</h3>
2151 2406
2152Тип объединения для возвращаемых значений обратного вызова hooks.2407Тип объединения для возвращаемых значений обратного вызова hooks.
2153 2408
2155HookJSONOutput = AsyncHookJSONOutput | SyncHookJSONOutput2410HookJSONOutput = AsyncHookJSONOutput | SyncHookJSONOutput
2156```2411```
2157 2412
2158#### `SyncHookJSONOutput`2413<h4 id="synchookjsonoutput">
2414 `SyncHookJSONOutput`
2415</h4>
2159 2416
2160Синхронный вывод hooks с полями управления и решения.2417Синхронный вывод hooks с полями управления и решения.
2161 2418
2179 Используйте `continue_` (с подчеркиванием) в коде Python. Он автоматически преобразуется в `continue` при отправке в CLI.2436 Используйте `continue_` (с подчеркиванием) в коде Python. Он автоматически преобразуется в `continue` при отправке в CLI.
2180</Note>2437</Note>
2181 2438
2182#### `HookSpecificOutput`2439<h4 id="hookspecificoutput">
2440 `HookSpecificOutput`
2441</h4>
2183 2442
2184`TypedDict`, содержащий имя события hooks и поля, специфичные для события. Форма зависит от значения `hookEventName`. Для полных деталей доступных полей для каждого события hooks см. [Control execution with hooks](/ru/agent-sdk/hooks#outputs).2443`TypedDict`, содержащий имя события hooks и поля, специфичные для события. Форма зависит от значения `hookEventName`. Для полных деталей доступных полей для каждого события hooks см. [Control execution with hooks](/ru/agent-sdk/hooks#outputs).
2185 2444
2237)2496)
2238```2497```
2239 2498
2240#### `AsyncHookJSONOutput`2499<h4 id="asynchookjsonoutput">
2500 `AsyncHookJSONOutput`
2501</h4>
2241 2502
2242Асинхронный вывод hooks, который откладывает выполнение hooks.2503Асинхронный вывод hooks, который откладывает выполнение hooks.
2243 2504
2251 Используйте `async_` (с подчеркиванием) в коде Python. Он автоматически преобразуется в `async` при отправке в CLI.2512 Используйте `async_` (с подчеркиванием) в коде Python. Он автоматически преобразуется в `async` при отправке в CLI.
2252</Note>2513</Note>
2253 2514
2254### Пример использования hooks2515<h3 id="hook-usage-example">
2516 Пример использования hooks
2517</h3>
2255 2518
2256Этот пример регистрирует два hooks: один, который блокирует опасные команды bash, такие как `rm -rf /`, и другой, который регистрирует все использование инструментов для аудита. Hooks безопасности работает только на командах Bash (через `matcher`), в то время как hooks логирования работает на всех инструментах.2519Этот пример регистрирует два hooks: один, который блокирует опасные команды bash, такие как `rm -rf /`, и другой, который регистрирует все использование инструментов для аудита. Hooks безопасности работает только на командах Bash (через `matcher`), в то время как hooks логирования работает на всех инструментах.
2257 2520
2303 print(message)2566 print(message)
2304```2567```
2305 2568
2306## Типы ввода/вывода инструментов2569<h2 id="tool-input/output-types">
2570 Типы ввода/вывода инструментов
2571</h2>
2307 2572
2308Документация схем ввода/вывода для всех встроенных инструментов Claude Code. Хотя Python SDK не экспортирует их как типы, они представляют структуру входов и выходов инструментов в сообщениях.2573Документация схем ввода/вывода для всех встроенных инструментов Claude Code. Хотя Python SDK не экспортирует их как типы, они представляют структуру входов и выходов инструментов в сообщениях.
2309 2574
2310### Agent2575<h3 id="agent">
2576 Agent
2577</h3>
2311 2578
2312**Имя инструмента:** `Agent` (ранее `Task`, который все еще принимается как псевдоним)2579**Имя инструмента:** `Agent` (ранее `Task`, который все еще принимается как псевдоним)
2313 2580
2332}2599}
2333```2600```
2334 2601
2335### AskUserQuestion2602<h3 id="askuserquestion">
2603 AskUserQuestion
2604</h3>
2336 2605
2337**Имя инструмента:** `AskUserQuestion`2606**Имя инструмента:** `AskUserQuestion`
2338 2607
2378}2647}
2379```2648```
2380 2649
2381### Bash2650<h3 id="bash">
2651 Bash
2652</h3>
2382 2653
2383**Имя инструмента:** `Bash`2654**Имя инструмента:** `Bash`
2384 2655
2404}2675}
2405```2676```
2406 2677
2407### Monitor2678<h3 id="monitor">
2679 Monitor
2680</h3>
2408 2681
2409**Имя инструмента:** `Monitor`2682**Имя инструмента:** `Monitor`
2410 2683
2431}2704}
2432```2705```
2433 2706
2434### Edit2707<h3 id="edit">
2708 Edit
2709</h3>
2435 2710
2436**Имя инструмента:** `Edit`2711**Имя инструмента:** `Edit`
2437 2712
2456}2731}
2457```2732```
2458 2733
2459### Read2734<h3 id="read">
2735 Read
2736</h3>
2460 2737
2461**Имя инструмента:** `Read`2738**Имя инструмента:** `Read`
2462 2739
2490}2767}
2491```2768```
2492 2769
2493### Write2770<h3 id="write">
2771 Write
2772</h3>
2494 2773
2495**Имя инструмента:** `Write`2774**Имя инструмента:** `Write`
2496 2775
2513}2792}
2514```2793```
2515 2794
2516### Glob2795<h3 id="glob">
2796 Glob
2797</h3>
2517 2798
2518**Имя инструмента:** `Glob`2799**Имя инструмента:** `Glob`
2519 2800
2536}2817}
2537```2818```
2538 2819
2539### Grep2820<h3 id="grep">
2821 Grep
2822</h3>
2540 2823
2541**Имя инструмента:** `Grep`2824**Имя инструмента:** `Grep`
2542 2825
2585}2868}
2586```2869```
2587 2870
2588### NotebookEdit2871<h3 id="notebookedit">
2872 NotebookEdit
2873</h3>
2589 2874
2590**Имя инструмента:** `NotebookEdit`2875**Имя инструмента:** `NotebookEdit`
2591 2876
2612}2897}
2613```2898```
2614 2899
2615### WebFetch2900<h3 id="webfetch">
2901 WebFetch
2902</h3>
2616 2903
2617**Имя инструмента:** `WebFetch`2904**Имя инструмента:** `WebFetch`
2618 2905
2638}2925}
2639```2926```
2640 2927
2641### WebSearch2928<h3 id="websearch">
2929 WebSearch
2930</h3>
2642 2931
2643**Имя инструмента:** `WebSearch`2932**Имя инструмента:** `WebSearch`
2644 2933
2662}2951}
2663```2952```
2664 2953
2665### TodoWrite2954<h3 id="todowrite">
2955 TodoWrite
2956</h3>
2666 2957
2667**Имя инструмента:** `TodoWrite`2958**Имя инструмента:** `TodoWrite`
2668 2959
2693}2984}
2694```2985```
2695 2986
2696### TaskCreate2987<h3 id="taskcreate">
2988 TaskCreate
2989</h3>
2697 2990
2698**Имя инструмента:** `TaskCreate`2991**Имя инструмента:** `TaskCreate`
2699 2992
2716}3009}
2717```3010```
2718 3011
2719### TaskUpdate3012<h3 id="taskupdate">
3013 TaskUpdate
3014</h3>
2720 3015
2721**Имя инструмента:** `TaskUpdate`3016**Имя инструмента:** `TaskUpdate`
2722 3017
2748}3043}
2749```3044```
2750 3045
2751### TaskGet3046<h3 id="taskget">
3047 TaskGet
3048</h3>
2752 3049
2753**Имя инструмента:** `TaskGet`3050**Имя инструмента:** `TaskGet`
2754 3051
2775}3072}
2776```3073```
2777 3074
2778### TaskList3075<h3 id="tasklist">
3076 TaskList
3077</h3>
2779 3078
2780**Имя инструмента:** `TaskList`3079**Имя инструмента:** `TaskList`
2781 3080
2801}3100}
2802```3101```
2803 3102
2804### BashOutput3103<h3 id="bashoutput">
3104 BashOutput
3105</h3>
2805 3106
2806**Имя инструмента:** `BashOutput`3107**Имя инструмента:** `BashOutput`
2807 3108
2824}3125}
2825```3126```
2826 3127
2827### KillBash3128<h3 id="killbash">
3129 KillBash
3130</h3>
2828 3131
2829**Имя инструмента:** `KillBash`3132**Имя инструмента:** `KillBash`
2830 3133
2845}3148}
2846```3149```
2847 3150
2848### ExitPlanMode3151<h3 id="exitplanmode">
3152 ExitPlanMode
3153</h3>
2849 3154
2850**Имя инструмента:** `ExitPlanMode`3155**Имя инструмента:** `ExitPlanMode`
2851 3156
2866}3171}
2867```3172```
2868 3173
2869### ListMcpResources3174<h3 id="listmcpresources">
3175 ListMcpResources
3176</h3>
2870 3177
2871**Имя инструмента:** `ListMcpResourcesTool`3178**Имя инструмента:** `ListMcpResourcesTool`
2872 3179
2895}3202}
2896```3203```
2897 3204
2898### ReadMcpResource3205<h3 id="readmcpresource">
3206 ReadMcpResource
3207</h3>
2899 3208
2900**Имя инструмента:** `ReadMcpResourceTool`3209**Имя инструмента:** `ReadMcpResourceTool`
2901 3210
2919}3228}
2920```3229```
2921 3230
2922## Расширенные функции с ClaudeSDKClient3231<h2 id="advanced-features-with-claudesdkclient">
3232 Расширенные функции с ClaudeSDKClient
3233</h2>
2923 3234
2924### Построение интерфейса непрерывного разговора3235<h3 id="building-a-continuous-conversation-interface">
3236 Построение интерфейса непрерывного разговора
3237</h3>
2925 3238
2926```python theme={null}3239```python theme={null}
2927from claude_agent_sdk import (3240from claude_agent_sdk import (
3000asyncio.run(main())3313asyncio.run(main())
3001```3314```
3002 3315
3003### Использование hooks для модификации поведения3316<h3 id="using-hooks-for-behavior-modification">
3317 Использование hooks для модификации поведения
3318</h3>
3004 3319
3005```python theme={null}3320```python theme={null}
3006from claude_agent_sdk import (3321from claude_agent_sdk import (
3084asyncio.run(main())3399asyncio.run(main())
3085```3400```
3086 3401
3087### Мониторинг прогресса в реальном времени3402<h3 id="real-time-progress-monitoring">
3403 Мониторинг прогресса в реальном времени
3404</h3>
3088 3405
3089```python theme={null}3406```python theme={null}
3090from claude_agent_sdk import (3407from claude_agent_sdk import (
3125asyncio.run(monitor_progress())3442asyncio.run(monitor_progress())
3126```3443```
3127 3444
3128## Пример использования3445<h2 id="example-usage">
3446 Пример использования
3447</h2>
3129 3448
3130### Базовые операции с файлами (используя query)3449<h3 id="basic-file-operations-using-query">
3450 Базовые операции с файлами (используя query)
3451</h3>
3131 3452
3132```python theme={null}3453```python theme={null}
3133from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock3454from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock
3153asyncio.run(create_project())3474asyncio.run(create_project())
3154```3475```
3155 3476
3156### Обработка ошибок3477<h3 id="error-handling">
3478 Обработка ошибок
3479</h3>
3157 3480
3158```python theme={null}3481```python theme={null}
3159from claude_agent_sdk import query, CLINotFoundError, ProcessError, CLIJSONDecodeError3482from claude_agent_sdk import query, CLINotFoundError, ProcessError, CLIJSONDecodeError
3171 print(f"Failed to parse response: {e}")3494 print(f"Failed to parse response: {e}")
3172```3495```
3173 3496
3174### Режим потоковой передачи с клиентом3497<h3 id="streaming-mode-with-client">
3498 Режим потоковой передачи с клиентом
3499</h3>
3175 3500
3176```python theme={null}3501```python theme={null}
3177from claude_agent_sdk import ClaudeSDKClient3502from claude_agent_sdk import ClaudeSDKClient
3198asyncio.run(interactive_session())3523asyncio.run(interactive_session())
3199```3524```
3200 3525
3201### Использование пользовательских инструментов с ClaudeSDKClient3526<h3 id="using-custom-tools-with-claudesdkclient">
3527 Использование пользовательских инструментов с ClaudeSDKClient
3528</h3>
3202 3529
3203```python theme={null}3530```python theme={null}
3204from claude_agent_sdk import (3531from claude_agent_sdk import (
3270asyncio.run(main())3597asyncio.run(main())
3271```3598```
3272 3599
3273## Конфигурация sandbox3600<h2 id="sandbox-configuration">
3601 Конфигурация sandbox
3602</h2>
3274 3603
3275### `SandboxSettings`3604<h3 id="sandboxsettings">
3605 `SandboxSettings`
3606</h3>
3276 3607
3277Конфигурация для поведения sandbox. Используйте это для включения sandboxing команд и программной настройки ограничений сети.3608Конфигурация для поведения sandbox. Используйте это для включения sandboxing команд и программной настройки ограничений сети.
3278 3609
3303 Установите `"failIfUnavailable": True` в параметрах sandbox, чтобы остановиться вместо этого. Ключ еще не объявлен на `SandboxSettings`, но SDK передает его в Claude Code, который его соблюдает. `query()` затем сообщает `ResultMessage` с `subtype="error_during_execution"` и причину в `errors`. Следите за этим подтипом, а не ожидайте, что `query()` вызовет исключение перед выдачей сообщений.3634 Установите `"failIfUnavailable": True` в параметрах sandbox, чтобы остановиться вместо этого. Ключ еще не объявлен на `SandboxSettings`, но SDK передает его в Claude Code, который его соблюдает. `query()` затем сообщает `ResultMessage` с `subtype="error_during_execution"` и причину в `errors`. Следите за этим подтипом, а не ожидайте, что `query()` вызовет исключение перед выдачей сообщений.
3304</Note>3635</Note>
3305 3636
3306#### Пример использования3637<h4 id="example-usage-1">
3638 Пример использования
3639</h4>
3307 3640
3308```python theme={null}3641```python theme={null}
3309from claude_agent_sdk import query, ClaudeAgentOptions, SandboxSettings3642from claude_agent_sdk import query, ClaudeAgentOptions, SandboxSettings
3325 **Безопасность Unix socket**: Опция `allowUnixSockets` может предоставить доступ к мощным системным сервисам. Например, разрешение `/var/run/docker.sock` фактически предоставляет полный доступ к хост-системе через Docker API, обходя изоляцию sandbox. Разрешайте только Unix sockets, которые строго необходимы, и поймите последствия безопасности каждого.3658 **Безопасность Unix socket**: Опция `allowUnixSockets` может предоставить доступ к мощным системным сервисам. Например, разрешение `/var/run/docker.sock` фактически предоставляет полный доступ к хост-системе через Docker API, обходя изоляцию sandbox. Разрешайте только Unix sockets, которые строго необходимы, и поймите последствия безопасности каждого.
3326</Warning>3659</Warning>
3327 3660
3328### `SandboxNetworkConfig`3661<h3 id="sandboxnetworkconfig">
3662 `SandboxNetworkConfig`
3663</h3>
3329 3664
3330Конфигурация, специфичная для сети, для режима sandbox. Эти параметры применяются к sandboxed Bash командам, когда `enabled` имеет значение `True` в родительском [`SandboxSettings`](#sandboxsettings). Они не ограничивают инструмент WebFetch, который вместо этого использует [правила разрешений](/ru/permissions#webfetch).3665Конфигурация, специфичная для сети, для режима sandbox. Эти параметры применяются к sandboxed Bash командам, когда `enabled` имеет значение `True` в родительском [`SandboxSettings`](#sandboxsettings). Они не ограничивают инструмент WebFetch, который вместо этого использует [правила разрешений](/ru/permissions#webfetch).
3331 3666
3358 Встроенный прокси sandbox обеспечивает соблюдение списка разрешенных сетей на основе запрашиваемого имени хоста и не завершает и не проверяет трафик TLS, поэтому такие методы, как [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting), потенциально могут его обойти. Подробнее см. в разделе [Ограничения безопасности Sandboxing](/ru/sandboxing#security-limitations) и [Безопасное развертывание](/ru/agent-sdk/secure-deployment#traffic-forwarding) для настройки прокси, завершающего TLS.3693 Встроенный прокси sandbox обеспечивает соблюдение списка разрешенных сетей на основе запрашиваемого имени хоста и не завершает и не проверяет трафик TLS, поэтому такие методы, как [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting), потенциально могут его обойти. Подробнее см. в разделе [Ограничения безопасности Sandboxing](/ru/sandboxing#security-limitations) и [Безопасное развертывание](/ru/agent-sdk/secure-deployment#traffic-forwarding) для настройки прокси, завершающего TLS.
3359</Note>3694</Note>
3360 3695
3361### `SandboxIgnoreViolations`3696<h3 id="sandboxignoreviolations">
3697 `SandboxIgnoreViolations`
3698</h3>
3362 3699
3363Конфигурация для игнорирования определенных нарушений sandbox.3700Конфигурация для игнорирования определенных нарушений sandbox.
3364 3701
3373| `file` | `list[str]` | `[]` | Шаблоны путей файлов для игнорирования нарушений |3710| `file` | `list[str]` | `[]` | Шаблоны путей файлов для игнорирования нарушений |
3374| `network` | `list[str]` | `[]` | Шаблоны сети для игнорирования нарушений |3711| `network` | `list[str]` | `[]` | Шаблоны сети для игнорирования нарушений |
3375 3712
3376### Fallback разрешений для команд без sandbox3713<h3 id="permissions-fallback-for-unsandboxed-commands">
3714 Fallback разрешений для команд без sandbox
3715</h3>
3377 3716
3378Когда `allowUnsandboxedCommands` включен, модель может запросить выполнение команд вне sandbox, установив `dangerouslyDisableSandbox: True` во входе инструмента. Эти запросы переходят к существующей системе разрешений, что означает, что ваш обработчик `can_use_tool` будет вызван, позволяя вам реализовать пользовательскую логику авторизации.3717Когда `allowUnsandboxedCommands` включен, модель может запросить выполнение команд вне sandbox, установив `dangerouslyDisableSandbox: True` во входе инструмента. Эти запросы переходят к существующей системе разрешений, что означает, что ваш обработчик `can_use_tool` будет вызван, позволяя вам реализовать пользовательскую логику авторизации.
3379 3718
3448<Warning>3787<Warning>
3449 Команды, работающие с `dangerouslyDisableSandbox: True`, имеют полный доступ к системе. Убедитесь, что ваш обработчик `can_use_tool` тщательно проверяет эти запросы.3788 Команды, работающие с `dangerouslyDisableSandbox: True`, имеют полный доступ к системе. Убедитесь, что ваш обработчик `can_use_tool` тщательно проверяет эти запросы.
3450 3789
3451 Если `permission_mode` установлен на `bypassPermissions` и `allow_unsandboxed_commands` включен, модель может автономно выполнять команды вне sandbox без каких-либо подсказок одобрения. Эта комбинация фактически позволяет модели молча выходить из изоляции sandbox.3790 Если `permission_mode` установлен на `bypassPermissions` и `allow_unsandboxed_commands` включен, модель может автономно выполнять команды вне sandbox без каких-либо подсказок одобрения (явное [`ask` правило](/ru/agent-sdk/permissions#how-permissions-are-evaluated) все еще требует одного). Эта комбинация фактически позволяет модели молча выходить из изоляции sandbox.
3452</Warning>3791</Warning>
3453 3792
3454## См. также3793<h2 id="see-also">
3794 См. также
3795</h2>
3455 3796
3456* [SDK overview](/ru/agent-sdk/overview) - Общие концепции SDK3797* [SDK overview](/ru/agent-sdk/overview) - Общие концепции SDK
3457* [TypeScript SDK reference](/ru/agent-sdk/typescript) - Документация TypeScript SDK3798* [TypeScript SDK reference](/ru/agent-sdk/typescript) - Документация TypeScript SDK