Creare un set di test di riferimento
Raccolga 50-200 coppie di alta qualità (input, output atteso) che coprano anche i casi meno frequenti dell'uso reale.
Creare un set di test di riferimento è una lezione AI Agents gratuita su CoddyKit. Questa è la lezione 2 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.
Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.
Che cos'è un gold set?
Un "golden test set" (o "gold set") è una raccolta curata di coppie (input, output atteso) che definisce l'aspetto di un comportamento corretto.
Ogni modifica viene misurata rispetto a questo set.
Proprietà di un buon gold set
- Diverso — copre i casi comuni E quelli limite
- Curato da persone — non generato automaticamente
- Versionato — congelato nel repository
- Documentato — ogni caso include una motivazione
Quanti casi?
Regola generale:
- 50 casi — minimo praticabile
- 200 casi — buona copertura
- 1000+ casi — prodotto maturo
La qualità > la quantità. 50 casi scelti bene sono meglio di 500 casi casuali.
Come reperire i casi
- Interviste agli utenti — che cosa chiedono gli utenti reali
- Log di produzione — le domande effettivamente ricevute
- Segnalazioni di bug — ogni bug diventa un eval
- Generazione avversariale — chieda all'LLM di mettere in difficoltà l'agente
Mining Bad Production Traces
for trace in last_week_traces():
if trace.has_thumbs_down or trace.had_error:
case = {
'input': trace.input,
'why_bad': trace.feedback_comment,
'expected': None # to be filled by human reviewer
}
save_to_review_queue(case)Output atteso: esatto o euristico
Esistono due tipi di output atteso:
- Confronto esatto — per estrazione, classificazione e calcolo
- Euristico — per domande e risposte aperte; valuti se compaiono i fatti chiave
Heuristic Scoring
def score_answer(actual, expected_facts):
return sum(1 for f in expected_facts if f.lower() in actual.lower()) / len(expected_facts)
case = {
'input': 'What is our refund policy?',
'expected_facts': ['30 days', 'unopened', 'receipt required'],
'min_score': 0.66 # at least 2 of 3 facts mentioned
}
actual_answer = "You can return items within 30 days if they are unopened."
score = score_answer(actual_answer, case['expected_facts'])
print(f"Score: {score:.2f} (min required: {case['min_score']})")
Casi avversariali
Includa casi difficili:
- Domande fuori ambito ("Che tempo fa su Marte?")
- Query ambigue
- Tentativi di prompt injection
- Input in lingue straniere
- Input molto lunghi
Versionamento del gold set
Lo memorizzi come JSON nel repository. Ogni PR che aggiorna il set deve spiegare il motivo:
// gold-set.json
[
{
"id": "refund-policy-001",
"input": "What is your refund policy?",
"expected_facts": ["30 days", "unopened", "receipt required"],
"added_by": "alice@",
"added_at": "2025-08-12",
"reason": "Top customer support question"
}
]Suddivisioni tra test e holdout
Per rilevare l'overfitting, suddivida i dati in:
- Dev set — per iterare (lo vede)
- Test set — per misurare (NON lo usa per ottimizzare)
- Holdout — da usare solo prima delle release principali
Classificazione Pareto
Classifichi i casi per categoria, così potrà vedere DOVE si è verificata una regressione:
tag1 = {'tags': ['policy', 'common-question']}
tag2 = {'tags': ['math', 'edge-case']}
print(tag1)
print(tag2)
# Run eval and report:
print("Category 'policy': 0.92")
print("Category 'math': 0.68 <- regression here")
Rubriche per gli eval
Per gli output complessi, scriva una rubrica: che cosa deve essere presente, che cosa NON deve essere presente e che cosa è preferibile:
rubric = {
'must_include': ['30 days'],
'must_not_include': ['no refunds'],
'preferably_includes': ['receipt']
}
for k, v in rubric.items():
print(f"{k}: {v}")
Fonte dei casi
Qual è la fonte con il segnale più elevato per i casi di valutazione?
Riepilogo
Oltre 50 casi curati, ricavati da utenti reali e problemi riscontrati in produzione. Li versioni, li classifichi e li suddivida in dev/test/holdout. Li ampli a ogni bug.
Domande Frequenti
La lezione «Creare un set di test di riferimento» è gratuita?
Sì — il testo completo di «Creare un set di test di riferimento» è 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 «Creare un set di test di riferimento»?
Raccolga 50-200 coppie di alta qualità (input, output atteso) che coprano anche i casi meno frequenti dell'uso reale. 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 2 di 4.
Quanto tempo richiede la lezione «Creare un set di test di riferimento»?
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
- Sviluppo degli agenti guidato dalle valutazioni
- Creare un set di test di riferimento
- Problemi degli LLM-as-a-Judge
- Suite di benchmark: SWE-Bench, GAIA, ToolBench