Bygge et gyldig testsett
Sett sammen 50–200 kvalitetssikrede par med inndata og forventede utdata som dekker bredden i reell bruk.
Bygge et gyldig testsett er en gratis leksjon i AI-agenter på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i AI-agenter, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i AI-agenter inneholder totalt 4 leksjoner.
Deler av denne leksjonen er ennå ikke oversatt og vises på engelsk.
Hva er et fasitsett?
Et «golden test set» (eller «gold set») er en kuratert samling av par med (inndata, forventet utdata) som definerer hvordan god atferd ser ut.
Hver endring måles mot dette settet.
Egenskaper ved et godt fasitsett
- Variert – dekker vanlige OG sjeldne tilfeller
- Kurert av mennesker – ikke automatisk generert
- Versjonert – låst i repositoriet
- Dokumentert – hvert tilfelle har en begrunnelse
Hvor mange tilfeller?
Tommelfingerregel:
- 50 tilfeller – minimum som fungerer
- 200 tilfeller – god dekning
- 1000+ tilfeller – modent produkt
Kvalitet > kvantitet. 50 velvalgte tilfeller slår 500 tilfeldige.
Finne tilfeller
- Brukerintervjuer – hva virkelige brukere spør om
- Produksjonslogger – spørsmål som faktisk har kommet inn
- Feilrapporter – hver feil blir en eval
- Adversarial generering – be LLM-en om å bryte agenten
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)Forventet utdata: eksakt samsvar eller heuristikk
Det finnes to typer forventet utdata:
- Eksakt samsvar – for uthenting, klassifisering og beregning
- Heuristisk – for åpne spørsmål og svar; vurder om de viktigste faktaene finnes
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']})")
Adversarielle tilfeller
Ta med vanskelige tilfeller:
- Spørsmål utenfor området («Hvordan er været på Mars?»)
- Tvetydige spørsmål
- Forsøk på prompt-injeksjon
- Inndata på fremmede språk
- Svært lange inndata
Versjonere fasitsettet
Lagre det som JSON i repositoriet. Hver PR som oppdaterer settet, må forklare hvorfor:
// 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"
}
]Test- og holdout-deler
Del settet i følgende deler for å oppdage overtilpasning:
- Utviklingssett – iterer på dette (dette ser De)
- Testsett – mål på dette (dette finjusterer De IKKE mot)
- Holdout-sett – brukes bare før større lanseringer
Pareto-merking
Merk tilfellene etter kategori, slik at De kan se HVOR regresjonen oppstod:
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")
Evalueringskriterier
For komplekse utdata bør De skrive evalueringskriterier: hva som må være med, hva som IKKE må være med, og hva som er å foretrekke:
rubric = {
'must_include': ['30 days'],
'must_not_include': ['no refunds'],
'preferably_includes': ['receipt']
}
for k, v in rubric.items():
print(f"{k}: {v}")
Kilde for tilfeller
Hva er kilden med høyest signal for evalueringsdata?
Oppsummering
50+ kuraterte tilfeller hentet fra virkelige brukere og feil i produksjonen. Versjoner, merk og del dem i utviklings-, test- og holdout-sett. Utvid settet med hver feil.
Lær deg AI-agenter med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 60
- Leksjoner
- 239
Ofte stilte spørsmål
Er leksjonen «Bygge et gyldig testsett» gratis?
Ja – hele teksten i «Bygge et gyldig testsett» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av AI-agenter-kurset, kan du oppgradere til CoddyKit PRO. Kurset i AI-agenter inneholder totalt 4 leksjoner.
Hva lærer jeg i «Bygge et gyldig testsett»?
Sett sammen 50–200 kvalitetssikrede par med inndata og forventede utdata som dekker bredden i reell bruk. Du øver på AI-agenter med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med AI-agenter?
Ingen tidligere erfaring er nødvendig. AI-agenter på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Bygge et gyldig testsett»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne AI-agenter-leksjonen?
Ja. Alle AI-agenter-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Evalueringsdrevet utvikling av agenter
- Bygge et gyldig testsett
- Fallgruver ved LLM-som-dommer
- Benchmarkpakker: SWE-Bench, GAIA, ToolBench