Modelkeuze voor function calling en tool-gebruik

Door Ivo Donker — samengesteld met AI-ondersteuning (Claude & Gemini) · Laatst bijgewerkt: 7 augustus 2026

Het inzetten van grote taalmodellen voor function calling en tool-gebruik vraagt om een gerichte aanpak. Waar generatieve taken vooral leunen op vlotte taalvaardigheid, stelt taakspecifieke interactie met externe systemen strenge eisen aan de nauwkeurigheid van een model. Dit artikel behandelt de criteria voor het selecteren van modellen die betrouwbaar gestructureerde data genereren en API's aansturen.

De grondslagen van tool-gebruik

Function calling stelt een model in staat om op basis van een gebruikersvraag te bepalen welke externe functie of API aangeroepen moet worden. Het model ontvangt een definitie van beschikbare functies in een specifiek schema, zoals JSON Schema, en retourneert een gestructureerde aanroep met de juiste argumenten. Dit verschilt fundamenteel van vrije tekstgeneratie, omdat de uitvoer exact moet voldoen aan de syntaxis die het doelsysteem verwacht.

Een model dat faalt in deze nauwkeurigheid veroorzaakt direct fouten in de achterliggende applicatielogica. Het selecteren van het juiste model vraagt daarom om inzicht in de manier waarop modellen getraind zijn op het interpreteren van schema's en het correct vullen van parameters. De aanname dat elk groot model automatisch geschikt is voor deze taak, blijkt in de praktijk onjuist; modelarchitecturen verschillen sterk in hun vermogen om complexe en geneste parameterschema's foutloos te verwerken.

Architectonische eisen aan modellen

Niet elk model beschikt over de noodzakelijke capaciteiten voor betrouwbaar tool-gebruik. Bij de selectie spelen specifieke architectonische eigenschappen een doorslaggevende rol. Modellen moeten instructies nauwgezet opvolgen en tegelijkertijd context behouden over meerdere opeenvolgende stappen in een proces.

Syntaxiskalibratie en JSON-generatie

De output van een model tijdens function calling moet syntactisch correct zijn. Een ontbrekend haakje of een verkeerd geplaatst aanhalingsteken leidt tot een mislukte API-aanroep. Modellen die specifiek zijn fijngeturnd op het genereren van geldige JSON-structuren hebben hier een aantoonbaar voordeel. Dit hangt nauw samen met de technieken die worden beschreven op structured output, waar dieper wordt ingegaan op het afdwingen van vaste uitvoerformaten.

Aanname hierbij is dat modellen die goed presteren op algemene programmeertaken ook automatisch beter zijn in function calling. Hoewel er een sterke correlatie bestaat, vertoont deze hypotheek in de praktijk uitzonderingen. Sommige modellen met sterke programmeercapaciteiten worstelen alsnog met het contextualiseren van API-definities in natuurlijke taal.

Contextvenster en parametercomplexiteit

Naarmate een applicatie groeit, neemt ook het aantal beschikbare tools toe. Een systeem kan honderden verschillende functies bevatten, elk met tientallen parameters. Het model moet al deze definities in het contextvenster kunnen verwerken zonder dat het de focus verliest op de kerninstructie. Grotere contextvensters bieden ruimte voor uitgebreide tool-definities, maar introduceren ook risico's op 'lost in the middle'-gedrag, waarbij het model instructies uit het midden van de prompt negeert.

De beperking van veel open-source en propriëtaire modellen is dat hun nauwkeurigheid significant daalt zodra het aantal tools boven een bepaalde drempel komt. Dit vraagt om zorgvuldige routering van tools in plaats van het aanbieden van alle functies tegelijkertijd aan het model.

Evaluatiecriteria voor selectie

Het vaststellen van de juiste modelkeuze vereist een gestructureerde evaluatie. Het meten van prestaties op het gebied van tool-gebruik kan niet uitsluitend leunen op algemene benchmarks zoals MMLU of HumanEval. Er zijn specifieke testsuites nodig die de betrouwbaarheid van API-aanroepen meten.

Latentiefactoren en doorvoer

Function calling maakt vaak deel uit van synchrone gebruikersinteracties, zoals chatbots of automatische assistenten. De snelheid waarmee een model een tool-aanroep genereert is daardoor cruciaal. Kleinere modellen zijn doorgaans sneller, maar leveren soms in op het correct begrijpen van ambigue parameterdefinities. Grotere modellen bieden meer betrouwbaarheid, maar introduceren vertraging die de gebruikerservaring negatief beïnvloedt.

Een alternatief voor het inzetten van één groot, traag model is het gebruik van een getagd tweetrapsarchitectuur. Hierbij beoordeelt een klein, snel model welke tool nodig is, waarna een groter model de complexere argumenten vult. Deze aanpak verlaagt de totale latentie, maar verhoogt de complexiteit van de applicatiearchitectuur.

