Claude Architect · Les

Generalisatie versus herhaling

Het model past het patroon toe op nieuwe gevallen

Les 3 van 413 stappen

Generalisatie versus herhaling is een gratis Claude Architect-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Claude Architect. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Claude Architect bevat in totaal 4 lessen.

Het kernidee

Few-shot-prompting betekent dat u een handvol uitgewerkte voorbeelden rechtstreeks in de prompt zet. Maar dit is het belangrijkste inzicht dat architecten moeten internaliseren:

Het model onthoudt uw voorbeelden niet en speelt ze niet opnieuw af. Het generaliseert het onderliggende patroon en past het toe op volledig nieuwe invoer die het nog nooit heeft gezien.

Goede voorbeelden zijn leraren, geen opzoektabel. Dit ene onderscheid bepaalt elke ontwerpkeuze in deze les.

Herhaling versus generalisatie

Stel dat u Claude twee voorbeelden geeft waarin supporttickets worden geclassificeerd als billing of technical.

  • Herhaling (het verkeerde denkmodel): het model kan alleen invoer verwerken die bijna identiek is aan uw voorbeelden.
  • Generalisatie (wat er werkelijk gebeurt): het model leidt de regel achter de labels af en classificeert een volledig nieuw ticket correct.

Het is uw taak voorbeelden te schrijven die de regel duidelijk maken, niet om elke mogelijke invoer af te dekken.

Waarom few-shot werkt

Het informatieblad is expliciet: few-shot-prompting gebruikt 2-4 gerichte voorbeelden per onduidelijkheid, en het model generaliseert; het herhaalt niet alleen.

Het is het krachtigste hulpmiddel voor vier taken:

  • Consistentie tussen veel aanroepen
  • Randgevallen die u met woorden alleen niet goed kunt vastleggen
  • De uitvoeropmaak die u elke keer wilt
  • Hallucinaties verminderen door het gedrag te verankeren

U leert het model de vorm; het model vult de rest in.

Voorbeelden staan in berichten

Few-shot-voorbeelden worden als eerdere beurten doorgegeven in de array messages. Onthoud: het model houdt geen toestand bij, dus u moet bij elk verzoek de VOLLEDIGE geschiedenis (inclusief voorbeelden) meesturen.

Elk voorbeeld bestaat uit een gebruikersbeurt, gevolgd door de ideale assistentbeurt. De nieuwe, ongeziene invoer wordt de laatste gebruikersbeurt waarop het model moet generaliseren.

import anthropic

client = anthropic.Anthropic()

resp = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=256,
    system="Classify each ticket as 'billing' or 'technical'. Reply with one word.",
    messages=[
        {"role": "user", "content": "My card was charged twice."},
        {"role": "assistant", "content": "billing"},
        {"role": "user", "content": "The app crashes on launch."},
        {"role": "assistant", "content": "technical"},
        # NEW, unseen case — the model generalizes the pattern:
        {"role": "user", "content": "I was promised a refund but never received it."},
    ],
)
print(resp.content[0].text)

Leg de beslissingsgrens vast

Om het model goed te laten generaliseren, moeten uw 2-4 voorbeelden de beslissingsgrens in kaart brengen en niet uit bijna-duplicaten bestaan.

Drie vrijwel identieke factureringstickets leren het model nauwelijks iets extra's. Kies in plaats daarvan voorbeelden aan weerszijden van de grens en één lastig geval dat verduidelijkt waar de grens ligt.

Diverse voorbeelden die de grens definiëren leiden tot generalisatie. Overbodige voorbeelden nodigen alleen uit tot herhaling.

Expliciete criteria zijn beter dan meer voorbeelden

Few-shot is krachtig, maar werkt het best samen met expliciete criteria. Het informatieblad zet een precieze regel zoals "markeer een opmerking alleen wanneer deze de code tegenspreekt" tegenover vage aanwijzingen zoals "wees preciezer".

Combineer een scherpe regel in de system-prompt met enkele voorbeelden die deze regel op moeilijke gevallen demonstreren. De regel beschrijft de bedoeling; de voorbeelden kalibreren het oordeel.

system = (
    "You review code comments. "
    "Flag a comment ONLY when it contradicts the code it describes. "
    "Do not flag style, tone, or outdated-but-harmless notes."
)

messages = [
    {"role": "user", "content": "# returns the sum\ndef f(a,b): return a*b"},
    {"role": "assistant", "content": "FLAG: comment says sum, code multiplies."},
    {"role": "user", "content": "# legacy helper\ndef g(x): return x+1"},
    {"role": "assistant", "content": "OK: comment does not contradict the code."},
]

De uitvoeropmaak generaliseren

Een van de betrouwbaarste toepassingen van few-shot is het aanleren van een exacte uitvoeropmaak. Toon de structuur twee of drie keer en het model reproduceert deze voor elke nieuwe invoer.

Maar wanneer het contract gegarandeerd moet zijn, gaat u van voorbeelden naar afdwinging: tool_use met een JSON Schema elimineert syntaxisfouten en dwingt verplichte velden af. Few-shot vormt de inhoud; gestructureerde uitvoer garandeert de omhulling.

tools = [{
    "name": "record_ticket",
    "description": "Store a classified support ticket.",
    "input_schema": {
        "type": "object",
        "properties": {
            "category": {"type": "string", "enum": ["billing", "technical", "other"]},
            "priority": {"type": "string", "enum": ["low", "high"]},
        },
        "required": ["category", "priority"],
    },
}]

