Bouwstenen van de Agent SDK
De onderdelen waaruit een agent op basis van een SDK bestaat
Bouwstenen van de Agent SDK is een gratis Claude Architect-les op CoddyKit. Dit is les 1 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.
Wat een SDK-agent echt is
Een Agent SDK-agent is geen enkele API-aanroep. Het is een lus die is opgebouwd uit enkele herbruikbare onderdelen die samenwerken.
In deze les leer je de belangrijkste bouwstenen: de velden van het verzoek, de hulpmiddelen die het model kan aanroepen, de agentlus die alles aanstuurt en het patroon van coördinator + subagents voor grotere taken.
Als je deze onderdelen beheerst, kun je nadenken over vrijwel elke productieagent die het examen je voorlegt.
Het verzoek: model, messages, tools
Elke beurt begint met één verzoek. De belangrijkste velden zijn: model, max_tokens, system, messages, tools en tool_choice.
Het belangrijkste gegeven: het model bewaart GEEN status tussen beurten. Je moet bij elk verzoek de VOLLEDIGE gesprekgeschiedenis in messages meesturen. Er is geen verborgen geheugen aan de serverzijde.
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
system="You are a support agent.",
messages=conversation_history, # FULL history every turn
tools=tools,
tool_choice={"type": "auto"},
)Stopredenen sturen alles aan
Na elk antwoord controleer je stop_reason. Dit vertelt je wat je vervolgens moet doen:
end_turn— het model is klaar.tool_use— voer de gevraagde hulpmiddelen uit, voeg de resultaten toe aan de geschiedenis en ga verder.max_tokens— de uitvoer is afgekapt.stop_sequence— er is een geconfigureerde stoptekst gevonden.
Je bepaalt het verloop van het programma door stop_reason te lezen — nooit door de tekst te doorzoeken op woorden als "klaar" of "afgerond".
Bouwsteen: de agentlus
De agentlus verbindt het verzoek met de stopredenen:
- Verstuur het verzoek.
- Controleer
stop_reason. - Bij
tool_use: voer de hulpmiddelen uit, voeg blokkentool_resulttoe aan de geschiedenis en doorloop de lus opnieuw. - Herhaal dit totdat
end_turn.
De beëindiging wordt via de stopreden door het model aangestuurd. Een iteratielimiet is alleen een vangnet, nooit de primaire manier om te stoppen.
while True:
resp = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
messages=history,
tools=tools,
)
if resp.stop_reason == "end_turn":
break # model decided it is done
if resp.stop_reason == "tool_use":
results = run_tools(resp.content)
history.append({"role": "user", "content": results})Hulpmiddelen: beschrijvingen bepalen de routering
Een hulpmiddel is een actie die het model kan aanroepen. De beschrijving — niet de naam — is het belangrijkste mechanisme waarmee het model het juiste hulpmiddel kiest.
Een goede beschrijving vermeldt het doel, de retourwaarden, de invoerformaten met voorbeelden, randgevallen en grenzen voor toepasbaarheid. Overlappende of vage beschrijvingen leiden tot verkeerde routering.
tool = {
"name": "lookup_order",
"description": (
"Fetch an order by its ID. Use ONLY after the "
"customer identity is verified. Input: order_id like "
"'ORD-10293'. Returns status, items, total_usd. "
"Returns an empty result if the ID does not exist."
),
"input_schema": {
"type": "object",
"properties": {"order_id": {"type": "string"}},
"required": ["order_id"],
},
}Beperk hulpmiddelen tot de rol
Meer hulpmiddelen is niet beter. Ongeveer 4 à 5 hulpmiddelen per agent is optimaal; bij 18 of meer neemt de betrouwbaarheid van de selectie af, omdat beschrijvingen elkaar gaan overlappen en het model verkeerd routeert.
Stem de hulpmiddelenset van elke agent af op diens rol en volg het principe van minimale rechten. Een supportagent kan precies deze hulpmiddelen hebben: get_customer, lookup_order, process_refund, escalate_to_human — en niets anders.
tool_choice: structuur afdwingen
tool_choice bepaalt of en welk hulpmiddel wordt uitgevoerd:
"auto"— het model kiest tekst of een hulpmiddel."any"— het model MOET een hulpmiddel aanroepen, wat gestructureerde uitvoer garandeert.{"type":"tool","name":"X"}— dwingt één specifiek hulpmiddel af.
Door tool_use te combineren met een JSON Schema elimineer je syntaxisfouten en dwing je verplichte velden af — de basis van betrouwbare gestructureerde uitvoer.
resp = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
messages=history,
tools=[extract_invoice_tool],
tool_choice={"type": "any"}, # must emit structured output
)Hooks: deterministische veiligheidsmaatregelen
Prompts sturen gedrag alleen probabilistisch (~90%). Wanneer een fout financiële, juridische of veiligheidsgevolgen heeft, heb je deterministische (100%) handhaving nodig — daarvoor zorgen hooks.
Een PostToolUse-hook onderschept het resultaat van een hulpmiddel voordat het model het ooit ziet. Een hook voor uitgaande aanroepen kan bijvoorbeeld een actie blokkeren die het beleid schendt, zoals een terugbetaling van meer dan $500. Gebruik harde code voor garanties en laat het model de zachte beslissingen nemen.
def post_tool_use_hook(tool_name, tool_input, tool_result):
if tool_name == "process_refund" and tool_input["amount"] > 500:
# Deterministic block - the model never gets to override this
return {"deny": True, "reason": "Refund > $500 needs a human."}
return {"allow": True}Meerdere agents: coördinator + subagents
Voor grotere taken kunnen de bouwstenen worden gecombineerd tot een hub-en-spaaksysteem. Een coördinator splitst de taak op, delegeert aan subagents, voegt resultaten samen, routeert en handelt fouten af.
Belangrijk examenfeit: subagents erven de gesprekgeschiedenis van de coördinator NIET. Alle context moet expliciet in elke prompt van een subagent worden meegegeven. allowedTools van de coördinator moet "Task" bevatten en meerdere aanroepen van Task in één antwoord worden parallel uitgevoerd.
Een subagent definiëren
Elke subagent wordt beschreven door een AgentDefinition: name, description, system_prompt en allowed_tools (minimale rechten).
Omdat er geen gedeeld geheugen is, voegt de coördinator elk feit dat de subagent nodig heeft rechtstreeks toe aan diens prompt — de vraag, de beperkingen en alle gegevens waarmee die moet werken.
research_agent = {
"name": "source_finder",
"description": "Finds and quotes primary sources for one claim.",
"system_prompt": (
"You research ONE claim. Return source URL, exact "
"quote, and publication date. Context is given in full "
"because you do not see prior conversation."
),
"allowed_tools": ["WebSearch", "Read"], # least privilege
}Gestructureerde fouten tussen blokken
De onderdelen blijven alleen betrouwbaar als fouten begrijpelijk zijn. Een algemene "Operation failed" blokkeert herstel; een gestructureerde fout maakt intelligente routering mogelijk.
Goede foutcontext bevat: isError:true, een errorCategory (tijdelijk / validatie / bedrijfsregel / toestemming), isRetryable, een message, de attempted_query en eventuele partial_results. Herstel tijdelijke fouten lokaal in de subagent; escaleer niet-herstelbare fouten met gedeeltelijke resultaten in plaats van de volledige workflow af te breken.
{
"isError": true,
"errorCategory": "transient",
"isRetryable": true,
"message": "Order service timed out",
"attempted_query": "lookup_order(ORD-10293)",
"partial_results": null
}Snelle controle: de lus ontwerpen
Je bouwt een klantenservice-agent met de Agent SDK. Die moet hulpprogramma's aanroepen, meerdere beurten doorgaan en betrouwbaar stoppen. Welk ontwerp sluit het best aan bij de aanbevolen werkwijze van de Agent SDK?
Samenvatting: de bouwstenen
De onderdelen van een SDK-agent:
- Request: model, max_tokens, system, messages, tools, tool_choice. Stuur bij elke beurt de VOLLEDIGE geschiedenis mee — het model bewaart geen toestand.
- Stopredenen: end_turn, tool_use, max_tokens en stop_sequence sturen de besturingsstroom aan — ontleed nooit tekst.
- Agentische lus: beëindiging op basis van het model; limieten voor het aantal iteraties zijn alleen een veiligheidsnet.
- Hulpprogramma's: beschrijvingen regelen de routering; 4–5 per agent, met minimale rechten. tool_choice "any" garandeert gestructureerde uitvoer.
- Hooks: 100% deterministische handhaving van financiële, juridische en veiligheidsregels.
- Coördinator + subagents: hub-en-spaak, zonder overgenomen geschiedenis, context expliciet doorgeven, gestructureerde fouten voor herstel.
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 “Bouwstenen van de Agent SDK” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Claude Architect, waaronder “Bouwstenen van de Agent SDK”, 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 “Bouwstenen van de Agent SDK”?
De onderdelen waaruit een agent op basis van een SDK bestaat 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 1 van 4.
Hoe lang duurt de les “Bouwstenen van de Agent SDK”?
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
- Bouwstenen van de Agent SDK
- Een agent definiëren
- De Task-tool en allowedTools
- Principe van minimale rechten