Estratégia de decomposição em subperguntas
Para perguntas complexas com várias etapas, divida-as em subperguntas, responda a cada uma e depois sintetize uma resposta final.
Estratégia de decomposição em subperguntas é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.
Quando uma única etapa falha
Algumas perguntas exigem várias consultas:
"Compare a receita da Apple em 2022 com a da Microsoft em 2023."
Uma única pesquisa por similaridade não recuperará os dois fatos; você precisará de DUAS subconsultas.
Decomposição em subperguntas
O SubQuestionQueryEngine do LlamaIndex divide uma pergunta em subperguntas, responde a cada uma e depois sintetiza os resultados:
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')Como funciona
- O LLM analisa a pergunta
- O LLM gera subperguntas e atribui cada uma a uma ferramenta
- Cada subpergunta é executada em paralelo
- O LLM sintetiza uma resposta final a partir das respostas das subperguntas
Visibilidade das subperguntas
Você pode ver as subperguntas geradas pelo mecanismo:
response = engine.query('Compare X and Y')
for sq in response.metadata.get('sub_qa', []):
print(sq.sub_q.sub_question, '->', sq.answer)Quando usar subperguntas
- Consultas de comparação (X versus Y)
- Agregação de várias fontes
- Perguntas com vários fatos distintos
Quando NÃO usar
- Perguntas e respostas simples — acrescenta latência e custo
- Contexto de um único documento
- Tarefas sem benefício de decomposição
Roteamento com LLM
O mecanismo de subperguntas combina-se com RouterQueryEngine para decidir primeiro qual coleção de índices deve ser consultada:
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.Subperguntas para agentes de programação
Para agentes que escrevem código, uma subpergunta é uma forma de planejar as etapas:
"Criar uma API REST" -> subpergunta: projetar modelos, subpergunta: escrever manipuladores CRUD, subpergunta: adicionar autenticação.
Implicações de custo
As subperguntas geram N subconsultas em vez de 1. Cada uma é uma chamada ao LLM mais uma recuperação. Planeje o orçamento adequadamente — o custo é 3 a 4 vezes maior que o de uma única etapa.
Comparação com ReAct
As subperguntas representam planejamento antecipado. ReAct (no próximo curso) trabalha passo a passo. Para consultas cuja decomposição é conhecida, as subperguntas são mais rápidas; para tarefas exploratórias, ReAct se adapta melhor.
Combinado: ReAct + ferramentas de subperguntas
A opção mais flexível: um agente ReAct no qual os mecanismos de subperguntas são ferramentas — cada "chamada de ferramenta" pode, por sua vez, decompor-se em várias subconsultas.
Avaliação da qualidade das subperguntas
Acompanhe se o LLM gera subperguntas sensatas. Uma decomposição ruim é difícil de depurar sem inspecionar os rastreamentos.
Caso de uso da decomposição
Para que tipo de pergunta a decomposição em subperguntas é mais útil?
Recapitulação
A decomposição em subperguntas transforma uma consulta complexa em várias consultas simples — com custo maior, mas precisão muito superior em perguntas de comparação e de várias fontes.
Perguntas Frequentes
A aula “Estratégia de decomposição em subperguntas” é grátis?
Sim — o texto completo de “Estratégia de decomposição em subperguntas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.
O que vou aprender em “Estratégia de decomposição em subperguntas”?
Para perguntas complexas com várias etapas, divida-as em subperguntas, responda a cada uma e depois sintetize uma resposta final. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar AI Agents?
Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Estratégia de decomposição em subperguntas”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de AI Agents?
Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Carregadores e analisadores de documentos
- A hierarquia de índices: vetorial, em árvore, por palavras-chave
- Mecanismos de consulta e síntese de respostas
- Estratégia de decomposição em subperguntas