Попробуйте новый интерфейс V2 (предпросмотр): Упрощённый интерфейс с паттернами
send() и stream() теперь доступен, что облегчает многооборотные диалоги. Узнайте больше о предпросмотре TypeScript V2Установка
SDK поставляется с нативным бинарным файлом Claude Code для вашей платформы в качестве опциональной зависимости, такой как
@anthropic-ai/claude-agent-sdk-darwin-arm64. Вам не нужно устанавливать Claude Code отдельно. Если ваш менеджер пакетов пропускает опциональные зависимости, SDK выбросит ошибку Native CLI binary for <platform> not found; вместо этого установите pathToClaudeCodeExecutable на отдельно установленный бинарный файл claude.Функции
query()
Основная функция для взаимодействия с Claude Code. Создаёт асинхронный генератор, который потоком передаёт сообщения по мере их поступления.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
prompt | string | AsyncIterable<SDKUserMessage> | Входной запрос в виде строки или асинхронного итерируемого объекта для режима потока |
options | Options | Опциональный объект конфигурации (см. тип Options ниже) |
Возвращаемое значение
Возвращает объектQuery, который расширяет AsyncGenerator<SDKMessage, void> дополнительными методами.
startup()
Предварительно разогревает подпроцесс CLI, запуская его и завершая инициализационное рукопожатие до того, как запрос будет доступен. Возвращённый дескриптор WarmQuery принимает запрос позже и записывает его в уже готовый процесс, поэтому первый вызов query() разрешается без затрат на запуск подпроцесса и инициализацию в строке.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
options | Options | Опциональный объект конфигурации. Аналогичен параметру options функции query() |
initializeTimeoutMs | number | Максимальное время в миллисекундах для ожидания инициализации подпроцесса. По умолчанию 60000. Если инициализация не завершится вовремя, промис отклонится с ошибкой timeout |
Возвращаемое значение
ВозвращаетPromise<WarmQuery>, который разрешается после того, как подпроцесс запущен и завершил инициализационное рукопожатие.
Пример
Вызовитеstartup() рано, например при загрузке приложения, затем вызовите .query() на возвращённом дескрипторе, когда запрос будет готов. Это перемещает запуск подпроцесса и инициализацию из критического пути.
tool()
Создаёт определение типобезопасного MCP tool для использования с SDK MCP серверами.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
name | string | Имя tool |
description | string | Описание того, что делает tool |
inputSchema | Schema extends AnyZodRawShape | Zod схема, определяющая входные параметры tool (поддерживает Zod 3 и Zod 4) |
handler | (args, extra) => Promise<CallToolResult> | Асинхронная функция, которая выполняет логику tool |
extras | { annotations?: ToolAnnotations } | Опциональные аннотации MCP tool, предоставляющие поведенческие подсказки клиентам |
ToolAnnotations
Переэкспортировано из @modelcontextprotocol/sdk/types.js. Все поля являются опциональными подсказками; клиенты не должны полагаться на них для решений безопасности.
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
title | string | undefined | Удобочитаемое название для tool |
readOnlyHint | boolean | false | Если true, tool не изменяет свою среду |
destructiveHint | boolean | true | Если true, tool может выполнять деструктивные обновления (имеет смысл только когда readOnlyHint равен false) |
idempotentHint | boolean | false | Если true, повторные вызовы с одинаковыми аргументами не имеют дополнительного эффекта (имеет смысл только когда readOnlyHint равен false) |
openWorldHint | boolean | true | Если true, tool взаимодействует с внешними сущностями (например, веб-поиск). Если false, область tool закрыта (например, tool памяти) |
createSdkMcpServer()
Создаёт экземпляр MCP сервера, который работает в том же процессе, что и ваше приложение.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
options.name | string | Имя MCP сервера |
options.version | string | Опциональная строка версии |
options.tools | Array<SdkMcpToolDefinition> | Массив определений tool, созданных с помощью tool() |
listSessions()
Обнаруживает и перечисляет прошлые сессии с лёгкими метаданными. Фильтруйте по директории проекта или перечисляйте сессии во всех проектах.
Параметры
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
options.dir | string | undefined | Директория для перечисления сессий. Если опущено, возвращает сессии во всех проектах |
options.limit | number | undefined | Максимальное количество сессий для возврата |
options.includeWorktrees | boolean | true | Когда dir находится внутри git репозитория, включайте сессии из всех путей worktree |
Тип возврата: SDKSessionInfo
| Свойство | Тип | Описание |
|---|---|---|
sessionId | string | Уникальный идентификатор сессии (UUID) |
summary | string | Отображаемое название: пользовательское название, автоматически сгенерированное резюме или первый запрос |
lastModified | number | Время последнего изменения в миллисекундах с эпохи |
fileSize | number | undefined | Размер файла сессии в байтах. Заполняется только для локального хранилища JSONL |
customTitle | string | undefined | Пользовательское название сессии (через /rename) |
firstPrompt | string | undefined | Первый значимый пользовательский запрос в сессии |
gitBranch | string | undefined | Git ветка в конце сессии |
cwd | string | undefined | Рабочая директория для сессии |
tag | string | undefined | Пользовательский тег сессии (см. tagSession()) |
createdAt | number | undefined | Время создания в миллисекундах с эпохи, из временной метки первой записи |
Пример
Выведите 10 самых последних сессий для проекта. Результаты отсортированы поlastModified в убывающем порядке, поэтому первый элемент является самым новым. Опустите dir для поиска во всех проектах.
getSessionMessages()
Читает сообщения пользователя и ассистента из прошлой сессии.
Параметры
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
sessionId | string | обязательно | UUID сессии для чтения (см. listSessions()) |
options.dir | string | undefined | Директория проекта для поиска сессии. Если опущено, ищет во всех проектах |
options.limit | number | undefined | Максимальное количество сообщений для возврата |
options.offset | number | undefined | Количество сообщений для пропуска с начала |
Тип возврата: SessionMessage
| Свойство | Тип | Описание |
|---|---|---|
type | "user" | "assistant" | Роль сообщения |
uuid | string | Уникальный идентификатор сообщения |
session_id | string | Сессия, к которой принадлежит это сообщение |
message | unknown | Необработанная полезная нагрузка сообщения из транскрипта |
parent_tool_use_id | null | Зарезервировано |
Пример
getSessionInfo()
Читает метаданные для одной сессии по ID без сканирования полной директории проекта.
Параметры
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
sessionId | string | обязательно | UUID сессии для поиска |
options.dir | string | undefined | Путь директории проекта. Если опущено, ищет во всех директориях проектов |
SDKSessionInfo или undefined, если сессия не найдена.
renameSession()
Переименовывает сессию, добавляя запись пользовательского названия. Повторные вызовы безопасны; побеждает самое последнее название.
Параметры
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
sessionId | string | обязательно | UUID сессии для переименования |
title | string | обязательно | Новое название. Должно быть непустым после удаления пробелов |
options.dir | string | undefined | Путь директории проекта. Если опущено, ищет во всех директориях проектов |
tagSession()
Помечает сессию. Передайте null для очистки тега. Повторные вызовы безопасны; побеждает самый последний тег.
Параметры
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
sessionId | string | обязательно | UUID сессии для пометки |
tag | string | null | обязательно | Строка тега или null для очистки |
options.dir | string | undefined | Путь директории проекта. Если опущено, ищет во всех директориях проектов |
Типы
Options
Объект конфигурации для функции query().
| Свойство | Тип | По умолчанию | Описание |
|---|---|---|---|
abortController | AbortController | new AbortController() | Контроллер для отмены операций |
additionalDirectories | string[] | [] | Дополнительные директории, к которым Claude может получить доступ |
agent | string | undefined | Имя агента для основного потока. Агент должен быть определён в опции agents или в настройках |
agents | Record<string, [AgentDefinition](#agent-definition)> | undefined | Программно определите подагентов |
allowDangerouslySkipPermissions | boolean | false | Включите обход разрешений. Требуется при использовании permissionMode: 'bypassPermissions' |
allowedTools | string[] | [] | Tools для автоматического одобрения без запроса. Это не ограничивает Claude только этими tools; неперечисленные tools переходят к permissionMode и canUseTool. Используйте disallowedTools для блокировки tools. См. Разрешения |
betas | SdkBeta[] | [] | Включите бета-функции |
canUseTool | CanUseTool | undefined | Пользовательская функция разрешения для использования tool |
continue | boolean | false | Продолжите самый последний диалог |
cwd | string | process.cwd() | Текущая рабочая директория |
debug | boolean | false | Включите режим отладки для процесса Claude Code |
debugFile | string | undefined | Запишите журналы отладки в определённый путь файла. Неявно включает режим отладки |
disallowedTools | string[] | [] | Tools для всегда отклонения. Правила отклонения проверяются первыми и переопределяют allowedTools и permissionMode (включая bypassPermissions) |
effort | 'low' | 'medium' | 'high' | 'xhigh' | 'max' | 'high' | Контролирует, сколько усилий Claude вкладывает в свой ответ. Работает с адаптивным мышлением для направления глубины мышления |
enableFileCheckpointing | boolean | false | Включите отслеживание изменений файлов для перемотки. См. Контрольные точки файлов |
env | Record<string, string | undefined> | process.env | Переменные окружения. Установите CLAUDE_AGENT_SDK_CLIENT_APP для идентификации вашего приложения в заголовке User-Agent |
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[]>> | {} | Обратные вызовы hooks для событий |
includePartialMessages | boolean | false | Включите события частичных сообщений |
maxBudgetUsd | number | undefined | Остановите запрос, когда оценка стоимости на стороне клиента достигнет этого значения USD. Сравнивается с той же оценкой, что и total_cost_usd; см. Отслеживание стоимости и использования для предостережений точности |
maxThinkingTokens | number | undefined | Устарело: Используйте вместо этого thinking. Максимальные токены для процесса мышления |
maxTurns | number | undefined | Максимальное количество агентских ходов (раунды использования tool) |
mcpServers | Record<string, [McpServerConfig](#mcp-server-config)> | {} | Конфигурации MCP серверов |
model | string | По умолчанию из CLI | Модель Claude для использования |
outputFormat | { type: 'json_schema', schema: JSONSchema } | undefined | Определите формат вывода для результатов агента. См. Структурированные выводы для деталей |
pathToClaudeCodeExecutable | string | Автоопределение из встроенного нативного бинарного файла | Путь к исполняемому файлу Claude Code. Требуется только если опциональные зависимости были пропущены при установке или ваша платформа не в поддерживаемом наборе |
permissionMode | PermissionMode | 'default' | Режим разрешения для сессии |
permissionPromptToolName | string | undefined | Имя MCP tool для запросов разрешения |
persistSession | boolean | true | Когда false, отключает сохранение сессии на диск. Сессии не могут быть возобновлены позже |
plugins | SdkPluginConfig[] | [] | Загружайте пользовательские plugins из локальных путей. См. Plugins для деталей |
promptSuggestions | boolean | false | Включите предложения запросов. Выдаёт сообщение prompt_suggestion после каждого хода с предсказанным следующим пользовательским запросом |
resume | string | undefined | ID сессии для возобновления |
resumeSessionAt | string | undefined | Возобновите сессию в определённом UUID сообщения |
sandbox | SandboxSettings | undefined | Программно настройте поведение sandbox. См. Настройки Sandbox для деталей |
sessionId | string | Автогенерируемый | Используйте определённый UUID для сессии вместо автогенерирования |
settingSources | SettingSource[] | Значения по умолчанию CLI (все источники) | Контролируйте, какие настройки файловой системы загружать. Передайте [] для отключения пользовательских, проектных и локальных настроек. Управляемые политикой настройки загружаются независимо. См. Используйте функции Claude Code |
spawnClaudeCodeProcess | (options: SpawnOptions) => SpawnedProcess | undefined | Пользовательская функция для запуска процесса Claude Code. Используйте для запуска Claude Code на ВМ, контейнерах или удалённых окружениях |
stderr | (data: string) => void | undefined | Обратный вызов для вывода stderr |
strictMcpConfig | boolean | false | Принудительно применяйте строгую валидацию MCP |
systemPrompt | string | { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean } | undefined (минимальный запрос) | Конфигурация системного запроса. Передайте строку для пользовательского запроса или { type: 'preset', preset: 'claude_code' } для использования системного запроса Claude Code. При использовании формы объекта preset добавьте append для расширения его дополнительными инструкциями и установите excludeDynamicSections: true для перемещения контекста для каждой сессии в первое пользовательское сообщение для лучшего переиспользования prompt-cache на разных машинах |
thinking | ThinkingConfig | { type: 'adaptive' } для поддерживаемых моделей | Контролирует поведение мышления/рассуждения Claude. См. ThinkingConfig для опций |
toolConfig | ToolConfig | undefined | Конфигурация для встроенного поведения tool. См. ToolConfig для деталей |
tools | string[] | { type: 'preset'; preset: 'claude_code' } | undefined | Конфигурация tool. Передайте массив имён tool или используйте preset для получения встроенных tools Claude Code |
Query объект
Интерфейс, возвращаемый функцией query().
Методы
| Метод | Описание |
|---|---|
interrupt() | Прерывает запрос (доступно только в режиме потока входных данных) |
rewindFiles(userMessageId, options?) | Восстанавливает файлы в их состояние в указанном пользовательском сообщении. Передайте { dryRun: true } для предпросмотра изменений. Требует enableFileCheckpointing: true. См. Контрольные точки файлов |
setPermissionMode() | Изменяет режим разрешения (доступно только в режиме потока входных данных) |
setModel() | Изменяет модель (доступно только в режиме потока входных данных) |
setMaxThinkingTokens() | Устарело: Используйте вместо этого опцию thinking. Изменяет максимальные токены мышления |
initializationResult() | Возвращает полный результат инициализации, включая поддерживаемые команды, модели, информацию об учётной записи и конфигурацию стиля вывода |
supportedCommands() | Возвращает доступные slash commands |
supportedModels() | Возвращает доступные модели с информацией отображения |
supportedAgents() | Возвращает доступные подагентов как AgentInfo[] |
mcpServerStatus() | Возвращает статус подключённых MCP серверов |
accountInfo() | Возвращает информацию об учётной записи |
reconnectMcpServer(serverName) | Переподключитесь к MCP серверу по имени |
toggleMcpServer(serverName, enabled) | Включите или отключите MCP сервер по имени |
setMcpServers(servers) | Динамически замените набор MCP серверов для этой сессии. Возвращает информацию о том, какие серверы были добавлены, удалены и какие ошибки |
streamInput(stream) | Потоком передавайте входные сообщения к запросу для многооборотных диалогов |
stopTask(taskId) | Остановите выполняющуюся фоновую задачу по ID |
close() | Закройте запрос и завершите базовый процесс. Принудительно завершает запрос и очищает все ресурсы |
WarmQuery
Дескриптор, возвращаемый startup(). Подпроцесс уже запущен и инициализирован, поэтому вызов query() на этом дескрипторе записывает запрос непосредственно в готовый процесс без задержки запуска.
Методы
| Метод | Описание |
|---|---|
query(prompt) | Отправьте запрос к предварительно разогретому подпроцессу и верните Query. Может быть вызван только один раз на WarmQuery |
close() | Закройте подпроцесс без отправки запроса. Используйте это для отказа от тёплого запроса, который больше не нужен |
WarmQuery реализует AsyncDisposable, поэтому его можно использовать с await using для автоматической очистки.
SDKControlInitializeResponse
Тип возврата initializationResult(). Содержит данные инициализации сессии.
AgentDefinition
Конфигурация для подагента, определённого программно.
| Поле | Обязательно | Описание |
|---|---|---|
description | Да | Описание на естественном языке, когда использовать этого агента |
tools | Нет | Массив разрешённых имён tool. Если опущено, наследует все tools от родителя |
disallowedTools | Нет | Массив имён tool для явного запрещения для этого агента |
prompt | Да | Системный запрос агента |
model | Нет | Переопределение модели для этого агента. Если опущено или 'inherit', использует основную модель |
mcpServers | Нет | Спецификации MCP серверов для этого агента |
skills | Нет | Массив имён skills для предварительной загрузки в контекст агента |
maxTurns | Нет | Максимальное количество агентских ходов (раунды API) перед остановкой |
criticalSystemReminder_EXPERIMENTAL | Нет | Экспериментально: Критическое напоминание, добавленное в системный запрос |
AgentMcpServerSpec
Указывает MCP серверы, доступные подагенту. Может быть именем сервера (строка, ссылающаяся на сервер из конфигурации mcpServers родителя) или встроенной конфигурацией сервера, записью, отображающей имена серверов на конфигурации.
McpServerConfigForProcessTransport это McpStdioServerConfig | McpSSEServerConfig | McpHttpServerConfig | McpSdkServerConfig.
SettingSource
Контролирует, какие источники конфигурации на основе файловой системы SDK загружает настройки из.
| Значение | Описание | Местоположение |
|---|---|---|
'user' | Глобальные пользовательские настройки | ~/.claude/settings.json |
'project' | Общие настройки проекта (контролируемые версией) | .claude/settings.json |
'local' | Локальные настройки проекта (gitignored) | .claude/settings.local.json |
Поведение по умолчанию
КогдаsettingSources опущено или undefined, query() загружает те же настройки файловой системы, что и CLI Claude Code: пользовательские, проектные и локальные. Управляемые политикой настройки загружаются во всех случаях. См. Что settingSources не контролирует для входных данных, которые читаются независимо от этой опции, и как их отключить.
Почему использовать settingSources
Отключите настройки файловой системы:Приоритет настроек
Когда загружаются несколько источников, настройки объединяются с этим приоритетом (от высшего к низшему):- Локальные настройки (
.claude/settings.local.json) - Настройки проекта (
.claude/settings.json) - Пользовательские настройки (
~/.claude/settings.json)
agents и allowedTools, переопределяют пользовательские, проектные и локальные настройки файловой системы. Управляемые политикой настройки имеют приоритет над программными опциями.
PermissionMode
CanUseTool
Тип пользовательской функции разрешения для контроля использования tool.
| Опция | Тип | Описание |
|---|---|---|
signal | AbortSignal | Сигнализируется, если операция должна быть отменена |
suggestions | PermissionUpdate[] | Предложенные обновления разрешения, чтобы пользователь не был запрошен снова для этого tool |
blockedPath | string | Путь файла, который вызвал запрос разрешения, если применимо |
decisionReason | string | Объясняет, почему был вызван этот запрос разрешения |
toolUseID | string | Уникальный идентификатор для этого конкретного вызова tool в сообщении ассистента |
agentID | string | Если работает в подагенте, ID подагента |
PermissionResult
Результат проверки разрешения.
ToolConfig
Конфигурация для встроенного поведения tool.
| Поле | Тип | Описание |
|---|---|---|
askUserQuestion.previewFormat | 'markdown' | 'html' | Выбирает поле preview на опциях AskUserQuestion и устанавливает его формат содержимого. Если не установлено, Claude не выдаёт предпросмотры |
McpServerConfig
Конфигурация для MCP серверов.
McpStdioServerConfig
McpSSEServerConfig
McpHttpServerConfig
McpSdkServerConfigWithInstance
McpClaudeAIProxyServerConfig
SdkPluginConfig
Конфигурация для загрузки plugins в SDK.
| Поле | Тип | Описание |
|---|---|---|
type | 'local' | Должно быть 'local' (в настоящее время поддерживаются только локальные plugins) |
path | string | Абсолютный или относительный путь к директории plugin |
Типы сообщений
SDKMessage
Тип объединения всех возможных сообщений, возвращаемых запросом.
SDKAssistantMessage
Сообщение ответа ассистента.
message это BetaMessage из Anthropic SDK. Оно включает поля, такие как id, content, model, stop_reason и usage.
SDKAssistantMessageError это один из: 'authentication_failed', 'billing_error', 'rate_limit', 'invalid_request', 'server_error', 'max_output_tokens' или 'unknown'.
SDKUserMessage
Сообщение пользовательского ввода.
shouldQuery на false для добавления сообщения в транскрипт без запуска хода ассистента. Сообщение удерживается и объединяется в следующее пользовательское сообщение, которое запускает ход. Используйте это для внедрения контекста, такого как вывод команды, которую вы запустили вне полосы, без траты вызова модели на это.
SDKUserMessageReplay
Повторно воспроизведённое пользовательское сообщение с требуемым UUID.
SDKResultMessage
Финальное сообщение результата.
SDKSystemMessage
Сообщение инициализации системы.
SDKPartialAssistantMessage
Потоковое частичное сообщение (только когда includePartialMessages равен true).
SDKCompactBoundaryMessage
Сообщение, указывающее границу компактирования диалога.
SDKPluginInstallMessage
Событие прогресса установки plugin. Выдаётся, когда установлена CLAUDE_CODE_SYNC_PLUGIN_INSTALL, поэтому ваше приложение Agent SDK может отслеживать установку marketplace plugin перед первым ходом. Статусы started и completed заключают в скобки общую установку. Статусы installed и failed сообщают об отдельных marketplaces и включают name.
SDKPermissionDenial
Информация об отклонённом использовании tool.
Типы hooks
Для полного руководства по использованию hooks с примерами и общими паттернами см. руководство Hooks.HookEvent
Доступные события hooks.
HookCallback
Тип функции обратного вызова hook.
HookCallbackMatcher
Конфигурация hook с опциональным matcher.
HookInput
Тип объединения всех типов входных данных hook.
BaseHookInput
Базовый интерфейс, который расширяют все типы входных данных hook.
PreToolUseHookInput
PostToolUseHookInput
PostToolUseFailureHookInput
NotificationHookInput
UserPromptSubmitHookInput
SessionStartHookInput
SessionEndHookInput
StopHookInput
SubagentStartHookInput
SubagentStopHookInput
PreCompactHookInput
PermissionRequestHookInput
SetupHookInput
TeammateIdleHookInput
TaskCompletedHookInput
ConfigChangeHookInput
WorktreeCreateHookInput
WorktreeRemoveHookInput
HookJSONOutput
Возвращаемое значение hook.
AsyncHookJSONOutput
SyncHookJSONOutput
Типы входных данных tool
Документация схем входных данных для всех встроенных tools Claude Code. Эти типы экспортируются из@anthropic-ai/claude-agent-sdk и могут быть использованы для типобезопасного взаимодействия с tools.
ToolInputSchemas
Объединение всех типов входных данных tool, экспортируемое из @anthropic-ai/claude-agent-sdk.
Agent
Имя tool:Agent (ранее Task, который всё ещё принимается как псевдоним)
AskUserQuestion
Имя tool:AskUserQuestion
Bash
Имя tool:Bash
Monitor
Имя tool:Monitor
persistent: true для наблюдений на уровне сессии, таких как хвосты логов. Monitor следует тем же правилам разрешения, что и Bash. См. справочник tool Monitor для поведения и доступности провайдера.
TaskOutput
Имя tool:TaskOutput
Edit
Имя tool:Edit
Read
Имя tool:Read
pages для диапазонов страниц PDF (например, "1-5").
Write
Имя tool:Write
Glob
Имя tool:Glob
Grep
Имя tool:Grep
TaskStop
Имя tool:TaskStop
NotebookEdit
Имя tool:NotebookEdit
WebFetch
Имя tool:WebFetch
WebSearch
Имя tool:WebSearch
TodoWrite
Имя tool:TodoWrite
ExitPlanMode
Имя tool:ExitPlanMode
ListMcpResources
Имя tool:ListMcpResources
ReadMcpResource
Имя tool:ReadMcpResource
Config
Имя tool:Config
EnterWorktree
Имя tool:EnterWorktree
path для переключения в существующий worktree текущего репозитория вместо создания нового. name и path являются взаимоисключающими.
Типы выходных данных tool
Документация схем выходных данных для всех встроенных tools Claude Code. Эти типы экспортируются из@anthropic-ai/claude-agent-sdk и представляют фактические данные ответа, возвращаемые каждым tool.
ToolOutputSchemas
Объединение всех типов выходных данных tool.
Agent
Имя tool:Agent (ранее Task, который всё ещё принимается как псевдоним)
status: "completed" для завершённых задач, "async_launched" для фоновых задач и "sub_agent_entered" для интерактивных подагентов.
AskUserQuestion
Имя tool:AskUserQuestion
Bash
Имя tool:Bash
backgroundTaskId.
Monitor
Имя tool:Monitor
TaskStop для раннего отмены наблюдения.
Edit
Имя tool:Edit
Read
Имя tool:Read
type.
Write
Имя tool:Write
Glob
Имя tool:Glob
Grep
Имя tool:Grep
mode: список файлов, содержимое с совпадениями или количество совпадений.
TaskStop
Имя tool:TaskStop
NotebookEdit
Имя tool:NotebookEdit
WebFetch
Имя tool:WebFetch
WebSearch
Имя tool:WebSearch
TodoWrite
Имя tool:TodoWrite
ExitPlanMode
Имя tool:ExitPlanMode
ListMcpResources
Имя tool:ListMcpResources
ReadMcpResource
Имя tool:ReadMcpResource
Config
Имя tool:Config
EnterWorktree
Имя tool:EnterWorktree
Типы разрешений
PermissionUpdate
Операции для обновления разрешений.
PermissionBehavior
PermissionUpdateDestination
PermissionRuleValue
Другие типы
ApiKeySource
SdkBeta
Доступные бета-функции, которые можно включить через опцию betas. См. Заголовки Beta для дополнительной информации.
SlashCommand
Информация о доступной slash команде.
ModelInfo
Информация о доступной модели.
AgentInfo
Информация о доступном подагенте, который может быть вызван через tool Agent.
| Поле | Тип | Описание |
|---|---|---|
name | string | Идентификатор типа агента (например, "Explore", "general-purpose") |
description | string | Описание, когда использовать этого агента |
model | string | undefined | Псевдоним модели, который использует этот агент. Если опущено, наследует модель родителя |
McpServerStatus
Статус подключённого MCP сервера.
McpServerStatusConfig
Конфигурация MCP сервера, как сообщается mcpServerStatus(). Это объединение всех типов транспорта MCP сервера.
McpServerConfig для деталей по каждому типу транспорта.
AccountInfo
Информация об учётной записи для аутентифицированного пользователя.
ModelUsage
Статистика использования для каждой модели, возвращаемая в сообщениях результата. Значение costUSD это оценка на стороне клиента. См. Отслеживание стоимости и использования для предостережений выставления счётов.
ConfigScope
NonNullableUsage
Версия Usage со всеми nullable полями, сделанными non-nullable.
Usage
Статистика использования токенов (из @anthropic-ai/sdk).
CallToolResult
Тип результата MCP tool (из @modelcontextprotocol/sdk/types.js).
ThinkingConfig
Контролирует поведение мышления/рассуждения Claude. Имеет приоритет над устаревшим maxThinkingTokens.
SpawnedProcess
Интерфейс для пользовательского запуска процесса (используется с опцией spawnClaudeCodeProcess). ChildProcess уже удовлетворяет этому интерфейсу.
SpawnOptions
Опции, передаваемые пользовательской функции spawn.
McpSetServersResult
Результат операции setMcpServers().
RewindFilesResult
Результат операции rewindFiles().
SDKStatusMessage
Сообщение обновления статуса (например, компактирование).
SDKTaskNotificationMessage
Уведомление, когда фоновая задача завершается, не работает или остановлена. Фоновые задачи включают команды Bash run_in_background, наблюдения Monitor и фоновые подагентов.
SDKToolUseSummaryMessage
Резюме использования tool в диалоге.
SDKHookStartedMessage
Выдаётся, когда hook начинает выполняться.
SDKHookProgressMessage
Выдаётся во время выполнения hook с выводом stdout/stderr.
SDKHookResponseMessage
Выдаётся, когда hook завершает выполнение.
SDKToolProgressMessage
Выдаётся периодически во время выполнения tool для указания прогресса.
SDKAuthStatusMessage
Выдаётся во время потоков аутентификации.
SDKTaskStartedMessage
Выдаётся, когда фоновая задача начинается. Поле task_type это "local_bash" для фоновых команд Bash и наблюдений Monitor, "local_agent" для подагентов или "remote_agent".
SDKTaskProgressMessage
Выдаётся периодически во время выполнения фоновой задачи.
SDKFilesPersistedEvent
Выдаётся, когда контрольные точки файлов сохраняются на диск.
SDKRateLimitEvent
Выдаётся, когда сессия встречает ограничение скорости.
SDKLocalCommandOutputMessage
Вывод из локальной slash команды (например, /voice или /cost). Отображается как текст в стиле ассистента в транскрипте.
SDKPromptSuggestionMessage
Выдаётся после каждого хода, когда promptSuggestions включён. Содержит предсказанный следующий пользовательский запрос.
AbortError
Пользовательский класс ошибки для операций отмены.
Конфигурация Sandbox
SandboxSettings
Конфигурация для поведения sandbox. Используйте это для включения sandboxing команд и программной конфигурации ограничений сети.
| Свойство | Тип | По умолчанию | Описание |
|---|---|---|---|
enabled | boolean | false | Включите режим sandbox для выполнения команд |
autoAllowBashIfSandboxed | boolean | true | Автоматически одобряйте bash команды, когда sandbox включён |
excludedCommands | string[] | [] | Команды, которые всегда обходят ограничения sandbox (например, ['docker']). Они работают без sandbox автоматически без участия модели |
allowUnsandboxedCommands | boolean | true | Разрешите модели запрашивать выполнение команд вне sandbox. Когда true, модель может установить dangerouslyDisableSandbox в входных данных tool, что переходит к системе разрешений |
network | SandboxNetworkConfig | undefined | Конфигурация sandbox, специфичная для сети |
filesystem | SandboxFilesystemConfig | undefined | Конфигурация sandbox, специфичная для файловой системы, для ограничений чтения/записи |
ignoreViolations | Record<string, string[]> | undefined | Карта категорий нарушений на паттерны для игнорирования (например, { file: ['/tmp/*'], network: ['localhost'] }) |
enableWeakerNestedSandbox | boolean | false | Включите более слабый вложенный sandbox для совместимости |
ripgrep | { command: string; args?: string[] } | undefined | Конфигурация пользовательского бинарного файла ripgrep для окружений sandbox |
Пример использования
SandboxNetworkConfig
Конфигурация, специфичная для сети, для режима sandbox.
| Свойство | Тип | По умолчанию | Описание |
|---|---|---|---|
allowedDomains | string[] | [] | Имена доменов, к которым процессы в sandbox могут получить доступ |
deniedDomains | string[] | [] | Имена доменов, к которым процессы в sandbox не могут получить доступ. Имеет приоритет над allowedDomains |
allowManagedDomainsOnly | boolean | false | Ограничьте доступ в сеть только доменами в allowedDomains |
allowLocalBinding | boolean | false | Разрешите процессам привязываться к локальным портам (например, для dev серверов) |
allowUnixSockets | string[] | [] | Пути Unix socket, к которым процессы могут получить доступ (например, Docker socket) |
allowAllUnixSockets | boolean | false | Разрешите доступ ко всем Unix sockets |
httpProxyPort | number | undefined | Порт HTTP прокси для сетевых запросов |
socksProxyPort | number | undefined | Порт SOCKS прокси для сетевых запросов |
SandboxFilesystemConfig
Конфигурация, специфичная для файловой системы, для режима sandbox.
| Свойство | Тип | По умолчанию | Описание |
|---|---|---|---|
allowWrite | string[] | [] | Паттерны путей файлов для разрешения доступа на запись |
denyWrite | string[] | [] | Паттерны путей файлов для запрещения доступа на запись |
denyRead | string[] | [] | Паттерны путей файлов для запрещения доступа на чтение |
Fallback разрешений для команд вне Sandbox
КогдаallowUnsandboxedCommands включён, модель может запросить выполнение команд вне sandbox, установив dangerouslyDisableSandbox: true во входных данных tool. Эти запросы переходят к существующей системе разрешений, что означает, что ваш обработчик canUseTool вызывается, позволяя вам реализовать пользовательскую логику авторизации.
excludedCommands vs allowUnsandboxedCommands:excludedCommands: Статический список команд, которые всегда автоматически обходят sandbox (например,['docker']). Модель не имеет контроля над этим.allowUnsandboxedCommands: Позволяет модели решать во время выполнения, запрашивать ли выполнение вне sandbox, установивdangerouslyDisableSandbox: trueво входных данных tool.
- Аудит запросов модели: Логируйте, когда модель запрашивает выполнение вне sandbox
- Реализуйте allowlists: Разрешайте только определённые команды работать вне sandbox
- Добавьте рабочие процессы одобрения: Требуйте явной авторизации для привилегированных операций
См. также
- Обзор SDK - Общие концепции SDK
- Справочник Python SDK - Документация Python SDK
- Справочник CLI - Интерфейс командной строки
- Общие рабочие процессы - Пошаговые руководства