Установка
Функции
query()
Основная функция для взаимодействия с Claude Code. Создает асинхронный генератор, который передает сообщения по мере их поступления.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
prompt | string | AsyncIterable<SDKUserMessage> | Входная подсказка в виде строки или асинхронного итерируемого объекта для режима потоковой передачи |
options | Options | Необязательный объект конфигурации (см. тип Options ниже) |
Возвращаемое значение
Возвращает объектQuery, который расширяет AsyncGenerator<SDKMessage, void> дополнительными методами.
tool()
Создает определение инструмента MCP, безопасного по типам, для использования с серверами MCP SDK.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
name | string | Имя инструмента |
description | string | Описание того, что делает инструмент |
inputSchema | Schema extends ZodRawShape | Схема Zod, определяющая входные параметры инструмента |
handler | (args, extra) => Promise<CallToolResult> | Асинхронная функция, которая выполняет логику инструмента |
createSdkMcpServer()
Создает экземпляр сервера MCP, который работает в том же процессе, что и ваше приложение.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
options.name | string | Имя сервера MCP |
options.version | string | Необязательная строка версии |
options.tools | Array<SdkMcpToolDefinition> | Массив определений инструментов, созданных с помощью tool() |
Типы
Options
Объект конфигурации для функции query().
| Свойство | Тип | По умолчанию | Описание |
|---|---|---|---|
abortController | AbortController | new AbortController() | Контроллер для отмены операций |
additionalDirectories | string[] | [] | Дополнительные каталоги, к которым может получить доступ Claude |
agents | Record<string, [AgentDefinition](#agentdefinition)> | undefined | Программное определение подагентов |
allowedTools | string[] | Все инструменты | Список разрешенных имен инструментов |
canUseTool | CanUseTool | undefined | Пользовательская функция разрешения для использования инструментов |
continue | boolean | false | Продолжить самый последний разговор |
cwd | string | process.cwd() | Текущий рабочий каталог |
disallowedTools | string[] | [] | Список запрещенных имен инструментов |
env | Dict<string> | process.env | Переменные окружения |
executable | 'bun' | 'deno' | 'node' | Автоопределение | Среда выполнения JavaScript для использования |
executableArgs | string[] | [] | Аргументы для передачи исполняемому файлу |
extraArgs | Record<string, string | null> | {} | Дополнительные аргументы |
fallbackModel | string | undefined | Модель для использования, если основная не работает |
forkSession | boolean | false | При возобновлении с помощью resume разветвить на новый ID сеанса вместо продолжения исходного сеанса |
hooks | Partial<Record<HookEvent, HookCallbackMatcher[]>> | {} | Обратные вызовы хуков для событий |
includePartialMessages | boolean | false | Включить события частичных сообщений |
maxThinkingTokens | number | undefined | Максимальное количество токенов для процесса мышления |
maxTurns | number | undefined | Максимальное количество ходов разговора |
mcpServers | Record<string, [McpServerConfig](#mcpserverconfig)> | {} | Конфигурации серверов MCP |
model | string | По умолчанию из CLI | Модель Claude для использования |
pathToClaudeCodeExecutable | string | Автоопределение | Путь к исполняемому файлу Claude Code |
permissionMode | PermissionMode | 'default' | Режим разрешений для сеанса |
permissionPromptToolName | string | undefined | Имя инструмента MCP для запросов разрешений |
plugins | SdkPluginConfig[] | [] | Загрузить пользовательские плагины из локальных путей. Подробнее см. в разделе Плагины |
resume | string | undefined | ID сеанса для возобновления |
settingSources | SettingSource[] | [] (без параметров) | Контролировать, какие параметры файловой системы загружать. При пропуске параметры не загружаются. Примечание: Должен включать 'project' для загрузки файлов CLAUDE.md |
stderr | (data: string) => void | undefined | Обратный вызов для вывода stderr |
strictMcpConfig | boolean | false | Применять строгую проверку MCP |
systemPrompt | string | { type: 'preset'; preset: 'claude_code'; append?: string } | undefined (пустая подсказка) | Конфигурация системной подсказки. Передайте строку для пользовательской подсказки или { type: 'preset', preset: 'claude_code' } для использования системной подсказки Claude Code. При использовании формы объекта preset добавьте append для расширения системной подсказки дополнительными инструкциями |
Query
Интерфейс, возвращаемый функцией query().
Методы
| Метод | Описание |
|---|---|
interrupt() | Прерывает запрос (доступно только в режиме потоковой передачи входных данных) |
setPermissionMode() | Изменяет режим разрешений (доступно только в режиме потоковой передачи входных данных) |
AgentDefinition
Конфигурация для подагента, определенного программно.
| Поле | Обязательно | Описание |
|---|---|---|
description | Да | Описание на естественном языке того, когда использовать этого агента |
tools | Нет | Массив разрешенных имен инструментов. При пропуске наследует все инструменты |
prompt | Да | Системная подсказка агента |
model | Нет | Переопределение модели для этого агента. При пропуске использует основную модель |
SettingSource
Контролирует, какие источники конфигурации на основе файловой системы загружает SDK.
| Значение | Описание | Местоположение |
|---|---|---|
'user' | Глобальные параметры пользователя | ~/.claude/settings.json |
'project' | Общие параметры проекта (контролируемые версией) | .claude/settings.json |
'local' | Локальные параметры проекта (игнорируемые git) | .claude/settings.local.json |
Поведение по умолчанию
КогдаsettingSources опущен или undefined, SDK не загружает никакие параметры файловой системы. Это обеспечивает изоляцию для приложений SDK.
Почему использовать settingSources?
Загрузить все параметры файловой системы (поведение прежних версий):Приоритет параметров
Когда загружаются несколько источников, параметры объединяются с этим приоритетом (от высшего к низшему):- Локальные параметры (
.claude/settings.local.json) - Параметры проекта (
.claude/settings.json) - Параметры пользователя (
~/.claude/settings.json)
agents, allowedTools) всегда переопределяют параметры файловой системы.
PermissionMode
CanUseTool
Тип пользовательской функции разрешения для управления использованием инструментов.
PermissionResult
Результат проверки разрешения.
McpServerConfig
Конфигурация для серверов MCP.
McpStdioServerConfig
McpSSEServerConfig
McpHttpServerConfig
McpSdkServerConfigWithInstance
SdkPluginConfig
Конфигурация для загрузки плагинов в SDK.
| Поле | Тип | Описание |
|---|---|---|
type | 'local' | Должно быть 'local' (в настоящее время поддерживаются только локальные плагины) |
path | string | Абсолютный или относительный путь к каталогу плагина |
Типы сообщений
SDKMessage
Тип объединения всех возможных сообщений, возвращаемых запросом.
SDKAssistantMessage
Сообщение ответа помощника.
SDKUserMessage
Сообщение пользовательского ввода.
SDKUserMessageReplay
Воспроизведенное пользовательское сообщение с обязательным UUID.
SDKResultMessage
Финальное сообщение результата.
SDKSystemMessage
Сообщение инициализации системы.
SDKPartialAssistantMessage
Потоковое частичное сообщение (только когда includePartialMessages имеет значение true).
SDKCompactBoundaryMessage
Сообщение, указывающее на границу компактирования разговора.
SDKPermissionDenial
Информация об отклоненном использовании инструмента.
Типы хуков
HookEvent
Доступные события хуков.
HookCallback
Тип функции обратного вызова хука.
HookCallbackMatcher
Конфигурация хука с необязательным сопоставителем.
HookInput
Тип объединения всех типов входных данных хука.
BaseHookInput
Базовый интерфейс, который расширяют все типы входных данных хука.
PreToolUseHookInput
PostToolUseHookInput
NotificationHookInput
UserPromptSubmitHookInput
SessionStartHookInput
SessionEndHookInput
StopHookInput
SubagentStopHookInput
PreCompactHookInput
HookJSONOutput
Возвращаемое значение хука.
AsyncHookJSONOutput
SyncHookJSONOutput
Типы входных данных инструментов
Документация схем входных данных для всех встроенных инструментов Claude Code. Эти типы экспортируются из@anthropic-ai/claude-agent-sdk и могут использоваться для безопасного по типам взаимодействия с инструментами.
ToolInput
Примечание: Это тип только для документации для ясности. Он представляет объединение всех типов входных данных инструментов.
Task
Имя инструмента:Task
Bash
Имя инструмента:Bash
BashOutput
Имя инструмента:BashOutput
Edit
Имя инструмента:Edit
Read
Имя инструмента:Read
Write
Имя инструмента:Write
Glob
Имя инструмента:Glob
Grep
Имя инструмента:Grep
KillBash
Имя инструмента:KillBash
NotebookEdit
Имя инструмента:NotebookEdit
WebFetch
Имя инструмента:WebFetch
WebSearch
Имя инструмента:WebSearch
TodoWrite
Имя инструмента:TodoWrite
ExitPlanMode
Имя инструмента:ExitPlanMode
ListMcpResources
Имя инструмента:ListMcpResources
ReadMcpResource
Имя инструмента:ReadMcpResource
Типы выходных данных инструментов
Документация схем выходных данных для всех встроенных инструментов Claude Code. Эти типы представляют фактические данные ответа, возвращаемые каждым инструментом.ToolOutput
Примечание: Это тип только для документации для ясности. Он представляет объединение всех типов выходных данных инструментов.
Task
Имя инструмента:Task
Bash
Имя инструмента:Bash
BashOutput
Имя инструмента:BashOutput
Edit
Имя инструмента:Edit
Read
Имя инструмента:Read
Write
Имя инструмента:Write
Glob
Имя инструмента:Glob
Grep
Имя инструмента:Grep
KillBash
Имя инструмента:KillBash
NotebookEdit
Имя инструмента:NotebookEdit
WebFetch
Имя инструмента:WebFetch
WebSearch
Имя инструмента:WebSearch
TodoWrite
Имя инструмента:TodoWrite
ExitPlanMode
Имя инструмента:ExitPlanMode
ListMcpResources
Имя инструмента:ListMcpResources
ReadMcpResource
Имя инструмента:ReadMcpResource
Типы разрешений
PermissionUpdate
Операции для обновления разрешений.
PermissionBehavior
PermissionUpdateDestination
PermissionRuleValue
Другие типы
ApiKeySource
ConfigScope
NonNullableUsage
Версия Usage со всеми обнуляемыми полями, сделанными ненулевыми.
Usage
Статистика использования токенов (из @anthropic-ai/sdk).
CallToolResult
Тип результата инструмента MCP (из @modelcontextprotocol/sdk/types.js).
AbortError
Пользовательский класс ошибки для операций отмены.
См. также
- Обзор SDK - Общие концепции SDK
- Справочник Python SDK - Документация Python SDK
- Справочник CLI - Интерфейс командной строки
- Общие рабочие процессы - Пошаговые руководства