Betrouwbaarheid en determinisme

In productieomgevingen is voorspelbaarheid vereist. Modellen vertonen van nature een bepaalde mate van stochastisch gedrag. Het verlagen van de 'temperature'-parameter naar nul helpt om deterministische resultaten te bereiken, maar lost niet op dat modellen soms hallucinante parameterwaarden invullen voor velden die niet in de context voorkomen.

Voor bredere processen waarin modellen autonoom beslissingen nemen over meerdere opeenvolgende stappen, is function calling slechts een onderdeel van een groter geheel. Wie zo'n opzet ontwerpt, kan voor achtergrondinformatie over autonome workflows terecht bij modellen voor agents, waar de randvoorwaarden voor agent-systemen worden besproken.

Vergelijking van modeltypen

De markt kent momenteel globaal drie categorieën modellen die in aanmerking komen voor function calling: grote propriëtaire cloudmodellen, open-weights modellen en fijngeturnde taakspecifieke varianten.

Overzicht van modelcategorieën voor tool-gebruik
Modelcategorie Sterke punten Zwakke punten
Propriëtaire cloudmodellen Hoge nauwkeurigheid bij complexe schema's, grote context Hoge kosten, afhankelijkheid van externe leverancier, privacy-risico's
Open-weights modellen Volledige controle, lokaal draaibaar, lagere operationele kosten Vragen om stevige hardware, wisselende kwaliteit per model
Taakspecifiek fijngeturnde modellen Optimaal rendement op een beperkte set tools Hoge initiële trainingskosten, inflexibel bij veranderende API's

Propriëtaire modellen blinken uit in het begrijpen van vage of slecht gedocumenteerde tool-definities. Ze corrigeren zelfstandig kleine onnauwkeurigheden in de vraag van de gebruiker. Het nadeel is de afhankelijkheid van de uptime van de API-leverancier en mogelijke compliance-problemen bij het versturen van gevoelige bedrijfsdata naar externe servers.

Open-weights modellen bieden het voordeel van lokale hosting, wat noodzakelijk is binnen sectoren met strikte privacy-eisen. De zwakte ligt in de configuratie: het correct instellen van de systeemprompts en het parseren van de uitvoer vraagt om extra ontwikkelwerk aan de applicatiekant. Daarnaast vallen open-weights modellen vaker terug in vrije tekstgeneratie in plaats van het aanhouden van het afgedwongen schema.

Implementatierisico's en mitigatie

Het implementeren van function calling brengt specifieke risico's met zich mee die losstaan van de algemene modelprestaties. Deze risico's bevinden zich met name op het snijvlak van beveiliging en datavalidatie.

Een bekend risico is prompt injection via externe data. Wanneer een model inhoud ophaalt van een externe website of database en deze data verwerkt in de context, kan kwaadaardige input instructies bevatten die het model aanzetten tot het aanroepen van ongeautoriseerde functies. Het model kan bijvoorbeeld worden misleid om een verwijderingsfunctie aan te roepen in een database.

Om dit risico te beperken is het verplicht om modeluitvoer nooit blind te vertrouwen. Elke gegenereerde API-aanroep moet door een deterministische validatielaag worden gehaald voordat deze daadwerkelijk wordt uitgevoerd. Deze validatielaag controleert of de opgevraagde actie past binnen de rechten van de huidige gebruiker en of de parameters voldoen aan strikte veiligheidsmarges.

Praktische richtlijnen voor de keuze

Bij het maken van een definitieve modelkeuze voor function calling dient een organisatie iteratief te werk te gaan. Start niet direct met het grootste en duurste model, maar begin met een representatieve testset van eigen API-definities en veelvoorkomende gebruikersvragen.

Meet systematisch hoeveel procent van de testvragen resulteert in een foutloze tool-aanroep. Houd hierbij rekening met randgevallen, zoals ontbrekende verplichte parameters of tegenstrijdige instructies. Vaak blijkt dat een kleiner open-weights model, voorzien van een precieze systeemprompt en een gestructureerde parser, net zo goed presteert als een duur propriëtair model op een afgebakende taak.

Wanneer de technische inrichting van de API-aanroepen en de communicatielagen tussen applicatie en model verder worden geoptimaliseerd, is het raadzaam om ook de onderliggende protocollen te evalueren. Technische details over het inrichten van gestructureerde communicatielijnen zijn te vinden via function calling, waar dieper wordt ingegaan op de technische protocollen achter modelgestuurde API-integraties.

De keuze voor een model voor function calling is daarmee nooit een eenmalige beslissing, maar een continu proces van testen, meten en bijstellen naarmate API's en modelversies elkaar opvolgen.