# tool_choice='any' guarantees the model emits structured output, not prose.
# Few-shot examples still teach HOW to choose the category.

Beperk het schema niet te sterk

Wanneer u few-shot combineert met gestructureerde uitvoer, moet u één harde regel uit het informatieblad volgen: markeer een veld ALLEEN als verplicht wanneer het altijd aanwezig is.

Als u een mogelijk ontbrekend veld verplicht maakt, zal het model een waarde verzinnen om aan het schema te voldoen — precies het tegenovergestelde van goede generalisatie. Gebruik voor uitbreidbare velden een enum met een waarde "other" plus een detailveld met vrije tekst.

"input_schema": {
    "type": "object",
    "properties": {
        "category": {"type": "string",
                     "enum": ["billing", "technical", "other"]},
        # captured only when category == 'other' — NOT required
        "other_detail": {"type": "string"},
    },
    # require only what is ALWAYS present
    "required": ["category"],
}

Meer voorbeelden zijn niet altijd beter

De richtlijn is 2-4 voorbeelden per onduidelijkheid — geen twintig. Waarom die limiet?

  • Lange voorbeeldblokken maken de context onnodig groot en veroorzaken lost-in-the-middle: het model let meer op het begin en einde dan op het midden, waardoor voorbeelden in het midden minder invloed hebben.
  • Twintig overbodige voorbeelden sturen aan op herhaling en verspillen tokens.

Als enkele goede voorbeelden plus een duidelijke regel niet genoeg zijn, ligt de oplossing meestal in een scherpere regel of een beter gekozen voorbeeld — niet in meer voorbeelden.

Wanneer few-shot niet kan helpen

Generalisatie kent grenzen. Als de benodigde informatie simpelweg ontbreekt in de bron, kan geen enkel voorbeeld deze tevoorschijn toveren — net zoals opnieuw proberen met feedback opmaakfouten herstelt, maar geen feiten kan terughalen die er nooit waren.

Few-shot kalibreert het oordeel en de vorm op basis van de informatie waarover het model beschikt. Het verzint geen ontbrekende gegevens. Als u het dat toch vraagt, ontstaan zelfverzekerde hallucinaties — precies wat we met few-shot proberen te verminderen.

Voorbeelden als herbruikbare middelen

Omdat voorbeelden generaliseren, wordt een kleine, goed samengestelde verzameling een duurzaam middel. Leg ze in Claude Code vast op een plek waar het team ze opnieuw kan gebruiken:

  • In het projectbestand ./CLAUDE.md of een bestand in .claude/rules/ (gedeeld via VCS), zodat teamgenoten hetzelfde gekalibreerde gedrag overnemen.
  • Een padgebonden regelbestand laadt voorbeelden alleen bij het bewerken van overeenkomende bestanden — dat bespaart context in vergelijking met één monolithische prompt.

Stel het één keer samen; het patroon generaliseert naar elke toekomstige invoer.

---
paths: ["**/*.sql"]
---
# SQL review examples (loaded only when editing SQL)

Flag a query ONLY when it can return wrong rows.

Example — FLAG:
  SELECT * FROM orders WHERE status = 'paid' OR amount > 0
  (OR widens the filter; likely a bug)

Example — OK:
  SELECT id FROM orders WHERE status = 'paid' AND amount > 0

Snelle controle

Een architect bouwt een ticketclassificator en vreest dat het model alleen invoer verwerkt die er precies uitziet als de few-shot-voorbeelden. Welke ontwerpkeuze zorgt het best voor correcte generalisatie naar nieuwe, ongeziene tickets?

Samenvatting

Belangrijkste punten:

  • Few-shot-voorbeelden zorgen ervoor dat het model het patroon generaliseert in plaats van het te onthouden en te herhalen.
  • Gebruik 2-4 gerichte voorbeelden die de grens definiëren per onduidelijkheid — diversiteit is belangrijker dan volume.
  • Combineer voorbeelden met expliciete criteria; scherpe regels zijn beter dan vage instructies en dan steeds meer voorbeelden toevoegen.
  • Ga voor gegarandeerde structuur over op tool_use + JSON Schema — maar maak een veld alleen verplicht als het altijd aanwezig is, anders gaat het model verzinnen.
  • Few-shot vermindert hallucinaties en dwingt opmaak en consistentie af; het kan geen informatie terughalen die ontbreekt in de bron.
  • Stel voorbeelden één keer samen in een gedeelde, padgebonden configuratie, zodat het gekalibreerde gedrag naar elke toekomstige invoer generaliseert.
Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
26
Lessen
104

Veelgestelde vragen

Is de les “Generalisatie versus herhaling” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Claude Architect, waaronder “Generalisatie versus herhaling”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Claude Architect bevat in totaal 4 lessen.

Wat leer ik in “Generalisatie versus herhaling”?

Het model past het patroon toe op nieuwe gevallen Je oefent met Claude Architect door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Claude Architect te beginnen?

Ervaring vooraf is niet nodig. Claude Architect op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “Generalisatie versus herhaling”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Claude Architect?

Ja. Elke les over Claude Architect bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Waarom 2-4 voorbeelden werken
  2. Voorbeelden voor indeling en randgevallen
  3. Generalisatie versus herhaling
  4. Few-shot om hallucinaties te verminderen
← Terug naar Claude Architect