AI-agents bouwen met OpenAI: een praktische gids
"AI-agent" is een beladen term geworden. Ontdaan van de hype is een agent iets eenvoudigs: een taalmodel dat kan besluiten tools aan te roepen, naar de resultaten kijkt en doorgaat tot een taak klaar is. Die kleine verschuiving — van "tekst genereren" naar "acties uitvoeren in een loop" — is wat een chatbot verandert in iets dat daadwerkelijk werk afmaakt.
Wat een agent eigenlijk is
Een gewone LLM-aanroep neemt tekst in en geeft tekst terug. Een agent verpakt die aanroep in drie extra dingen:
- Tools — functies die het model mag aanroepen (een database doorzoeken, een e-mail versturen, een bestand lezen, een factuur boeken).
- Een loop — het model roept een tool aan, jij voert die uit, je geeft het resultaat terug, en het bepaalt de volgende stap.
- Een stopconditie — de loop eindigt zodra het model een definitief antwoord geeft in plaats van nog een tool-aanroep.
Dat is het hele idee. Al het andere is techniek rondom die drie onderdelen.
De kern-loop
Met de OpenAI-API ziet de loop er ongeveer zo uit:
const tools = [/* je functie-schema's */];
let messages = [{ role: "user", content: task }];
while (true) {
const res = await client.chat.completions.create({
model: "gpt-4.1",
messages,
tools,
});
const msg = res.choices[0].message;
messages.push(msg);
if (!msg.tool_calls) break; // model gaf een definitief antwoord
for (const call of msg.tool_calls) {
const result = await runTool(call.function.name, call.function.arguments);
messages.push({
role: "tool",
tool_call_id: call.id,
content: JSON.stringify(result),
});
}
}
Alles wat moeilijk is aan agents zit verstopt in runTool en in wat je in tools stopt — niet in de loop zelf.
Lessen uit de praktijk
Een paar dingen die consequent uitmaken zodra een agent de demofase verlaat:
- Smalle tools verslaan slimme prompts. Een goed benoemde tool met een strak schema haalt hele categorieën fouten weg.
create_invoice(vendor, amount, vat_rate)is veel betrouwbaarder dan "regel de boekhouding maar". - Houd bij onomkeerbare acties altijd een mens in de loop. Laat de agent voorstellen; laat een mens bevestigen. Deze ene regel voorkomt de meeste rampen.
- Log elke stap. Bewaar de volledige berichtgeschiedenis per run. Als een agent iets vreemds doet, is de trace de enige manier om te begrijpen waarom.
- Stel een harde limiet op het aantal iteraties in. Loops kunnen blijven draaien. Begrens ze en faal luid als de limiet wordt bereikt.
Waar te beginnen
Bouw geen algemene "doe-alles"-agent. Kies één saaie, repetitieve taak met een duidelijke succesconditie — supporttickets categoriseren, velden uit documenten halen, een eerste concept-antwoord opstellen — en geef de agent precies de tools die daarvoor nodig zijn. Een smalle agent die betrouwbaar een uur per dag bespaart, is meer waard dan een indrukwekkende demo die niemand in productie vertrouwt.
Wil je hulp bij het ontwerpen of uitrollen van een agent voor een specifieke workflow? Neem contact op.