0Pricing
AI Agents · Lezione

Strategia di scomposizione in sotto-domande

Per domande complesse e multi-hop, le suddivida in sotto-domande, risponda a ciascuna e sintetizzi infine la risposta.

Strategia di scomposizione in sotto-domande è una lezione AI Agents gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Agents, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Agents include 4 lezioni in totale.

Quando il recupero single-hop non basta

Per alcune domande servono più ricerche:

"Confrontate i ricavi di Apple nel 2022 e di Microsoft nel 2023."

Una sola ricerca per similarità non recupererà entrambi i dati: servono DUE sotto-query.

Decomposizione in sotto-domande

LlamaIndex SubQuestionQueryEngine divide una domanda in sotto-domande, risponde a ciascuna e poi sintetizza i risultati:

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')

Come funziona

  1. L'LLM analizza la domanda
  2. L'LLM genera le sotto-domande e assegna ciascuna a uno strumento
  3. Ogni sotto-domanda viene eseguita in parallelo
  4. L'LLM sintetizza una risposta finale a partire dalle risposte alle sotto-domande

Visibilità delle sotto-domande

Potete vedere le sotto-domande generate dal motore:

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

Quando usare le sotto-domande

  • Query di confronto (X rispetto a Y)
  • Aggregazione da più fonti
  • Domande con più informazioni distinte

Quando NON usarle

  • Domande e risposte semplici: aggiungono latenza e costi
  • Contesto costituito da un singolo documento
  • Attività per cui la decomposizione non offre alcun vantaggio

Routing con LLM

Sub-Question Engine si combina con RouterQueryEngine per decidere prima su quale raccolta di indici eseguire la ricerca:

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.

Sotto-domande per agenti di programmazione

Per gli agenti che scrivono codice, le sotto-domande sono un modo per pianificare i passaggi:

"Create una REST API" -> sotto-domanda: progettare i modelli, sotto-domanda: scrivere i gestori CRUD, sotto-domanda: aggiungere l'autenticazione.

Implicazioni sui costi

Le sotto-domande generano N sotto-query invece di 1. Ciascuna richiede una chiamata all'LLM e un recupero. Tenetene conto nel budget: il costo è 3-4 volte superiore rispetto a una query single-hop.

Confronto con ReAct

Le sotto-domande pianificano in anticipo. ReAct (nel corso successivo) procede passo dopo passo. Per le query che si possono decomporre in modo noto, le sotto-domande sono più rapide; per le attività esplorative, ReAct si adatta meglio.

Combinazione: ReAct + strumenti per le sotto-domande

La soluzione più flessibile è un agente ReAct in cui i motori per le sotto-domande sono strumenti: ogni "tool call" può a sua volta suddividersi in numerose sotto-query.

Valutare la qualità delle sotto-domande

Verificate se l'LLM genera sotto-domande sensate. Una decomposizione errata è difficile da correggere senza esaminare le tracce.

Caso d'uso della decomposizione

Per quale tipo di domanda è più utile la decomposizione in sotto-domande?

Riepilogo

La decomposizione in sotto-domande trasforma una query complessa in diverse query semplici, con costi maggiori ma una precisione molto più elevata per le domande di confronto e quelle che coinvolgono più fonti.

Domande Frequenti

La lezione «Strategia di scomposizione in sotto-domande» è gratuita?

Sì — il testo completo di «Strategia di scomposizione in sotto-domande» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Agents, passa a CoddyKit PRO. Il corso AI Agents include 4 lezioni in totale.

Cosa imparerò in «Strategia di scomposizione in sotto-domande»?

Per domande complesse e multi-hop, le suddivida in sotto-domande, risponda a ciascuna e sintetizzi infine la risposta. Eserciti AI Agents con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare AI Agents?

Non è richiesta alcuna esperienza precedente. AI Agents su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Strategia di scomposizione in sotto-domande»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione AI Agents?

Sì. Ogni lezione AI Agents include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Loader e parser di documenti
  2. La gerarchia degli indici: vettoriale, ad albero, per parole chiave
  3. Motori di query e sintesi delle risposte
  4. Strategia di scomposizione in sotto-domande
← Torna a AI Agents