Yandex Cloud
Поиск
Связаться с намиПопробовать бесплатно
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Истории успеха
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex AI Studio
  • О сервисе Yandex AI Studio
  • Начало работы с Model Gallery
  • Yandex Workflows
    • Все инструкции
    • Отключить логирование запросов
    • Получить API-ключ
      • Создать простого текстового агента
      • Создать текстового агента с вызовом функции
      • Создать голосового агента с помощью Realtime API
      • Управление контекстом диалога
  • Переход с AI Assistant API на Responses API
  • Совместимость с OpenAI
  • Квоты и лимиты
  • Правила тарификации
  • Управление доступом
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Термины и определения

В этой статье:

  • Перед началом работы
  • Управление контекстом с помощью Conversations API
  • Управление контекстом через связывание ответов
  • Ручное управление состоянием диалога
  1. Пошаговые инструкции
  2. Agent Atelier
  3. Управление контекстом диалога

Управление контекстом диалога

Статья создана
Yandex Cloud
Обновлена 2 февраля 2026 г.
  • Перед началом работы
  • Управление контекстом с помощью Conversations API
  • Управление контекстом через связывание ответов
  • Ручное управление состоянием диалога

При работе с Responses API в Yandex AI Studio есть три способа передавать контекст в многошаговом диалоге с агентом:

  • Conversations API — вариант предполагает сохранение диалога в объект с уникальным идентификатором.
  • Связывание ответов — вариант реализует чат в режиме реального времени, связывая ответы с помощью параметра previous_response_id.
  • Ручное управление контекстом — вариант дает возможность редактировать историю диалога, передаваемую агенту.

Перед началом работыПеред началом работы

Чтобы воспользоваться примерами:

Python
  1. Создайте сервисный аккаунт и назначьте ему роли ai.assistants.editor и ai.languageModels.user.

  2. Получите и сохраните API-ключ сервисного аккаунта, указав для него область действия yc.ai.foundationModels.execute.

    Примечание

    Если вы используете ОС Windows, рекомендуем предварительно установить оболочку WSL и выполнять дальнейшие действия в этой оболочке.

  3. Установите Python версии 3.10 или выше.

  4. Установите библиотеку Python venv для создания изолированных виртуальных окружений в Python.

  5. Создайте и войдите в новое виртуальное окружение Python:

    python3 -m venv new-env
    source new-env/bin/activate
    
  6. Установите библиотеку OpenAI для Python:

    pip install openai
    

Управление контекстом с помощью Conversations APIУправление контекстом с помощью Conversations API

С помощью Conversations API создается объект conversation, который передается в следующие запросы, чтобы сохранять состояние и разделять контекст между ответами. Диалог хранится как долгоживущий объект с уникальным идентификатором.

Python
  1. Создайте файл dialogue.py и добавьте в него код:

    import openai
    
    YC_MODEL = "yandexgpt"
    
    def print_conversation(conv_id):
        print(f"\nConversation {conv_id}")
        items = client.conversations.items.list(conversation_id=conv_id)
        print(f"\nFound {len(items.data)} items in conversation:")
        
        for item in items.data:
            print(f"\nItem: {item}")
        print("-" * 80)
    
    
    client = openai.OpenAI(
        api_key=YC_API_KEY,
        base_url="https://ai.api.cloud.yandex.net/v1",
        project=YC_FOLDER_ID
    )
    
    # 1) создаём conversation
    conv = client.conversations.create()
    print("conversation id:", conv.id)
    print_conversation(conv.id)
    
    # 2) первое сообщение с системной инструкцией и пользовательским вводом
    r1 = client.responses.create(
        model=f"gpt://{YC_FOLDER_ID}/{YC_MODEL}",
        conversation=conv.id,
        input=[
            {"role": "developer", "content": "Ты мой ассистент."},
            {"role": "user", "content": "Привет! Запомни: я живу в Серпухове."}
        ]
    )
    print("assistant:", r1.output_text)
    print_conversation(conv.id)
    
    
    # 3) продолжаем в том же conversation
    r2 = client.responses.create(
        model=f"gpt://{YC_FOLDER_ID}/{YC_MODEL}",
        conversation=conv.id,
        input="В каком городе я живу?"
    )
    print("assistant:", r2.output_text)
    print_conversation(conv.id)
    
    
    # 4) вызов инструмента web_search
    r3 = client.responses.create(
        model=f"gpt://{YC_FOLDER_ID}/{YC_MODEL}",
        conversation=conv.id,
        input="Какая погода будет на выходных?",
        tools=[{
            "type": "web_search",
        }]
    )
    print("assistant:", r3.output_text)
    print_conversation(conv.id)
    
  2. Сохраните данные для аутентификации в переменные окружения:

    export YC_FOLDER_ID=<идентификатор_каталога>
    export YC_API_KEY=<API-ключ>
    
  3. Выполните созданный файл:

    python dialogue.py
    
    Фрагмент ответа
    assistant: На выходных в Серпухове ожидается следующая погода:
    
    - **Суббота, 31 января**:
      - Ночь: -9°C, ощущается как -15°C
      - Утро: -10°C, ощущается как -17°C
      - День: -5°C, ощущается как -10°C
      - Вечер: -7°C, ощущается как -13°C
    
    - **Воскресенье, 1 февраля**:
      - Ночь: -21°C, ощущается как -27°C
      - Утро: -21°C, ощущается как -27°C
      - День: -19°C, ощущается как -25°C
      - Вечер: -20°C, ощущается как -26°C
    

