Loading...
    • Руководство разработчика
    • Справочник API
    • MCP
    • Ресурсы
    • Примечания к выпуску
    Search...
    ⌘K
    Первые шаги
    Введение в ClaudeБыстрый старт
    Модели и цены
    Обзор моделейВыбор моделиЧто нового в Claude 4.5Миграция на Claude 4.5Устаревшие моделиЦены
    Разработка с Claude
    Обзор функцийИспользование Messages APIКонтекстные окнаЛучшие практики промптирования
    Возможности
    Кэширование промптовРедактирование контекстаРасширенное мышлениеУсилиеПотоковая передача сообщенийПакетная обработкаЦитированияМногоязычная поддержкаПодсчет токеновВстраиванияЗрениеПоддержка PDFFiles APIРезультаты поискаСтруктурированные выходные данныеДополнение Google Sheets
    Инструменты
    ОбзорКак реализовать использование инструментовЭкономное использование токенов инструментамиПотоковая передача инструментов с высокой детализациейИнструмент BashИнструмент выполнения кодаПрограммное вызывание инструментовИнструмент управления компьютеромИнструмент текстового редактораИнструмент веб-выборкиИнструмент веб-поискаИнструмент памятиИнструмент поиска инструментов
    Навыки агента
    ОбзорБыстрый стартЛучшие практикиИспользование навыков с API
    Agent SDK
    ОбзорTypeScript SDKPython SDKРуководство по миграции
    Руководства
    Потоковый вводОбработка разрешенийУправление сеансомСтруктурированные выходные данные в SDKРазмещение Agent SDKИзменение системных промптовMCP в SDKПользовательские инструментыПодагенты в SDKКосые команды в SDKНавыки агента в SDKОтслеживание затрат и использованияСписки задачПлагины в 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...

    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
    Руководства

    Управление сессиями

    Понимание того, как Claude Agent SDK обрабатывает сессии и возобновление сессий

    Управление сессиями

    Claude Agent SDK предоставляет возможности управления сессиями для обработки состояния разговора и возобновления. Сессии позволяют вам продолжать разговоры через множественные взаимодействия, сохраняя полный контекст.

    Как работают сессии

    Когда вы начинаете новый запрос, SDK автоматически создает сессию и возвращает ID сессии в начальном системном сообщении. Вы можете захватить этот ID для возобновления сессии позже.

    Получение ID сессии

    import { query } from "@anthropic-ai/claude-agent-sdk"
    
    let sessionId: string | undefined
    
    const response = query({
      prompt: "Помоги мне создать веб-приложение",
      options: {
        model: "claude-sonnet-4-5"
      }
    })
    
    for await (const message of response) {
      // Первое сообщение - это системное сообщение инициализации с ID сессии
      if (message.type === 'system' && message.subtype === 'init') {
        sessionId = message.session_id
        console.log(`Сессия начата с ID: ${sessionId}`)
        // Вы можете сохранить этот ID для последующего возобновления
      }
    
      // Обработка других сообщений...
      console.log(message)
    }
    
    // Позже вы можете использовать сохраненный sessionId для возобновления
    if (sessionId) {
      const resumedResponse = query({
        prompt: "Продолжи с того места, где мы остановились",
        options: {
          resume: sessionId
        }
      })
    }

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

    SDK поддерживает возобновление сессий из предыдущих состояний разговора, обеспечивая непрерывные рабочие процессы разработки. Используйте опцию resume с ID сессии для продолжения предыдущего разговора.

    import { query } from "@anthropic-ai/claude-agent-sdk"
    
    // Возобновление предыдущей сессии, используя ее ID
    const response = query({
      prompt: "Продолжи реализацию системы аутентификации с того места, где мы остановились",
      options: {
        resume: "session-xyz", // ID сессии из предыдущего разговора
        model: "claude-sonnet-4-5",
        allowedTools: ["Read", "Edit", "Write", "Glob", "Grep", "Bash"]
      }
    })
    
    // Разговор продолжается с полным контекстом из предыдущей сессии
    for await (const message of response) {
      console.log(message)
    }

    SDK автоматически обрабатывает загрузку истории разговора и контекста при возобновлении сессии, позволяя Claude продолжить точно с того места, где он остановился.

    Разветвление сессий

    При возобновлении сессии вы можете выбрать либо продолжить оригинальную сессию, либо разветвить ее в новую ветку. По умолчанию возобновление продолжает оригинальную сессию. Используйте опцию forkSession (TypeScript) или fork_session (Python) для создания нового ID сессии, который начинается с возобновленного состояния.

    Когда разветвлять сессию

    Разветвление полезно, когда вы хотите:

    • Исследовать различные подходы с одной и той же отправной точки
    • Создать множественные ветки разговора без изменения оригинала
    • Тестировать изменения без влияния на историю оригинальной сессии
    • Поддерживать отдельные пути разговора для различных экспериментов

    Разветвление против продолжения

    ПоведениеforkSession: false (по умолчанию)forkSession: true
    ID сессииТот же, что и оригинальныйГенерируется новый ID сессии
    ИсторияДобавляется к оригинальной сессииСоздает новую ветку с точки возобновления
    Оригинальная сессияИзмененаСохранена без изменений
    Случай использованияПродолжить линейный разговорРазветвиться для исследования альтернатив

    Пример: Разветвление сессии

    import { query } from "@anthropic-ai/claude-agent-sdk"
    
    // Сначала захватите ID сессии
    let sessionId: string | undefined
    
    const response = query({
      prompt: "Помоги мне спроектировать REST API",
      options: { model: "claude-sonnet-4-5" }
    })
    
    for await (const message of response) {
      if (message.type === 'system' && message.subtype === 'init') {
        sessionId = message.session_id
        console.log(`Оригинальная сессия: ${sessionId}`)
      }
    }
    
    // Разветвите сессию, чтобы попробовать другой подход
    const forkedResponse = query({
      prompt: "Теперь давайте перепроектируем это как GraphQL API вместо этого",
      options: {
        resume: sessionId,
        forkSession: true,  // Создает новый ID сессии
        model: "claude-sonnet-4-5"
      }
    })
    
    for await (const message of forkedResponse) {
      if (message.type === 'system' && message.subtype === 'init') {
        console.log(`Разветвленная сессия: ${message.session_id}`)
        // Это будет другой ID сессии
      }
    }
    
    // Оригинальная сессия остается неизменной и все еще может быть возобновлена
    const originalContinued = query({
      prompt: "Добавь аутентификацию к REST API",
      options: {
        resume: sessionId,
        forkSession: false,  // Продолжить оригинальную сессию (по умолчанию)
        model: "claude-sonnet-4-5"
      }
    })
    • Как работают сессии
    • Получение ID сессии
    • Возобновление сессий
    • Разветвление сессий
    • Когда разветвлять сессию
    • Разветвление против продолжения
    • Пример: Разветвление сессии