Je eerste agent bouwen
Je eerste werkende agent met de Claude API.
Doel: een werkende agent draaien die een echte bedrijfstaak uitvoert. We bouwen op van een
losse prompt naar een eenvoudige agent.
Bijbehorende code: code/agent_mvp.py.
Eerst: een losse prompt (de bouwsteen)
Alles begint met één API-aanroep. Dit is de kern die je honderden keren zult gebruiken:
import os
from dotenv import load_dotenv
import anthropic
load_dotenv("code/.env")
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=1000,
system="Je bent een ervaren e-commerce copywriter. Schrijf wervende, eerlijke teksten.",
messages=[
{"role": "user", "content": "Schrijf een productbeschrijving voor een eiken eettafel."}
],
)
for block in response.content:
if block.type == "text":
print(block.text)
Drie dingen om te onthouden:
system= wie de agent is en wat de regels zijn (je belangrijkste stuurmiddel).messages= het gesprek; begint altijd met eenuser-bericht.response.content= een lijst blokken; pak detext-blokken eruit.
Dit is geen agent — het is één vraag, één antwoord. Maar het is wél de motor van alles.
Adaptive thinking & effort aanzetten
Voor serieuzer werk laat je het model nadenken vóór het antwoordt. Bij Opus 4.8 doe je dat met adaptive thinking (het model bepaalt zelf hoe diep) en het effort-niveau:
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=2000,
thinking={"type": "adaptive"}, # model denkt na waar nodig
output_config={"effort": "high"}, # diepte/kosten-niveau: low|medium|high|xhigh|max
system="...",
messages=[...],
)
Let op (Opus 4.8/4.7): gebruik géén
temperature,top_p, ofbudget_tokens— die zijn
verwijderd en geven een foutmelding. Sturen doe je via je prompt en heteffort-niveau.
Van prompt naar agent: een gestructureerde uitvoer
Een agent moet vaak een betrouwbaar, machine-leesbaar resultaat geven, niet alleen losse tekst. Daarvoor gebruik je messages.parse() met een schema (via Pydantic). Zo krijg je gegarandeerd geldige, gestructureerde data terug:
from pydantic import BaseModel
class Producttekst(BaseModel):
titel: str
beschrijving: str
bullets: list[str]
seo_keywords: list[str]
response = client.messages.parse(
model="claude-opus-4-8",
max_tokens=2000,
messages=[{"role": "user", "content": "Maak een listing voor een eiken eettafel."}],
output_format=Producttekst,
)
resultaat = response.parsed_output # een gevalideerd Producttekst-object
print(resultaat.titel)
print(resultaat.bullets)
Dit is enorm krachtig voor een bedrijf: je kunt de uitvoer direct in een database, webshop of e-mail stoppen, zonder gepruts met tekst parsen.
Het verschil dat een agent maakt: meerdere taken zelfstandig
agent_mvp.py laat een eerste vorm van autonomie zien: je geeft de agent een lijst taken en een rol, en hij verwerkt ze één voor één, met logging en een kostenteller. Het is nog geen volledige tool-gebruikende loop (dat is module 05 en 06), maar het toont het patroon:
voor elke taak in de werklijst:
laat de agent de taak uitvoeren
valideer en bewaar het resultaat
tel de kosten op
stop als de dagbudget-limiet bereikt is
Draai het:
python code/agent_mvp.py
Je ziet de agent een setje productbeschrijvingen genereren, netjes gestructureerd, met een kostenoverzicht aan het eind. Pas de WERKLIJST bovenin het bestand aan naar jouw eigen bedrijfstaak.
De system prompt: je belangrijkste gereedschap
90% van de kwaliteit van je agent zit in de system prompt. Een goede system prompt bevat:
- Rol — "Je bent een ervaren e-commerce copywriter gespecialiseerd in meubels."
- Doel — "Schrijf teksten die converteren én eerlijk zijn."
- Stijl & regels — "Toon: warm en deskundig. Nooit overdrijven. Altijd 3–5 bullets."
- Grenzen — "Verzin geen specificaties die je niet weet. Bij twijfel: vermeld het niet."
- Uitvoerformaat — "Geef titel, beschrijving, bullets en keywords."
Gebruik het sjabloon als startpunt. Itereer: draai, bekijk de uitvoer, verbeter de prompt, herhaal. Dit "prompt-tunen" is een kernvaardigheid.
Tip voor Opus 4.8: het model volgt instructies zeer letterlijk en is voorzichtig met
overdrijven. Schrijf je instructies als heldere feiten en richtlijnen, niet als schreeuwerige
"JE MOET ALTIJD..."-commando's — dat werkt averechts.
Veelgemaakte beginnersfouten
max_tokenste laag → antwoord wordt afgekapt. Zet ruim (1.000–4.000 voor tekst).- Geen
.env→ sleutel hardcoded in je script. Doe dat nooit. - Alles op Opus → duur. Gebruik Haiku voor simpel werk (module 03).
- Geen logging → je weet niet wat je agent deed of wat het kostte. Log altijd (module 10).
Jouw opdracht
- Draai
agent_mvp.pyongewijzigd. - Vervang de
WERKLIJSTen de system prompt door jóuw bedrijfstaak uit module 02. - Itereer op de system prompt tot de uitvoer goed genoeg is om aan een klant te tonen.
- Lever de uitvoer één keer "met de hand" aan een echte (potentiële) klant — feedback is goud.