Перейти к основному содержанию
V2 session API больше не поддерживается. TypeScript Agent SDK 0.3.142 удаляет unstable_v2_createSession, unstable_v2_resumeSession, unstable_v2_prompt и типы SDKSession и SDKSessionOptions.Для миграции используйте query() API и параметры сессии, которые он принимает. Передайте AsyncIterable<SDKUserMessage> для многооборотных разговоров или options.resume для продолжения сохранённой сессии. Эта страница сохранена для справки, если вы поддерживаете код на Agent SDK 0.2.x или более ранней версии.
V2 был экспериментальным session API, который устранил необходимость в асинхронных генераторах и координации yield. Вместо управления состоянием генератора между оборотами, каждый оборот представлял собой отдельный цикл send()/stream(). Поверхность API сводилась к трём концепциям:
  • createSession() / resumeSession(): Начать или продолжить разговор
  • session.send(): Отправить сообщение
  • session.stream(): Получить ответ

Установка

Agent SDK версии 0.2.x — это последняя версия, которая включает интерфейс V2. Версия пакета перепрыгнула с 0.2.x прямо на 0.3.142, поэтому версия удаления выше и указание установки ниже описывают одну и ту же границу. Чтобы установить последний совместимый с V2 релиз, зафиксируйте основную и дополнительную версию:
SDK поставляется с нативным бинарным файлом Claude Code для вашей платформы в качестве опциональной зависимости, поэтому вам не нужно устанавливать Claude Code отдельно.

Быстрый старт

Однократный запрос

Для простых однооборотных запросов, когда вам не нужно поддерживать сессию, используйте unstable_v2_prompt(). Этот пример отправляет математический вопрос и логирует ответ:

Базовая сессия

Для взаимодействий, выходящих за рамки одного запроса, создайте сессию. V2 разделяет отправку и потоковую передачу на отдельные шаги:
  • send() отправляет ваше сообщение
  • stream() передаёт ответ потоком
Это явное разделение облегчает добавление логики между оборотами (например, обработка ответов перед отправкой последующих сообщений). Пример ниже создаёт сессию, отправляет “Hello!” в Claude и выводит текстовый ответ. Он использует await using (TypeScript 5.2+) для автоматического закрытия сессии при выходе из блока. Вы также можете вызвать session.close() вручную.

Многооборотный разговор

Сессии сохраняют контекст между несколькими обменами. Чтобы продолжить разговор, вызовите send() снова на той же сессии. Claude помнит предыдущие обороты. Этот пример задаёт математический вопрос, а затем задаёт последующий вопрос, который ссылается на предыдущий ответ:

Возобновление сессии

Если у вас есть ID сессии из предыдущего взаимодействия, вы можете возобновить её позже. Это полезно для долгоживущих рабочих процессов или когда вам нужно сохранить разговоры между перезагрузками приложения. Этот пример создаёт сессию, сохраняет её ID, закрывает её, а затем возобновляет разговор:

Очистка

Сессии можно закрывать вручную или автоматически, используя await using, функцию TypeScript 5.2+ для автоматической очистки ресурсов. Если вы используете более старую версию TypeScript или столкнулись с проблемами совместимости, используйте вместо этого ручную очистку. Автоматическая очистка (TypeScript 5.2+):
Ручная очистка:

Справочник API

unstable_v2_createSession()

Создаёт новую сессию для многооборотных разговоров.

unstable_v2_resumeSession()

Возобновляет существующую сессию по ID.

unstable_v2_prompt()

Однократная удобная функция для однооборотных запросов.

Интерфейс SDKSession

Доступность функций

V2 session API не поддерживает все функции V1. Следующие требуют использования V1 SDK:
  • Разветвление сессий (опция forkSession)
  • Некоторые продвинутые паттерны потокового ввода

См. также