Kategoriske eksempler
Vis eksempler på, hvad der skal rapporteres, og hvad der skal ignoreres
Kategoriske eksempler er en gratis Claude Architect-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Claude Architect, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Claude Architect-kurset indeholder 4 lektioner i alt.
Hvorfor kategoriske eksempler er vigtige
Når du giver Claude en opgave med en uklar grænse, virker vage instruktioner som "vær mere præcis" sjældent. Modellen kan ikke læse dine tanker om, hvor grænsen går.
Den pålidelige løsning er kategoriske eksempler: et lille sæt på 2-4 few-shot-eksempler, der viser konkrete tilfælde af, hvad der skal rapporteres, og hvad der skal ignoreres. Modellen generaliserer fra disse eksempler til nye, ukendte input — den gentager dem ikke bare.
Denne lektion viser, hvordan du opbygger sådanne eksempler til en klassisk arkitektopgave: at afgøre, hvad der er værd at markere, og hvad der blot er støj.
Eksplicitte kriterier slår vage tillægsord
Før du overhovedet tager eksempler i brug, skal du formulere et eksplicit kriterium. Eksplicitte regler slår konsekvent vage tillægsord.
- Vagt: „Gennemgå koden omhyggeligt.“
- Eksplicit: „Markér kun en kommentar, når den modsiger den kode, den beskriver.“
Den eksplicitte version trækker en skarp grænse. Kategoriske eksempler gør derefter grænsen umiskendelig ved at knytte den til konkrete tilfælde på hver side.
system = (
"You review code comments. "
"Flag a comment ONLY when it contradicts the code it describes. "
"Ignore style, tone, and outdated-but-harmless notes."
)Strukturen i et sæt kategoriske eksempler
Et godt sæt har eksempler på begge sider af grænsen, hver med en begrundelse på én linje. To tilfælde, der skal RAPPORTERES, og to, der skal IGNORERES, er nok til de fleste tvetydigheder — 2-4 målrettede eksempler er det ideelle antal.
Hvert eksempel består af tre dele:
- inputtet (det, der vurderes)
- afgørelsen (rapportér / ignorér)
- en kort begrundelse knyttet til dit kriterium
Det er begrundelsen, der lader modellen generalisere korrekt i stedet for blot at matche overfladiske træk.
Gennemarbejdet eksempel: Rapportér eller ignorér
Her er en blok med kategoriske eksempler til opgaven med kommentargennemgang. Bemærk symmetrien: Modsigelser rapporteres; harmløse uoverensstemmelser ignoreres.
EXAMPLES = """
<example verdict="REPORT">
code: return price * 1.2
comment: # applies 10% tax
reason: comment says 10% but code applies 20% (contradiction)
</example>
<example verdict="IGNORE">
code: timeout = 30 # seconds
comment: # seconds
reason: accurate; matches the code
</example>
<example verdict="IGNORE">
code: # TODO: refactor later
comment: # TODO: refactor later
reason: stylistic note, not a contradiction
</example>
<example verdict="REPORT">
code: if user.is_admin: deny()
comment: # allow admins
reason: comment says allow but code denies (contradiction)
</example>
"""Generalisering, ikke udenadslære
Styrken ved kategoriske eksempler er, at modellen generaliserer. Den behøver ikke et eksempel for hvert muligt input.
Ud fra de fire tilfælde ovenfor lærer Claude reglen „markér semantiske modsigelser, ignorér harmløse uoverensstemmelser“ og anvender den på en helt ny kommentar, den aldrig har set før, f.eks. en docstring, der hævder, at en funktion returnerer en liste, selv om den returnerer en dict.
Det er derfor, few-shot-eksempler er ideelle til ensartethed, kanttilfælde, outputformat og færre hallucinationer.
Fastlæg grænsens kanter
De mest værdifulde eksempler ligger lige på grænsen, hvor beslutningen reelt er svær. Et næsten-matchende tilfælde, der skal IGNORERES, ved siden af et næsten-matchende tilfælde, der skal RAPPORTERES, lærer langt mere end to indlysende tilfælde.
For en researchagent, der afgør, hvilke statistikker der skal fremhæves, kan du f.eks. sammenligne et forældet tal med et aktuelt — og bemærke, at datoer ofte løser tilsyneladende modsigelser, i stedet for at det ene tal blot er forkert.
EXAMPLES = """
<example verdict="REPORT">
fact: "Revenue was $4.1B in FY2024" (source dated 2025-02)
reason: current, sourced, on-topic -> surface it
</example>
<example verdict="IGNORE">
fact: "Revenue was $3.2B" (source dated 2019, no fiscal year)
reason: stale and undated for our scope -> drop, do not treat as a conflict
</example>
"""Eksempler styrer også struktureret output
Kategoriske eksempler passer naturligt sammen med struktureret output. Når afgørelsen skal kunne læses af en maskine, skal du tvinge et værktøjskald igennem, så resultatet altid er gyldig JSON.
Brug tool_choice af typen "any" for at garantere, at modellen kalder et eller andet værktøj (og dermed garantere struktureret output), eller tving den til at bruge ét bestemt værktøj ved navn. Et JSON Schema eliminerer derefter syntaksfejl og håndhæver påkrævede felter.
tools = [{
"name": "record_finding",
"description": "Record a review verdict for one item.",
"input_schema": {
"type": "object",
"properties": {
"verdict": {"enum": ["report", "ignore"]},
"reason": {"type": "string"}
},
"required": ["verdict", "reason"]
}
}]
resp = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=512,
tools=tools,
tool_choice={"type": "any"},
system=system,
messages=[{"role": "user", "content": EXAMPLES + new_item}],
)Kræv kun felter, der altid findes
En subtil fælde: Markér i dit resultat-skema et felt som påkrævet, kun hvis det altid findes. Hvis du kræver et felt, der kan mangle — f.eks. et line_number for resultater, der ikke er knyttet til en bestemt linje — vil modellen opfinde en værdi for at opfylde skemaet.
For kategorier, der kan udvides, skal du bruge en enum plus en „other“-værdi og et fritekstfelt til detaljer. Det holder outputtet struktureret og gør det samtidig udvideligt.
"category": {"enum": ["contradiction", "security", "other"]},
"category_detail": {"type": "string"} # filled when category == other
# line_number is NOT required: many findings are file-levelNår eksempler er det forkerte værktøj
Kategoriske eksempler skærper en vurderingsgrænse. De opfinder ikke manglende oplysninger.
Hvis modellen returnerer et tomt eller forkert resultat, fordi den nødvendige oplysning ganske enkelt mangler i kilden, hjælper flere eksempler ikke — og det gør retry-med-feedback heller ikke. Retry løser format-, struktur- og regnefejl, ikke manglende data.
Skeln mellem et ægte tomt resultat („ingen match fundet“) og en adgangsfejl (kilden kunne ikke læses). Håndtér dem forskelligt i din gendannelseslogik.
Kategoriske eksempler i CLAUDE.md og gennemgange
Indarbejd din politik for rapportering og ignorering dér, hvor arbejdet foregår. Til en CI-gennemgangsopgave skal du placere eksemplerne i projektets CLAUDE.md (delt via VCS), så hver kørsel og hver kollega arver den samme grænse.
I CI skal du køre gennemgangen i en isoleret session (mindre forudindtaget end genereringskonteksten) med -p til ikke-interaktivt output. Eksplicitte kriterier plus kategoriske eksempler er netop måden, du minimerer falske positiver på.
## Review policy (categorical)
REPORT: a comment that contradicts the code it describes.
IGNORE: style nits, tone, outdated-but-harmless TODOs.
Example REPORT -> `# 10% tax` over `price * 1.2`
Example IGNORE -> `timeout = 30 # seconds` (accurate)Sæt det hele sammen
Den fulde opskrift på beslutningen om at rapportere eller ignorere:
- Skriv ét eksplicit kriterium for grænsen.
- Tilføj 2-4 kategoriske eksempler fordelt på begge sider, hvert med en begrundelse.
- Forankr eksempler ved de skarpe grænser, ikke ved de indlysende tilfælde.
- Tving struktureret output med et værktøj, og kræv kun felter, der altid findes.
- Husk: Eksempler former vurderingen, ikke manglende data.
Gør du dette, generaliserer Claude pålideligt din hensigt på tværs af input, det aldrig har set før.
Hurtigt tjek
En review-agent markerer for mange harmløse kommentarer som problemer. Du vil have, at den kun rapporterer reelle modsigelser. Hvilken ændring vil mest pålideligt gøre grænsen skarpere?
Opsamling
Vigtigste pointer:
- Eksplicitte kriterier + kategoriske eksempler slår vage tillægsord ved uklare grænser.
- Brug 2-4 eksempler fordelt på rapportér og ignorér, hvert med en begrundelse; modellen generaliserer, den gentager ikke bare.
- Forankr eksempler ved de skarpe grænser; husk, at datoer ofte løser tilsyneladende modsigelser.
- Kombinér med struktureret output (
tool_choice"any" + JSON Schema); kræv kun felter, der altid findes, og brug enum+"other" for udvidelsesmuligheder. - Eksempler skærper vurderingen, ikke manglende data — fraværende fakta kræver en anden løsning, og et nyt forsøg reparerer kun format- eller regnefejl.
Lær Python med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 26
- Lektioner
- 104
Ofte stillede spørgsmål
Er lektionen “Kategoriske eksempler” gratis?
Ja — alle 3 lektioner i læringssporet Claude Architect, inklusive “Kategoriske eksempler”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Claude Architect-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Kategoriske eksempler”?
Vis eksempler på, hvad der skal rapporteres, og hvad der skal ignoreres Du øver dig i Claude Architect med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Claude Architect?
Der kræves ingen tidligere erfaring. Claude Architect på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Kategoriske eksempler”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Claude Architect-lektion?
Ja. Alle Claude Architect-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Eksplicitte kriterier frem for vage instruktioner
- Kategoriske eksempler
- Alvorlighedskriterier med eksempler
- Reducér falske positiver