Loading...
    • Руководство разработчика
    • Справочник API
    • MCP
    • Ресурсы
    • Примечания к выпуску
    Search...
    ⌘K
    Первые шаги
    Введение в ClaudeБыстрый старт
    Модели и цены
    Обзор моделейВыбор моделиЧто нового в Claude 4.5Миграция на Claude 4.5Устаревшие моделиЦены
    Разработка с Claude
    Обзор функцийИспользование Messages APIКонтекстные окнаЛучшие практики промптинга
    Возможности
    Кэширование промптовРедактирование контекстаРасширенное мышлениеУсилиеПотоковая передача сообщенийПакетная обработкаЦитированияМногоязычная поддержкаПодсчет токеновEmbeddingsЗрениеПоддержка PDFFiles APIРезультаты поискаСтруктурированные выходные данные
    Инструменты
    ОбзорКак реализовать использование инструментовЭффективное использование инструментов по токенамПотоковая передача инструментов с детализациейИнструмент BashИнструмент выполнения кодаПрограммное вызывание инструментовИнструмент компьютерного управленияИнструмент текстового редактораИнструмент веб-выборкиИнструмент веб-поискаИнструмент памятиИнструмент поиска инструментов
    Навыки агента
    ОбзорБыстрый стартЛучшие практикиИспользование навыков с API
    Agent SDK
    ОбзорTypeScript SDKPython SDKРуководство по миграции
    MCP в API
    MCP коннекторУдаленные MCP серверы
    Claude на платформах третьих сторон
    Amazon BedrockMicrosoft FoundryVertex AI
    Инженерия промптов
    ОбзорГенератор промптовИспользование шаблонов промптовУлучшитель промптовБудьте ясны и прямолинейныИспользуйте примеры (многошаговый промптинг)Дайте Claude подумать (CoT)Используйте XML тегиДайте Claude роль (системные промпты)Предзаполните ответ ClaudeЦепочка сложных промптовСоветы по длинному контекстуСоветы по расширенному мышлению
    Тестирование и оценка
    Определение критериев успехаРазработка тестовых случаевИспользование инструмента оценкиСнижение задержки
    Усиление защиты
    Снижение галлюцинацийУвеличение согласованности выходных данныхСмягчение взломовПотоковые отказыСнижение утечки промптовДержите Claude в образе
    Администрирование и мониторинг
    Обзор Admin APIAPI использования и затратClaude Code Analytics API
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Agent SDK

    Справочник Agent SDK - TypeScript

    Полный справочник API для TypeScript Agent SDK, включая все функции, типы и интерфейсы.

    Установка

    npm install @anthropic-ai/claude-agent-sdk

    Функции

    query()

    Основная функция для взаимодействия с Claude Code. Создает асинхронный генератор, который передает сообщения по мере их поступления.

    function query({
      prompt,
      options
    }: {
      prompt: string | AsyncIterable<SDKUserMessage>;
      options?: Options;
    }): Query

    Параметры

    ПараметрТипОписание
    promptstring | AsyncIterable<SDKUserMessage>Входной запрос в виде строки или асинхронного итерируемого объекта для режима потоковой передачи
    optionsOptionsНеобязательный объект конфигурации (см. тип Options ниже)

    Возвращаемое значение

    Возвращает объект Query, который расширяет AsyncGenerator<SDKMessage, void> с дополнительными методами.

    tool()

    Создает определение типобезопасного инструмента MCP для использования с серверами MCP SDK.

    function tool<Schema extends ZodRawShape>(
      name: string,
      description: string,
      inputSchema: Schema,
      handler: (args: z.infer<ZodObject<Schema>>, extra: unknown) => Promise<CallToolResult>
    ): SdkMcpToolDefinition<Schema>

    Параметры

    ПараметрТипОписание
    namestringИмя инструмента
    descriptionstringОписание того, что делает инструмент
    inputSchemaSchema extends ZodRawShapeСхема Zod, определяющая входные параметры инструмента
    handler(args, extra) => Promise<CallToolResult>Асинхронная функция, которая выполняет логику инструмента

    createSdkMcpServer()

    Создает экземпляр сервера MCP, который работает в том же процессе, что и ваше приложение.

    function createSdkMcpServer(options: {
      name: string;
      version?: string;
      tools?: Array<SdkMcpToolDefinition<any>>;
    }): McpSdkServerConfigWithInstance

    Параметры

    ПараметрТипОписание
    options.namestringИмя сервера MCP
    options.versionstringНеобязательная строка версии
    options.toolsArray<SdkMcpToolDefinition>Массив определений инструментов, созданных с помощью tool()

    Типы

    Options

    Объект конфигурации для функции query().

    СвойствоТипПо умолчаниюОписание
    abortControllerAbortControllernew AbortController()Контроллер для отмены операций
    additionalDirectoriesstring[][]Дополнительные каталоги, к которым может получить доступ Claude
    agentsRecord<string, [AgentDefinition](#agentdefinition)>undefinedПрограммное определение подагентов

    Query

    Интерфейс, возвращаемый функцией query().

    interface Query extends AsyncGenerator<SDKMessage, void> {
      interrupt(): Promise<void>;
      setPermissionMode(mode: PermissionMode): Promise<void>;
    }

    Методы

    МетодОписание
    interrupt()Прерывает запрос (доступно только в режиме потоковой передачи входных данных)
    setPermissionMode()Изменяет режим разрешения (доступно только в режиме потоковой передачи входных данных)

    AgentDefinition

    Конфигурация для подагента, определенного программно.

    type AgentDefinition = {
      description: string;
      tools?: string[];
      prompt: string;
      model?: 'sonnet' | 'opus' | 'haiku' | 'inherit';
    }
    ПолеОбязательноОписание
    descriptionДаОписание на естественном языке, когда использовать этого агента
    toolsНетМассив разрешенных имен инструментов. Если опущено, наследует все инструменты
    promptДаСистемный запрос агента
    modelНетПереопределение модели для этого агента. Если опущено, использует основную модель

    SettingSource

    Контролирует, какие источники конфигурации на основе файловой системы загружает SDK.

    type SettingSource = 'user' | 'project' | 'local';
    ЗначениеОписаниеРасположение
    'user'Глобальные параметры пользователя~/.claude/settings.json
    'project'Общие параметры проекта (контролируемые версией).claude/settings.json
    'local'Локальные параметры проекта (в gitignore).claude/settings.local.json

    Поведение по умолчанию

    Когда settingSources опущено или undefined, SDK не загружает параметры файловой системы. Это обеспечивает изоляцию для приложений SDK.

    Почему использовать settingSources?

    Загрузить все параметры файловой системы (поведение прежних версий):

    // Загрузить все параметры, как это делал SDK v0.0.x
    const result = query({
      prompt: "Analyze this code",
      options: {
        settingSources: ['user', 'project', 'local']  // Загрузить все параметры
      }
    });

    Загрузить только определенные источники параметров:

    // Загрузить только параметры проекта, игнорировать пользовательские и локальные
    const result = query({
      prompt: "Run CI checks",
      options: {
        settingSources: ['project']  // Только .claude/settings.json
      }
    });

    Тестирование и среды CI:

    // Обеспечить согласованное поведение в CI, исключив локальные параметры
    const result = query({
      prompt: "Run tests",
      options: {
        settingSources: ['project'],  // Только параметры, общие для команды
        permissionMode: 'bypassPermissions'
      }
    });

    Приложения только для SDK:

    // Определить все программно (поведение по умолчанию)
    // Нет зависимостей файловой системы - settingSources по умолчанию []
    const result = query({
      prompt: "Review this PR",
      options: {
        // settingSources: [] является значением по умолчанию, не нужно указывать
        agents: { /* ... */ },
        mcpServers: { /* ... */ },
        allowedTools: ['Read', 'Grep', 'Glob']
      }
    });

    Загрузка инструкций проекта CLAUDE.md:

    // Загрузить параметры проекта для включения файлов CLAUDE.md
    const result = query({
      prompt: "Add a new feature following project conventions",
      options: {
        systemPrompt: {
          type: 'preset',
          preset: 'claude_code'  // Требуется для использования CLAUDE.md
        },
        settingSources: ['project'],  // Загружает CLAUDE.md из каталога проекта
        allowedTools: ['Read', 'Write', 'Edit']
      }
    });

    Приоритет параметров

    Когда загружаются несколько источников, параметры объединяются с этим приоритетом (от высшего к низшему):

    1. Локальные параметры (.claude/settings.local.json)
    2. Параметры проекта (.claude/settings.json)
    3. Параметры пользователя (~/.claude/settings.json)

    Программные опции (такие как agents, allowedTools) всегда переопределяют параметры файловой системы.

    PermissionMode

    type PermissionMode =
      | 'default'           // Стандартное поведение разрешения
      | 'acceptEdits'       // Автоматически принимать редактирование файлов
      | 'bypassPermissions' // Обойти все проверки разрешения
      | 'plan'              // Режим планирования - без выполнения

    CanUseTool

    Тип пользовательской функции разрешения для управления использованием инструмента.

    type CanUseTool = (
      toolName: string,
      input: ToolInput,
      options: {
        signal: AbortSignal;
        suggestions?: PermissionUpdate[];
      }
    ) => Promise<PermissionResult>;

    PermissionResult

    Результат проверки разрешения.

    type PermissionResult = 
      | {
          behavior: 'allow';
          updatedInput: ToolInput;
          updatedPermissions?: PermissionUpdate[];
        }
      | {
          behavior: 'deny';
          message: string;
          interrupt?: boolean;
        }

    McpServerConfig

    Конфигурация для серверов MCP.

    type McpServerConfig = 
      | McpStdioServerConfig
      | McpSSEServerConfig
      | McpHttpServerConfig
      | McpSdkServerConfigWithInstance;

    McpStdioServerConfig

    type McpStdioServerConfig = {
      type?: 'stdio';
      command: string;
      args?: string[];
      env?: Record<string, string>;
    }

    McpSSEServerConfig

    type McpSSEServerConfig = {
      type: 'sse';
      url: string;
      headers?: Record<string, string>;
    }

    McpHttpServerConfig

    type McpHttpServerConfig = {
      type: 'http';
      url: string;
      headers?: Record<string, string>;
    }

    McpSdkServerConfigWithInstance

    type McpSdkServerConfigWithInstance = {
      type: 'sdk';
      name: string;
      instance: McpServer;
    }

    SdkPluginConfig

    Конфигурация для загрузки плагинов в SDK.

    type SdkPluginConfig = {
      type: 'local';
      path: string;
    }
    ПолеТипОписание
    type'local'Должно быть 'local' (в настоящее время поддерживаются только локальные плагины)
    pathstringАбсолютный или относительный путь к каталогу плагина

    Пример:

    plugins: [
      { type: 'local', path: './my-plugin' },
      { type: 'local', path: '/absolute/path/to/plugin' }
    ]

    Полную информацию о создании и использовании плагинов см. в разделе Плагины.

    Типы сообщений

    SDKMessage

    Тип объединения всех возможных сообщений, возвращаемых запросом.

    type SDKMessage = 
      | SDKAssistantMessage
      | SDKUserMessage
      | SDKUserMessageReplay
      | SDKResultMessage
      | SDKSystemMessage
      | SDKPartialAssistantMessage
      | SDKCompactBoundaryMessage;

    SDKAssistantMessage

    Сообщение ответа ассистента.

    type SDKAssistantMessage = {
      type: 'assistant';
      uuid: UUID;
      session_id: string;
      message: APIAssistantMessage; // Из SDK Anthropic
      parent_tool_use_id: string | null;
    }

    SDKUserMessage

    Сообщение пользовательского ввода.

    type SDKUserMessage = {
      type: 'user';
      uuid?: UUID;
      session_id: string;
      message: APIUserMessage; // Из SDK Anthropic
      parent_tool_use_id: string | null;
    }

    SDKUserMessageReplay

    Воспроизведенное пользовательское сообщение с обязательным UUID.

    type SDKUserMessageReplay = {
      type: 'user';
      uuid: UUID;
      session_id: string;
      message: APIUserMessage;
      parent_tool_use_id: string | null;
    }

    SDKResultMessage

    Финальное сообщение результата.

    type SDKResultMessage = 
      | {
          type: 'result';
          subtype: 'success';
          uuid: UUID;
          session_id: string;
          duration_ms: number;
          duration_api_ms: number;
          is_error: boolean;
          num_turns: number;
          result: string;
          total_cost_usd: number;
          usage: NonNullableUsage;
          permission_denials: SDKPermissionDenial[];
        }
      | {
          type: 'result';
          subtype: 'error_max_turns' | 'error_during_execution';
          uuid: UUID;
          session_id: string;
          duration_ms: number;
          duration_api_ms: number;
          is_error: boolean;
          num_turns: number;
          total_cost_usd: number;
          usage: NonNullableUsage;
          permission_denials: SDKPermissionDenial[];
        }

    SDKSystemMessage

    Сообщение инициализации системы.

    type SDKSystemMessage = {
      type: 'system';
      subtype: 'init';
      uuid: UUID;
      session_id: string;
      apiKeySource: ApiKeySource;
      cwd: string;
      tools: string[];
      mcp_servers: {
        name: string;
        status: string;
      }[];
      model: string;
      permissionMode: PermissionMode;
      slash_commands: string[];
      output_style: string;
    }

    SDKPartialAssistantMessage

    Потоковое частичное сообщение (только когда includePartialMessages имеет значение true).

    type SDKPartialAssistantMessage = {
      type: 'stream_event';
      event: RawMessageStreamEvent; // Из SDK Anthropic
      parent_tool_use_id: string | null;
      uuid: UUID;
      session_id: string;
    }

    SDKCompactBoundaryMessage

    Сообщение, указывающее на границу компактирования разговора.

    type SDKCompactBoundaryMessage = {
      type: 'system';
      subtype: 'compact_boundary';
      uuid: UUID;
      session_id: string;
      compact_metadata: {
        trigger: 'manual' | 'auto';
        pre_tokens: number;
      };
    }

    SDKPermissionDenial

    Информация об отклоненном использовании инструмента.

    type SDKPermissionDenial = {
      tool_name: string;
      tool_use_id: string;
      tool_input: ToolInput;
    }

    Типы хуков

    HookEvent

    Доступные события хуков.

    type HookEvent = 
      | 'PreToolUse'
      | 'PostToolUse'
      | 'Notification'
      | 'UserPromptSubmit'
      | 'SessionStart'
      | 'SessionEnd'
      | 'Stop'
      | 'SubagentStop'
      | 'PreCompact';

    HookCallback

    Тип функции обратного вызова хука.

    type HookCallback = (
      input: HookInput, // Объединение всех типов входных данных хука
      toolUseID: string | undefined,
      options: { signal: AbortSignal }
    ) => Promise<HookJSONOutput>;

    HookCallbackMatcher

    Конфигурация хука с необязательным сопоставителем.

    interface HookCallbackMatcher {
      matcher?: string;
      hooks: HookCallback[];
    }

    HookInput

    Тип объединения всех типов входных данных хука.

    type HookInput = 
      | PreToolUseHookInput
      | PostToolUseHookInput
      | NotificationHookInput
      | UserPromptSubmitHookInput
      | SessionStartHookInput
      | SessionEndHookInput
      | StopHookInput
      | SubagentStopHookInput
      | PreCompactHookInput;

    BaseHookInput

    Базовый интерфейс, который расширяют все типы входных данных хука.

    type BaseHookInput = {
      session_id: string;
      transcript_path: string;
      cwd: string;
      permission_mode?: string;
    }

    PreToolUseHookInput

    type PreToolUseHookInput = BaseHookInput & {
      hook_event_name: 'PreToolUse';
      tool_name: string;
      tool_input: ToolInput;
    }

    PostToolUseHookInput

    type PostToolUseHookInput = BaseHookInput & {
      hook_event_name: 'PostToolUse';
      tool_name: string;
      tool_input: ToolInput;
      tool_response: ToolOutput;
    }

    NotificationHookInput

    type NotificationHookInput = BaseHookInput & {
      hook_event_name: 'Notification';
      message: string;
      title?: string;
    }

    UserPromptSubmitHookInput

    type UserPromptSubmitHookInput = BaseHookInput & {
      hook_event_name: 'UserPromptSubmit';
      prompt: string;
    }

    SessionStartHookInput

    type SessionStartHookInput = BaseHookInput & {
      hook_event_name: 'SessionStart';
      source: 'startup' | 'resume' | 'clear' | 'compact';
    }

    SessionEndHookInput

    type SessionEndHookInput = BaseHookInput & {
      hook_event_name: 'SessionEnd';
      reason: 'clear' | 'logout' | 'prompt_input_exit' | 'other';
    }

    StopHookInput

    type StopHookInput = BaseHookInput & {
      hook_event_name: 'Stop';
      stop_hook_active: boolean;
    }

    SubagentStopHookInput

    type SubagentStopHookInput = BaseHookInput & {
      hook_event_name: 'SubagentStop';
      stop_hook_active: boolean;
    }

    PreCompactHookInput

    type PreCompactHookInput = BaseHookInput & {
      hook_event_name: 'PreCompact';
      trigger: 'manual' | 'auto';
      custom_instructions: string | null;
    }

    HookJSONOutput

    Возвращаемое значение хука.

    type HookJSONOutput = AsyncHookJSONOutput | SyncHookJSONOutput;

    AsyncHookJSONOutput

    type AsyncHookJSONOutput = {
      async: true;
      asyncTimeout?: number;
    }

    SyncHookJSONOutput

    type SyncHookJSONOutput = {
      continue?: boolean;
      suppressOutput?: boolean;
      stopReason?: string;
      decision?: 'approve' | 'block';
      systemMessage?: string;
      reason?: string;
      hookSpecificOutput?:
        | {
            hookEventName: 'PreToolUse';
            permissionDecision?: 'allow' | 'deny' | 'ask';
            permissionDecisionReason?: string;
          }
        | {
            hookEventName: 'UserPromptSubmit';
            additionalContext?: string;
          }
        | {
            hookEventName: 'SessionStart';
            additionalContext?: string;
          }
        | {
            hookEventName: 'PostToolUse';
            additionalContext?: string;
          };
    }

    Типы входных данных инструмента

    Документация схем входных данных для всех встроенных инструментов Claude Code. Эти типы экспортируются из @anthropic-ai/claude-agent-sdk и могут использоваться для типобезопасного взаимодействия с инструментами.

    ToolInput

    Примечание: Это тип только для документации для ясности. Он представляет объединение всех типов входных данных инструмента.

    type ToolInput = 
      | AgentInput
      | BashInput
      | BashOutputInput
      | FileEditInput
      | FileReadInput
      | FileWriteInput
      | GlobInput
      | GrepInput
      | KillShellInput
      | NotebookEditInput
      | WebFetchInput
      | WebSearchInput
      | TodoWriteInput
      | ExitPlanModeInput
      | ListMcpResourcesInput
      | ReadMcpResourceInput;

    Task

    Имя инструмента: Task

    interface AgentInput {
      /**
       * Краткое описание задачи (3-5 слов)
       */
      description: string;
      /**
       * Задача для выполнения агентом
       */
      prompt: string;
      /**
       * Тип специализированного агента для использования для этой задачи
       */
      subagent_type: string;
    }

    Запускает нового агента для автономного выполнения сложных многошаговых задач.

    Bash

    Имя инструмента: Bash

    interface BashInput {
      /**
       * Команда для выполнения
       */
      command: string;
      /**
       * Необязательный тайм-аут в миллисекундах (максимум 600000)
       */
      timeout?: number;
      /**
       * Четкое, краткое описание того, что делает эта команда, в 5-10 словах
       */
      description?: string;
      /**
       * Установите значение true, чтобы запустить эту команду в фоновом режиме
       */
      run_in_background?: boolean;
    }

    Выполняет команды bash в постоянном сеансе оболочки с необязательным тайм-аутом и фоновым выполнением.

    BashOutput

    Имя инструмента: BashOutput

    interface BashOutputInput {
      /**
       * ID фоновой оболочки для получения вывода
       */
      bash_id: string;
      /**
       * Необязательное регулярное выражение для фильтрации строк вывода
       */
      filter?: string;
    }

    Получает вывод из работающей или завершенной фоновой оболочки bash.

    Edit

    Имя инструмента: Edit

    interface FileEditInput {
      /**
       * Абсолютный путь к файлу для изменения
       */
      file_path: string;
      /**
       * Текст для замены
       */
      old_string: string;
      /**
       * Текст для замены (должен отличаться от old_string)
       */
      new_string: string;
      /**
       * Заменить все вхождения old_string (по умолчанию false)
       */
      replace_all?: boolean;
    }

    Выполняет точные замены строк в файлах.

    Read

    Имя инструмента: Read

    interface FileReadInput {
      /**
       * Абсолютный путь к файлу для чтения
       */
      file_path: string;
      /**
       * Номер строки для начала чтения
       */
      offset?: number;
      /**
       * Количество строк для чтения
       */
      limit?: number;
    }

    Читает файлы из локальной файловой системы, включая текст, изображения, PDF и записные книжки Jupyter.

    Write

    Имя инструмента: Write

    interface FileWriteInput {
      /**
       * Абсолютный путь к файлу для записи
       */
      file_path: string;
      /**
       * Содержимое для записи в файл
       */
      content: string;
    }

    Записывает файл в локальную файловую систему, перезаписывая, если он существует.

    Glob

    Имя инструмента: Glob

    interface GlobInput {
      /**
       * Шаблон glob для сопоставления файлов
       */
      pattern: string;
      /**
       * Каталог для поиска (по умолчанию cwd)
       */
      path?: string;
    }

    Быстрое сопоставление шаблонов файлов, которое работает с кодовой базой любого размера.

    Grep

    Имя инструмента: Grep

    interface GrepInput {
      /**
       * Шаблон регулярного выражения для поиска
       */
      pattern: string;
      /**
       * Файл или каталог для поиска (по умолчанию cwd)
       */
      path?: string;
      /**
       * Шаблон glob для фильтрации файлов (например, "*.js")
       */
      glob?: string;
      /**
       * Тип файла для поиска (например, "js", "py", "rust")
       */
      type?: string;
      /**
       * Режим вывода: "content", "files_with_matches" или "count"
       */
      output_mode?: 'content' | 'files_with_matches' | 'count';
      /**
       * Поиск без учета регистра
       */
      '-i'?: boolean;
      /**
       * Показать номера строк (для режима содержимого)
       */
      '-n'?: boolean;
      /**
       * Строки для отображения перед каждым совпадением
       */
      '-B'?: number;
      /**
       * Строки для отображения после каждого совпадения
       */
      '-A'?: number;
      /**
       * Строки для отображения перед и после каждого совпадения
       */
      '-C'?: number;
      /**
       * Ограничить вывод первыми N строками/записями
       */
      head_limit?: number;
      /**
       * Включить многострочный режим
       */
      multiline?: boolean;
    }

    Мощный инструмент поиска, построенный на ripgrep с поддержкой регулярных выражений.

    KillBash

    Имя инструмента: KillBash

    interface KillShellInput {
      /**
       * ID фоновой оболочки для завершения
       */
      shell_id: string;
    }

    Завершает работающую фоновую оболочку bash по ее ID.

    NotebookEdit

    Имя инструмента: NotebookEdit

    interface NotebookEditInput {
      /**
       * Абсолютный путь к файлу записной книжки Jupyter
       */
      notebook_path: string;
      /**
       * ID ячейки для редактирования
       */
      cell_id?: string;
      /**
       * Новый источник для ячейки
       */
      new_source: string;
      /**
       * Тип ячейки (код или markdown)
       */
      cell_type?: 'code' | 'markdown';
      /**
       * Тип редактирования (замена, вставка, удаление)
       */
      edit_mode?: 'replace' | 'insert' | 'delete';
    }

    Редактирует ячейки в файлах записной книжки Jupyter.

    WebFetch

    Имя инструмента: WebFetch

    interface WebFetchInput {
      /**
       * URL для получения содержимого
       */
      url: string;
      /**
       * Запрос для запуска на полученном содержимом
       */
      prompt: string;
    }

    Получает содержимое с URL и обрабатывает его с помощью модели AI.

    WebSearch

    Имя инструмента: WebSearch

    interface WebSearchInput {
      /**
       * Поисковый запрос для использования
       */
      query: string;
      /**
       * Включить только результаты из этих доменов
       */
      allowed_domains?: string[];
      /**
       * Никогда не включать результаты из этих доменов
       */
      blocked_domains?: string[];
    }

    Ищет в Интернете и возвращает отформатированные результаты.

    TodoWrite

    Имя инструмента: TodoWrite

    interface TodoWriteInput {
      /**
       * Обновленный список задач
       */
      todos: Array<{
        /**
         * Описание задачи
         */
        content: string;
        /**
         * Статус задачи
         */
        status: 'pending' | 'in_progress' | 'completed';
        /**
         * Активная форма описания задачи
         */
        activeForm: string;
      }>;
    }

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

    ExitPlanMode

    Имя инструмента: ExitPlanMode

    interface ExitPlanModeInput {
      /**
       * План для запуска пользователем на утверждение
       */
      plan: string;
    }

    Выходит из режима планирования и предлагает пользователю утвердить план.

    ListMcpResources

    Имя инструмента: ListMcpResources

    interface ListMcpResourcesInput {
      /**
       * Необязательное имя сервера для фильтрации ресурсов
       */
      server?: string;
    }

    Перечисляет доступные ресурсы MCP с подключенных серверов.

    ReadMcpResource

    Имя инструмента: ReadMcpResource

    interface ReadMcpResourceInput {
      /**
       * Имя сервера MCP
       */
      server: string;
      /**
       * URI ресурса для чтения
       */
      uri: string;
    }

    Читает определенный ресурс MCP с сервера.

    Типы выходных данных инструмента

    Документация схем выходных данных для всех встроенных инструментов Claude Code. Эти типы представляют фактические данные ответа, возвращаемые каждым инструментом.

    ToolOutput

    Примечание: Это тип только для документации для ясности. Он представляет объединение всех типов выходных данных инструмента.

    type ToolOutput = 
      | TaskOutput
      | BashOutput
      | BashOutputToolOutput
      | EditOutput
      | ReadOutput
      | WriteOutput
      | GlobOutput
      | GrepOutput
      | KillBashOutput
      | NotebookEditOutput
      | WebFetchOutput
      | WebSearchOutput
      | TodoWriteOutput
      | ExitPlanModeOutput
      | ListMcpResourcesOutput
      | ReadMcpResourceOutput;

    Task

    Имя инструмента: Task

    interface TaskOutput {
      /**
       * Финальное сообщение результата от подагента
       */
      result: string;
      /**
       * Статистика использования токенов
       */
      usage?: {
        input_tokens: number;
        output_tokens: number;
        cache_creation_input_tokens?: number;
        cache_read_input_tokens?: number;
      };
      /**
       * Общая стоимость в USD
       */
      total_cost_usd?: number;
      /**
       * Время выполнения в миллисекундах
       */
      duration_ms?: number;
    }

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

    Bash

    Имя инструмента: Bash

    interface BashOutput {
      /**
       * Объединенный вывод stdout и stderr
       */
      output: string;
      /**
       * Код выхода команды
       */
      exitCode: number;
      /**
       * Была ли команда завершена из-за тайм-аута
       */
      killed?: boolean;
      /**
       * ID оболочки для фоновых процессов
       */
      shellId?: string;
    }

    Возвращает вывод команды со статусом выхода. Фоновые команды возвращаются немедленно с shellId.

    BashOutput

    Имя инструмента: BashOutput

    interface BashOutputToolOutput {
      /**
       * Новый вывод с момента последней проверки
       */
      output: string;
      /**
       * Текущий статус оболочки
       */
      status: 'running' | 'completed' | 'failed';
      /**
       * Код выхода (при завершении)
       */
      exitCode?: number;
    }

    Возвращает дополнительный вывод из фоновых оболочек.

    Edit

    Имя инструмента: Edit

    interface EditOutput {
      /**
       * Сообщение подтверждения
       */
      message: string;
      /**
       * Количество выполненных замен
       */
      replacements: number;
      /**
       * Путь к отредактированному файлу
       */
      file_path: string;
    }

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

    Read

    Имя инструмента: Read

    type ReadOutput = 
      | TextFileOutput
      | ImageFileOutput
      | PDFFileOutput
      | NotebookFileOutput;
    
    interface TextFileOutput {
      /**
       * Содержимое файла с номерами строк
       */
      content: string;
      /**
       * Общее количество строк в файле
       */
      total_lines: number;
      /**
       * Фактически возвращенные строки
       */
      lines_returned: number;
    }
    
    interface ImageFileOutput {
      /**
       * Данные изображения в кодировке Base64
       */
      image: string;
      /**
       * MIME-тип изображения
       */
      mime_type: string;
      /**
       * Размер файла в байтах
       */
      file_size: number;
    }
    
    interface PDFFileOutput {
      /**
       * Массив содержимого страниц
       */
      pages: Array<{
        page_number: number;
        text?: string;
        images?: Array<{
          image: string;
          mime_type: string;
        }>;
      }>;
      /**
       * Общее количество страниц
       */
      total_pages: number;
    }
    
    interface NotebookFileOutput {
      /**
       * Ячейки записной книжки Jupyter
       */
      cells: Array<{
        cell_type: 'code' | 'markdown';
        source: string;
        outputs?: any[];
        execution_count?: number;
      }>;
      /**
       * Метаданные записной книжки
       */
      metadata?: Record<string, any>;
    }

    Возвращает содержимое файла в формате, соответствующем типу файла.

    Write

    Имя инструмента: Write

    interface WriteOutput {
      /**
       * Сообщение об успехе
       */
      message: string;
      /**
       * Количество записанных байтов
       */
      bytes_written: number;
      /**
       * Путь к записанному файлу
       */
      file_path: string;
    }

    Возвращает подтверждение после успешной записи файла.

    Glob

    Имя инструмента: Glob

    interface GlobOutput {
      /**
       * Массив совпадающих путей файлов
       */
      matches: string[];
      /**
       * Количество найденных совпадений
       */
      count: number;
      /**
       * Используемый каталог поиска
       */
      search_path: string;
    }

    Возвращает пути файлов, соответствующие шаблону glob, отсортированные по времени изменения.

    Grep

    Имя инструмента: Grep

    type GrepOutput = 
      | GrepContentOutput
      | GrepFilesOutput
      | GrepCountOutput;
    
    interface GrepContentOutput {
      /**
       * Совпадающие строки с контекстом
       */
      matches: Array<{
        file: string;
        line_number?: number;
        line: string;
        before_context?: string[];
        after_context?: string[];
      }>;
      /**
       * Общее количество совпадений
       */
      total_matches: number;
    }
    
    interface GrepFilesOutput {
      /**
       * Файлы, содержащие совпадения
       */
      files: string[];
      /**
       * Количество файлов с совпадениями
       */
      count: number;
    }
    
    interface GrepCountOutput {
      /**
       * Количество совпадений на файл
       */
      counts: Array<{
        file: string;
        count: number;
      }>;
      /**
       * Общее количество совпадений во всех файлах
       */
      total: number;
    }

    Возвращает результаты поиска в формате, указанном в output_mode.

    KillBash

    Имя инструмента: KillBash

    interface KillBashOutput {
      /**
       * Сообщение об успехе
       */
      message: string;
      /**
       * ID завершенной оболочки
       */
      shell_id: string;
    }

    Возвращает подтверждение после завершения фоновой оболочки.

    NotebookEdit

    Имя инструмента: NotebookEdit

    interface NotebookEditOutput {
      /**
       * Сообщение об успехе
       */
      message: string;
      /**
       * Тип выполненного редактирования
       */
      edit_type: 'replaced' | 'inserted' | 'deleted';
      /**
       * ID затронутой ячейки
       */
      cell_id?: string;
      /**
       * Общее количество ячеек в записной книжке после редактирования
       */
      total_cells: number;
    }

    Возвращает подтверждение после изменения записной книжки Jupyter.

    WebFetch

    Имя инструмента: WebFetch

    interface WebFetchOutput {
      /**
       * Ответ модели AI на запрос
       */
      response: string;
      /**
       * URL, который был получен
       */
      url: string;
      /**
       * Финальный URL после перенаправлений
       */
      final_url?: string;
      /**
       * Код состояния HTTP
       */
      status_code?: number;
    }

    Возвращает анализ модели AI полученного веб-содержимого.

    WebSearch

    Имя инструмента: WebSearch

    interface WebSearchOutput {
      /**
       * Результаты поиска
       */
      results: Array<{
        title: string;
        url: string;
        snippet: string;
        /**
         * Дополнительные метаданные, если доступны
         */
        metadata?: Record<string, any>;
      }>;
      /**
       * Общее количество результатов
       */
      total_results: number;
      /**
       * Выполненный поисковый запрос
       */
      query: string;
    }

    Возвращает отформатированные результаты поиска из Интернета.

    TodoWrite

    Имя инструмента: TodoWrite

    interface TodoWriteOutput {
      /**
       * Сообщение об успехе
       */
      message: string;
      /**
       * Текущая статистика задач
       */
      stats: {
        total: number;
        pending: number;
        in_progress: number;
        completed: number;
      };
    }

    Возвращает подтверждение с текущей статистикой задач.

    ExitPlanMode

    Имя инструмента: ExitPlanMode

    interface ExitPlanModeOutput {
      /**
       * Сообщение подтверждения
       */
      message: string;
      /**
       * Утвердил ли пользователь план
       */
      approved?: boolean;
    }

    Возвращает подтверждение после выхода из режима планирования.

    ListMcpResources

    Имя инструмента: ListMcpResources

    interface ListMcpResourcesOutput {
      /**
       * Доступные ресурсы
       */
      resources: Array<{
        uri: string;
        name: string;
        description?: string;
        mimeType?: string;
        server: string;
      }>;
      /**
       * Общее количество ресурсов
       */
      total: number;
    }

    Возвращает список доступных ресурсов MCP.

    ReadMcpResource

    Имя инструмента: ReadMcpResource

    interface ReadMcpResourceOutput {
      /**
       * Содержимое ресурса
       */
      contents: Array<{
        uri: string;
        mimeType?: string;
        text?: string;
        blob?: string;
      }>;
      /**
       * Сервер, предоставивший ресурс
       */
      server: string;
    }

    Возвращает содержимое запрошенного ресурса MCP.

    Типы разрешений

    PermissionUpdate

    Операции для обновления разрешений.

    type PermissionUpdate = 
      | {
          type: 'addRules';
          rules: PermissionRuleValue[];
          behavior: PermissionBehavior;
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'replaceRules';
          rules: PermissionRuleValue[];
          behavior: PermissionBehavior;
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'removeRules';
          rules: PermissionRuleValue[];
          behavior: PermissionBehavior;
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'setMode';
          mode: PermissionMode;
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'addDirectories';
          directories: string[];
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'removeDirectories';
          directories: string[];
          destination: PermissionUpdateDestination;
        }

    PermissionBehavior

    type PermissionBehavior = 'allow' | 'deny' | 'ask';

    PermissionUpdateDestination

    type PermissionUpdateDestination = 
      | 'userSettings'     // Глобальные пользовательские параметры
      | 'projectSettings'  // Параметры проекта для каждого каталога
      | 'localSettings'    // Локальные параметры, игнорируемые Git
      | 'session'          // Только текущий сеанс

    PermissionRuleValue

    type PermissionRuleValue = {
      toolName: string;
      ruleContent?: string;
    }

    Другие типы

    ApiKeySource

    type ApiKeySource = 'user' | 'project' | 'org' | 'temporary';

    ConfigScope

    type ConfigScope = 'local' | 'user' | 'project';

    NonNullableUsage

    Версия Usage со всеми обнуляемыми полями, сделанными необнуляемыми.

    type NonNullableUsage = {
      [K in keyof Usage]: NonNullable<Usage[K]>;
    }

    Usage

    Статистика использования токенов (из @anthropic-ai/sdk).

    type Usage = {
      input_tokens: number | null;
      output_tokens: number | null;
      cache_creation_input_tokens?: number | null;
      cache_read_input_tokens?: number | null;
    }

    CallToolResult

    Тип результата инструмента MCP (из @modelcontextprotocol/sdk/types.js).

    type CallToolResult = {
      content: Array<{
        type: 'text' | 'image' | 'resource';
        // Дополнительные поля варьируются в зависимости от типа
      }>;
      isError?: boolean;
    }

    AbortError

    Пользовательский класс ошибок для операций прерывания.

    class AbortError extends Error {}

    См. также

    • Обзор SDK - Общие концепции SDK
    • Справочник Python SDK - Документация Python SDK
    • Справочник CLI - Интерфейс командной строки
    • Общие рабочие процессы - Пошаговые руководства
    • Установка
    • Функции
    • query()
    • tool()
    • createSdkMcpServer()
    • Типы
    • Options
    • Query
    • AgentDefinition
    • SettingSource
    • PermissionMode
    • CanUseTool
    • PermissionResult
    • McpServerConfig
    • SdkPluginConfig
    • Типы сообщений
    • SDKMessage
    • SDKAssistantMessage
    • SDKUserMessage
    • SDKUserMessageReplay
    • SDKResultMessage
    • SDKSystemMessage
    • SDKPartialAssistantMessage
    • SDKCompactBoundaryMessage
    • SDKPermissionDenial
    • Типы хуков
    • HookEvent
    • HookCallback
    • HookCallbackMatcher
    • HookInput
    • BaseHookInput
    • HookJSONOutput
    • Типы входных данных инструмента
    • ToolInput
    • Task
    • Bash
    • BashOutput
    • Edit
    • Read
    • Write
    • Glob
    • Grep
    • KillBash
    • NotebookEdit
    • WebFetch
    • WebSearch
    • TodoWrite
    • ExitPlanMode
    • ListMcpResources
    • ReadMcpResource
    • Типы выходных данных инструмента
    • ToolOutput
    • Task
    • Bash
    • BashOutput
    • Edit
    • Read
    • Write
    • Glob
    • Grep
    • KillBash
    • NotebookEdit
    • WebFetch
    • WebSearch
    • TodoWrite
    • ExitPlanMode
    • ListMcpResources
    • ReadMcpResource
    • Типы разрешений
    • PermissionUpdate
    • PermissionBehavior
    • PermissionUpdateDestination
    • PermissionRuleValue
    • Другие типы
    • ApiKeySource
    • ConfigScope
    • NonNullableUsage
    • Usage
    • CallToolResult
    • AbortError
    • См. также
    allowedTools
    string[]
    Все инструменты
    Список разрешенных имен инструментов
    canUseToolCanUseToolundefinedПользовательская функция разрешения для использования инструмента
    continuebooleanfalseПродолжить самый последний разговор
    cwdstringprocess.cwd()Текущий рабочий каталог
    disallowedToolsstring[][]Список запрещенных имен инструментов
    envDict<string>process.envПеременные окружения
    executable'bun' | 'deno' | 'node'АвтоопределениеИспользуемая среда выполнения JavaScript
    executableArgsstring[][]Аргументы для передачи исполняемому файлу
    extraArgsRecord<string, string | null>{}Дополнительные аргументы
    fallbackModelstringundefinedМодель для использования, если основная не работает
    forkSessionbooleanfalseПри возобновлении с помощью resume разветвить на новый ID сеанса вместо продолжения исходного сеанса
    hooksPartial<Record<HookEvent, HookCallbackMatcher[]>>{}Обратные вызовы хуков для событий
    includePartialMessagesbooleanfalseВключить события частичных сообщений
    maxThinkingTokensnumberundefinedМаксимальное количество токенов для процесса размышления
    maxTurnsnumberundefinedМаксимальное количество ходов разговора
    mcpServersRecord<string, [McpServerConfig](#mcpserverconfig)>{}Конфигурации серверов MCP
    modelstringПо умолчанию из CLIИспользуемая модель Claude
    outputFormat{ type: 'json_schema', schema: JSONSchema }undefinedОпределить формат вывода для результатов агента. Подробнее см. в разделе Структурированные выходы
    pathToClaudeCodeExecutablestringИспользует встроенный исполняемый файлПуть к исполняемому файлу Claude Code
    permissionModePermissionMode'default'Режим разрешения для сеанса
    permissionPromptToolNamestringundefinedИмя инструмента MCP для запросов разрешения
    pluginsSdkPluginConfig[][]Загрузить пользовательские плагины из локальных путей. Подробнее см. в разделе Плагины
    resumestringundefinedID сеанса для возобновления
    settingSourcesSettingSource[][] (без параметров)Контролировать, какие параметры файловой системы загружать. Если опущено, параметры не загружаются. Примечание: Должно включать 'project' для загрузки файлов CLAUDE.md
    stderr(data: string) => voidundefinedОбратный вызов для вывода stderr
    strictMcpConfigbooleanfalseПрименить строгую проверку MCP
    systemPromptstring | { type: 'preset'; preset: 'claude_code'; append?: string }undefined (пустой запрос)Конфигурация системного запроса. Передайте строку для пользовательского запроса или { type: 'preset', preset: 'claude_code' } для использования системного запроса Claude Code. При использовании формы объекта предустановки добавьте append для расширения системного запроса дополнительными инструкциями