Estrategia de descomposición en subpreguntas
Para preguntas complejas de varios saltos, divídalas en subpreguntas, responda cada una y sintetice después una respuesta final.
Estrategia de descomposición en subpreguntas es una lección gratuita de AI Agents en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Agents, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Agents incluye 4 lecciones en total.
Cuando falla el salto único
Algunas preguntas requieren varias búsquedas:
«Compare los ingresos de Apple en 2022 y los de Microsoft en 2023».
Una búsqueda por similitud no recuperará ambos datos; necesita DOS subconsultas.
Descomposición en subpreguntas
SubQuestionQueryEngine de LlamaIndex divide una pregunta en subpreguntas, responde cada una y después sintetiza los 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')Cómo funciona
- El LLM analiza la pregunta
- El LLM genera subpreguntas y asigna cada una a una herramienta
- Cada subpregunta se ejecuta en paralelo
- El LLM sintetiza una respuesta final a partir de las respuestas parciales
Visibilidad de las subpreguntas
Puede ver las subpreguntas que ha generado el motor:
response = engine.query('Compare X and Y')
for sq in response.metadata.get('sub_qa', []):
print(sq.sub_q.sub_question, '->', sq.answer)Cuándo usar subpreguntas
- Consultas de comparación (X frente a Y)
- Agregación de varias fuentes
- Preguntas con varios datos distintos
Cuándo NO usarlas
- Preguntas y respuestas sencillas: añaden latencia y coste
- Contexto de un solo documento
- Tareas en las que descomponer no aporta valor
Enrutamiento con LLM
SubQuestionQueryEngine se combina con RouterQueryEngine para decidir primero a qué colección de índices debe acceder:
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.Subpreguntas para agentes de programación
Para agentes que escriben código, las subpreguntas son una forma de planificar los pasos:
«Crear una API REST» -> sub: diseñar modelos, sub: escribir controladores CRUD, sub: añadir autenticación.
Implicaciones en los costes
Las subpreguntas generan N subconsultas en lugar de 1. Cada una implica una llamada al LLM y una recuperación. Planifique el presupuesto: son entre 3 y 4 veces más costosas que una consulta de salto único.
Comparación con ReAct
Las subpreguntas representan una planificación inicial. ReAct (en el próximo curso) funciona paso a paso. Para consultas que se pueden descomponer de antemano, las subpreguntas son más rápidas; para tareas exploratorias, ReAct se adapta mejor.
Combinación: ReAct + herramientas de subpreguntas
La opción más flexible es un agente ReAct en el que los motores de subpreguntas son herramientas: cada «llamada a una herramienta» puede descomponerse a su vez en muchas subconsultas.
Evaluar la calidad de las subpreguntas
Compruebe si el LLM genera subpreguntas razonables. Una mala descomposición es difícil de depurar sin inspeccionar las trazas.
Caso de uso de la descomposición
¿Para qué tipo de pregunta resulta más útil la descomposición en subpreguntas?
Repaso
La descomposición en subpreguntas convierte una consulta compleja en varias sencillas, con un coste mayor, pero con mucha más precisión en preguntas de comparación y de varias fuentes.
Preguntas frecuentes
¿La lección «Estrategia de descomposición en subpreguntas» es gratis?
Sí — el texto completo de «Estrategia de descomposición en subpreguntas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Agents, actualiza a CoddyKit PRO. El curso de AI Agents incluye 4 lecciones en total.
¿Qué aprenderé en «Estrategia de descomposición en subpreguntas»?
Para preguntas complejas de varios saltos, divídalas en subpreguntas, responda cada una y sintetice después una respuesta final. Practicas AI Agents con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar AI Agents?
No se requiere experiencia previa. AI Agents en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Estrategia de descomposición en subpreguntas»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de AI Agents?
Sí. Cada lección de AI Agents incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Cargadores y analizadores de documentos
- La jerarquía de índices: vectorial, arbórea y de palabras clave
- Motores de consulta y síntesis de respuestas
- Estrategia de descomposición en subpreguntas