Примечание

Редактирование элементов и обнуление диалога в настоящий момент не поддерживаются. Чтобы начать новый диалог, создайте новый объект conversation.

Управление контекстом через связывание ответовУправление контекстом через связывание ответов

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

Python
  1. Создайте файл dialogue.py и добавьте в него код:

    import openai     
    
    YC_MODEL = "yandexgpt"
    
    previous_id = None  # параметр для сохранения ID последнего ответа ассистента
    
    client = openai.OpenAI(
        api_key=YC_API_KEY,
        project=YC_FOLDER_ID,
        base_url="https://ai.api.cloud.yandex.net/v1",
    )
    
    print("Чат с агентом (введите 'выход' для выхода)\n")
    
    while True:
        user_input = input("Вы: ")
        if user_input.lower() in ("exit", "quit", "выход"):
            print("Чат завершён.")
            break
    
        response = client.responses.create(
            model=f"gpt://{YC_FOLDER_ID}/{YC_MODEL}",
            input=user_input,
            instructions="Ты — текстовый агент, который ведёт диалог и даёт информативные ответы на вопросы пользователя.",
            previous_response_id=previous_id  # передаем контекст, если он есть
        )
    
        # сохраняем ID для следующего шага
        previous_id = response.id
    
        # выводим ответ агента
        print("Агент:", response.output_text)
    
  2. Сохраните данные для аутентификации в переменные окружения:

    export YC_FOLDER_ID=<идентификатор_каталога>
    export YC_API_KEY=<API-ключ>
    
  3. Выполните созданный файл:

    python dialogue.py
    

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

    Пример диалога
    Чат с агентом (введите 'выход' для выхода)
    
    Вы: Привет! Запомни: мою кошку зовут Мяфка, ей в этом месяце исполнится год.
    Агент: Привет! Хорошо, запомнил: вашу кошку зовут Мяфка, и в этом месяце ей исполнится год. Если у вас есть ещё какие-либо вопросы или вам нужна помощь, пожалуйста, обращайтесь!
    Вы: Сколько лет кошке Мяфке?
    Агент: Кошке Мяфке в этом месяце исполнится один год.
    

Ручное управление состоянием диалогаРучное управление состоянием диалога

Для максимального контроля за состоянием диалога можно хранить историю на стороне приложения и явно передавать нужные сообщения в input каждого запроса Responses API. Это особенно полезно, когда нужно реализовать гибкую очистку или сжатие контекста, а также редактировать передаваемую историю.

Python
  1. Создайте файл dialogue.py и добавьте в него код:

    import openai     
    
    YC_MODEL = "yandexgpt"
    
    client = openai.OpenAI(
        api_key=YC_API_KEY,
        base_url="https://ai.api.cloud.yandex.net/v1",
        project=YC_FOLDER_ID,
    )
    
    response = client.responses.create(
        model=f"gpt://{YC_FOLDER_ID}/{YC_MODEL}",
        input=[
            {"role": "user", "content": "Привет! Помоги с выбором подарка самому себе."},
            {"role": "assistant", "content": "Привет! Расскажи о себе"},
            {"role": "user", "content": "Меня зовут Глеб."},
            {"role": "user", "content": "Я люблю путешествовать."},
            {"role": "user", "content": "Увлекаюсь аниме и дизайном."},
        ],
    )
    
    print(response.output_text)
    
  2. Сохраните данные для аутентификации в переменные окружения:

    export YC_FOLDER_ID=<идентификатор_каталога>
    export YC_API_KEY=<API-ключ>
    
  3. Выполните созданный файл:

    python dialogue.py
    
    Пример ответа:
    Вот несколько идей подарков, которые могут тебе понравиться:
    
    1. **Аксессуары для путешествий.** Например, качественный рюкзак или сумка для ручной клади, компактный набор для гигиены, универсальный адаптер для розеток разных стандартов.
    
    2. **Книги по дизайну.** Можно выбрать как классические труды по теории дизайна, так и современные книги с примерами и рекомендациями от известных дизайнеров.
    
    3. **Фигурки и merchandise с аниме.** Если ты увлекаешься каким-то конкретным аниме, можно найти фигурки, постеры, одежду или другие товары с его символикой.
    
    4. **Графический планшет.** Если ты интересуешься дизайном и хочешь развивать свои навыки, графический планшет может стать полезным инструментом для рисования и создания цифровых иллюстраций.
    
    5. **Фотоаппарат или аксессуары для него.** Если ты любишь фотографировать во время путешествий, можно рассмотреть подарок в виде фотоаппарата, дополнительного объектива или другого аксессуара.
    
    6. **Обучающие курсы.** Курсы по дизайну, фотографии, анимации или другим направлениям могут помочь тебе развить свои навыки и узнать что-то новое.
    
    7. **Подписка на стриминговые сервисы с аниме.** Это позволит тебе наслаждаться любимыми аниме в высоком качестве и без рекламы.
    
    Надеюсь, эти идеи помогут тебе выбрать подарок!
    

Была ли статья полезна?

Предыдущая
Создать голосового агента с помощью Realtime API
Следующая
Создать текстового агента с поиском в интернете
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»