AI-agenten · Les

Tooluitvoer valideren (Pydantic)

Parse elke tooluitvoer via een Pydantic-model — meld fouten direct bij een ongeldig antwoord.

Les 4 van 414 stappen

Tooluitvoer valideren (Pydantic) is een gratis AI-agenten-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject AI-agenten. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus AI-agenten bevat in totaal 4 lessen.

Delen van deze les zijn nog niet vertaald en worden in het Engels weergegeven.

Vertrouw, maar controleer

De uitvoer van tools komt uit de buitenwereld — API's, webpagina's, modellen. Een verkeerd gevormd of onverwacht antwoord kan je agent laten crashen of, erger nog, ongemerkt verkeerde gegevens aan de LLM doorgeven.

Valideer elke uitvoer van een tool aan de hand van een schema.

Pydantic-modellen

Definieer de verwachte structuren:

from pydantic import BaseModel, HttpUrl

class SearchResult(BaseModel):
    title: str
    url: HttpUrl
    snippet: str
    score: float = 0.0

Validate at the Boundary

from pydantic import ValidationError

def search(query):
    raw = requests.post('https://api.tavily.com/search', json={'query': query}).json()
    results = []
    for r in raw.get('results', []):
        try:
            results.append(SearchResult.model_validate(r))
        except ValidationError as e:
            log.warning('Bad search result skipped: %s', e)
    return results

Lijsten met modelvalidatie

Valideer het volledige antwoord:

from pydantic import BaseModel
class SearchResponse(BaseModel):
    results: list[SearchResult]

response = SearchResponse.model_validate(raw)

Veldvalidators

Aangepaste controles binnen velden:

from pydantic import field_validator

class SearchResult(BaseModel):
    score: float

    @field_validator('score')
    @classmethod
    def score_in_range(cls, v):
        if not 0 <= v <= 1:
            raise ValueError('score out of [0,1]')
        return v

Strikt versus soepel

Standaard zet Pydantic typen automatisch om (een tekenreeks -> een geheel getal als dat mogelijk is). Gebruik strikte controles voor:

from pydantic import StrictInt

class User(BaseModel):
    age: StrictInt   # rejects '25' (string)

Default Values for Missing Fields

class Tool(BaseModel):
    name: str
    description: str = 'No description provided'   # fallback

Gestructureerde uitvoer van LLM's valideren

Dwing het model om JSON te retourneren die aan een Pydantic-schema voldoet — zie de les over gestructureerde uitvoer. Valideer opnieuw aan de grens als extra verdedigingslaag.

Argumenten van tools valideren

Valideer de tool_call.arguments van het model voordat je deze uitvoert:

class SearchArgs(BaseModel):
    query: str
    k: int = 5

args = SearchArgs.model_validate_json(tool_call.function.arguments)
results = search(args.query, args.k)

Validatiefouten als toolresultaten

Als de validatie mislukt, retourneer je de fout aan het model, zodat het opnieuw kan proberen met gecorrigeerde argumenten:

try:
    args = SearchArgs.model_validate_json(...)
except ValidationError as e:
    return {'error': f'Invalid arguments: {e}'}

Versiebeheer van schema's

Wanneer het uitvoerschema van een tool verandert, geef je het een versie:

class SearchResultV2(BaseModel):
    title: str
    url: HttpUrl
    relevance: float       # was 'score' in v1

JSON-schema genereren vanuit Pydantic

Leid voor schemadefinities van tools het schema af van je Pydantic-klasse:

schema = SearchArgs.model_json_schema()
# Use directly as the 'parameters' for an OpenAI tool definition.

Validatiedoel

Waarom gebruik je Pydantic voor de uitvoer van elke tool?

Samenvatting

Pydantic aan elke grens: toolargumenten die binnenkomen, tooluitvoer die naar buiten gaat en gestructureerde LLM-uitvoer. Duidelijke fouten zijn beter dan onopgemerkte beschadiging.

Gratis beginnen

Leer AI-agenten 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
60
Lessen
239

Veelgestelde vragen

Is de les “Tooluitvoer valideren (Pydantic)” gratis?

Ja — de volledige tekst van “Tooluitvoer valideren (Pydantic)” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus AI-agenten wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus AI-agenten bevat in totaal 4 lessen.

Wat leer ik in “Tooluitvoer valideren (Pydantic)”?

Parse elke tooluitvoer via een Pydantic-model — meld fouten direct bij een ongeldig antwoord. Je oefent met AI-agenten 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 AI-agenten te beginnen?

Ervaring vooraf is niet nodig. AI-agenten 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 4 van 4.

Hoe lang duurt de les “Tooluitvoer valideren (Pydantic)”?

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 AI-agenten?

Ja. Elke les over AI-agenten 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. Idempotente tools en side effects
  2. Retries met exponentiële backoff
  3. Time-outs en circuit breakers
  4. Tooluitvoer valideren (Pydantic)
← Terug naar AI-agenten