0Pricing
AI Agents · Урок

Стратегия декомпозиции на подвопросы

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

«Стратегия декомпозиции на подвопросы» — бесплатный урок AI Agents на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Agents, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Agents содержит 4 уроков всего.

Когда одного перехода недостаточно

Некоторые вопросы требуют нескольких обращений к данным:

«Сравните выручку Apple за 2022 год и Microsoft за 2023 год.»

Один поиск по сходству не извлечёт оба факта; Вам нужны TWO подзапроса.

Декомпозиция на подвопросы

SubQuestionQueryEngine в LlamaIndex разбивает вопрос на подвопросы, отвечает на каждый из них, а затем формирует итоговый ответ:

from llama_index.core.query_engine import SubQuestionQueryEngine
from llama_index.core.tools import QueryEngineTool, ToolMetadata

query_engine_tools = [
    QueryEngineTool(
        query_engine=apple_index.as_query_engine(),
        metadata=ToolMetadata(name='apple', description='Financial data for Apple Inc.')
    ),
    QueryEngineTool(
        query_engine=msft_index.as_query_engine(),
        metadata=ToolMetadata(name='microsoft', description='Financial data for Microsoft Corp.')
    )
]

engine = SubQuestionQueryEngine.from_defaults(query_engine_tools=query_engine_tools)
response = engine.query('Compare 2022 revenue of Apple vs 2023 revenue of Microsoft')

Как это работает

  1. LLM анализирует вопрос
  2. LLM создаёт подвопросы и назначает каждому инструмент
  3. Каждый подвопрос выполняется параллельно
  4. LLM формирует итоговый ответ на основе ответов на подвопросы

Просмотр подвопросов

Можно посмотреть подвопросы, созданные механизмом:

response = engine.query('Compare X and Y')
for sq in response.metadata.get('sub_qa', []):
    print(sq.sub_q.sub_question, '->', sq.answer)

Когда использовать подвопросы

  • Запросы на сравнение (X и Y)
  • Объединение данных из нескольких источников
  • Вопросы с несколькими отдельными фактами

Когда НЕ следует использовать

  • Простые вопросы и ответы — увеличивает задержку и стоимость
  • Контекст одного документа
  • Задачи, для которых декомпозиция не даёт преимуществ

Маршрутизация с помощью LLM

Механизм подвопросов работает вместе с RouterQueryEngine: сначала он решает, к какой коллекции индексов вообще обращаться:

from llama_index.core.query_engine import RouterQueryEngine

router = RouterQueryEngine.from_defaults(query_engine_tools=query_engine_tools)
# Routes 'apple revenue' to apple index, 'msft margins' to msft, etc.

Подвопросы для агентов, создающих код

Для агентов, которые пишут код, подвопросы помогают спланировать этапы:

«Создайте REST API» → подзадача: спроектировать модели, подзадача: написать обработчики CRUD, подзадача: добавить аутентификацию.

Влияние на стоимость

Подвопросы создают N подзапросов вместо одного. Каждый из них включает вызов LLM и извлечение данных. Планируйте бюджет соответственно — это в 3–4 раза дороже одного перехода.

Сравнение с ReAct

Подвопросы предполагают планирование заранее. ReAct (в следующем курсе) работает пошагово. Для запросов, которые можно заранее разложить на части, подвопросы работают быстрее; для исследовательских задач ReAct лучше адаптируется.

Комбинация: ReAct + инструменты подвопросов

Самый гибкий вариант — агент ReAct, в котором механизмы подвопросов выступают инструментами: каждый «вызов инструмента» сам может разбиваться на множество подзапросов.

Оценка качества подвопросов

Проверяйте, создаёт ли LLM разумные подвопросы. Плохую декомпозицию трудно отлаживать, если не просматривать трассировки.

Пример использования декомпозиции

Для какого типа вопросов декомпозиция на подвопросы наиболее полезна?

Повторение

Декомпозиция на подвопросы превращает один сложный запрос в несколько простых — с большими затратами, но значительно более высокой точностью для вопросов на сравнение и вопросов по нескольким источникам.

Часто задаваемые вопросы

Урок «Стратегия декомпозиции на подвопросы» бесплатный?

Да — полный текст урока «Стратегия декомпозиции на подвопросы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Agents, подпишись на CoddyKit PRO. Курс AI Agents содержит 4 уроков всего.

Чему я научусь в уроке «Стратегия декомпозиции на подвопросы»?

Для сложных вопросов с несколькими переходами разбейте задачу на подвопросы, ответьте на каждый и затем составьте итоговый ответ. Ты практикуешь AI Agents с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать AI Agents?

Предыдущий опыт не требуется. AI Agents на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Стратегия декомпозиции на подвопросы»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке AI Agents?

Да. Каждый урок AI Agents включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Загрузчики и разборщики документов
  2. Иерархия индексов: векторный, древовидный, ключевой
  3. Механизмы запросов и синтез ответов
  4. Стратегия декомпозиции на подвопросы
← Назад к AI Agents