Tool-use / function calling uitgelegd | EIGHTY8

Wat is tool-use (function calling)? Een model dat een functie of API aanroept in plaats van alleen tekst te geven.

Tool-use, ook function calling genoemd, is het mechanisme waarmee een taalmodel aangeeft dat hij een functie in een extern systeem wil aanroepen in plaats van alleen tekst te produceren. Het model kiest de tool uit een aangeboden lijst en vult de parameters; de toepassing voert de aanroep echt uit en geeft het resultaat terug aan het model.

Stel dat een medewerker vraagt: 'Zet het klantgesprek van donderdag op tien uur en mail hem dat.' Zonder tools formuleert het model een hoffelijk antwoord dat niets doet. Met tool-use gebeurt dit: de toepassing biedt het model een lijst functies aan (agenda-invoer maken, mail opstellen) en het model antwoordt niet met een zin maar met een gestructureerd verzoek: welke functie, welke datum, welke tijd, naar wie. De toepassing controleert dat verzoek, voert het uit en meldt het resultaat.

Waarom dit verschil maakt: een model dat zelf zijn woorden als actie behandelt, vertrouwt op tekstpatronen en maakt fouten die niemand ziet. Function calling dwingt de actie door een echte poort met echte controles: parameters worden gevalideerd, rechten worden getoetst, en wat er gebeurt is logbaar en terug te draaien. Het model stelt voor, het systeem doet. Die scheiding is de reden dat agents met betrekkelijk veel vertrouwen kunnen werken.

De grens is evenzeer het vermelden waard: het model weet niet of een tool slaagt, tenzij de toepassing dat terugmeldt; bij een fout moet er een vaststaand pad zijn. Opnieuw proberen, een alternatief pakken of een mens vragen. En het aanbod van tools bepaalt wat een agent kan: drie functies betekent drie vaardigheden, niet een eigen wil die erbij wordt bedacht.

De moeite waard is het bij elke taak waar het model iets moet dóén in plaats van iets te zeggen: een afspraak inleggen, een status opzoeken, een document in de drive zetten, een klant informeren. Zodra 'het antwoord' een actie in een systeem is, is dit het juiste mechanisme. Met validatie en rechten om de aanroep heen. Het is tevens het verschil tussen een assistent die praat en een assistent die afhandelt.

Niet nodig is het bij taken die puur taal zijn: samenvatten, herformuleren, classificeren, advies opstellen. Die los je met tekst alleen op, en extra functies voegen dan alleen onderhoud toe. Let bovendien op de schaduwkant: elke tool is een deur in je systeem, met rechten, logging en risico's. Een uitgebreide gereedschapskist maakt een agent niet slimmer, maar wel breder in wat er mis kan gaan.

We bouwen functies met een beperkte, expliciete taak: wat mag deze aanroep doen, welke rechten horen erbij, wat gebeurt er bij een fout. Parameters worden gevalideerd voordat iets wordt uitgevoerd, schrijfacties met gevolgen gaan achter een controlepunt, en alles wat een tool doet is te herleiden in logs. Zo profiteert de agent van de vrijheid om te kiezen, terwijl het bedrijf de grip houdt op wat er werkelijk gebeurt.

Wat is het verschil tussen tool-use en een gewone API-koppeling?

De richting van het besluit. Bij een klassieke koppeling schrijft een ontwikkelaar vooraf vast wanneer welke aanroep plaatsvindt. Bij tool-use beschrijft de ontwikkelaar alleen welke functies bestaan en wat ze doen; het model beoordeelt per situatie of een aanroep past en met welke gegevens. Dat maakt toepassingen flexibeler in uitzonderlijke gevallen. De API zelf verandert niet. Er komt een laag tussen die besluit welke aanroep er thuishoort.

Bepaalt het model zelf welke tool hij gebruikt, en kan hij daarbij dwaas kiezen?

Het model kiest uit wat aangeboden wordt, en ja, die keuze kan mis: de verkeerde functie, ontbrekende gegevens, een actie die niet past bij de vraag. Daarom gaat elk verzoek door controles voordat het wordt uitgevoerd. Verplichte parameters, validatie van waarden, rechten op het onderliggende systeem. En in werkstromen met gevolgen leggen we een menselijke goedkeuring tussen voorstel en uitvoering. Vrijheid in keuze, niet in uitvoering.

Wat gebeurt er als een tool faalt of traag reageert?

Dan treedt het vaste foutpad op dat bij de functie hoort: het resultaat wordt terug gemeld aan het model, dat kan opnieuw proberen, een alternatief pakken of de taak doorgeven aan een mens. Wat nooit mag gebeuren is dat een agent doorgaat alsof er niets gebeurde. Ook tijdslimieten en het aantal herpogingen leggen we vast per tool. Zo blijft een storing in één koppeling een oplosbare melding, in plaats van een half afgehandelde klantvraag.

Welke tools uit ons pakket komen daarvoor in aanmerking?

Alles waar het uitvoeren vastligt en de rechten te beperken zijn: agenda's, mailopstelling, CRM-acties, dossiers, documentopslag, statuswijzigingen. Wat we bewust niet als tool aanbieden zijn acties met onomkeerbare gevolgen zonder tussenstap (betalingen bijvoorbeeld) tenzij er een goedkeuring tussen staat. In de discovery lopen we jouw pakket langs en bepalen we samen welke functies de eerste versie krijgt. Meer gereedschap is niet beter; het juiste gereedschap wel.

EIGHTY8