← Terug naar blog

Hoe kiest een AI-assistent welke tool hij aanroept?

TL;DR Het taalmodel kiest de tool, niet de koppeling. Het leest de vraag en de lijst met tools die de MCP-server publiceert: naam, beschrijving, parameters en annotaties. Ledger Botje bepaalt vooraf wat er in die lijst staat (schrijfmodus, toolselectie per koppeling, vrijgave per bedrijf en collega) en stuurt met beschrijvingen en antwoorden de volgende stap. Een concrete vraag met object, actie en administratie geeft de beste toolkeuze.

Je typt: "Welke facturen van Jansen B.V. staan nog open?" De assistent zoekt eerst de relatie op en haalt daarna de openstaande posten op. Twee tool-aanroepen, in de goede volgorde, zonder dat je een toolnaam noemde. Wie heeft die keuze gemaakt? Niet Ledger Botje: het taalmodel. Maar het model kiest uit wat de server het laat zien, en op basis van wat die server erover vertelt. In deze post lees je hoe dat werkt.

Stap 1: de server publiceert een lijst met tools

Bij het verbinden vraagt de AI-client via het Model Context Protocol welke tools er zijn. De MCP-server van Ledger Botje antwoordt met een lijst, en elke tool in die lijst heeft vier onderdelen:

OnderdeelVoorbeeldWaar het model het voor gebruikt
Naamcashflow_receivables_searchherkennen van domein, onderwerp en actie
Beschrijving"Zoek en filter vorderingen op klantcode, status of vervaldatum…"bepalen wanneer de tool past, en wanneer niet
ParametersaccountCode, status, limitinvullen van de aanroep
AnnotatiesreadOnlyHint, destructiveHintinschatten of de tool iets wijzigt

De AI-client geeft die lijst mee aan het taalmodel, naast je vraag. Het model ziet dus geen code en geen database, alleen deze beschrijvingen.

Stap 2: wat er vooraf al uit de lijst valt

Voordat het model iets kiest, heeft de server al bepaald wat er in de lijst staat. Wat er niet in staat, kan het model niet aanroepen. Dat is bewust de plek waar je rechten regelt, en niet de prompt:

  • Schrijfmodus. Staat schrijven uit in de instellingen, dan ontbreken alle tools die iets in Exact Online wijzigen.
  • Toolselectie per koppeling. Per AI-client kun je een eigen set tools kiezen, met een standaard per administratie voor clients die later koppelen.
  • Vrijgave per bedrijf en per collega. De beheerder bepaalt welke tools het bedrijf gebruikt en kan een collega verder beperken of op alleen-lezen zetten. Een laag kan alleen weghalen, nooit toevoegen.
  • Beheerderstools. Tools in testfase zijn alleen zichtbaar voor beheerders.

De tools die beginnen met admin_, zoals admin_switch om van administratie te wisselen, blijven altijd beschikbaar. Copilot Studio gebruikt per agent hooguit 70 tools; daar is een toolselectie dus geen luxe maar een noodzaak.

Stap 3: het model kiest op naam en beschrijving

Nu legt het model je vraag naast de lijst. Drie dingen helpen het daarbij.

Vaste naamgeving. Elke toolnaam volgt het patroon domein, onderwerp, actie: sales_orders_create, financial_reporting_balance_search, accounts_search. Een vraag over "een order aanmaken" landt zo vanzelf bij de tools die met sales_orders beginnen en op create eindigen.

Beschrijvingen die zeggen wanneer wél en wanneer niet. Een goede beschrijving vertelt niet alleen wat een tool doet, maar ook welke tool je beter kunt gebruiken. Zo zegt financial_reporting_balance_search dat zoeken op het woord "omzet" rekeningen mist en dus niet geschikt is om omzet op te tellen, dat omzet als credit negatief staat, en dat je voor een dashboard beter groupBy gebruikt dan pagina na pagina losse rijen. Zulke zinnen sturen het model weg van een tool die op het eerste gezicht past maar een verkeerd antwoord geeft.

Volgorde in de beschrijving. Veel taken vragen meerdere stappen. Een boeking heeft een relatie nodig, een bijlage moet eerst geüpload worden voordat je hem koppelt. De beschrijving noemt die volgorde, en het model maakt er een reeks aanroepen van. Bij de vraag over Jansen B.V. is dat eerst accounts_search en dan cashflow_receivables_search.

Elke tool heeft daarnaast een parameter context, waarin het model kort zegt waarom het de tool aanroept. Dat komt in de log van de aanroep, en zo zien we bij een melding niet alleen welke tool gekozen werd, maar ook waarom.

Stap 4: bij een schrijfactie volgt een bevestiging

De annotaties uit stap 1 zeggen of een tool alleen leest (readOnlyHint) en of hij iets onomkeerbaars doet (destructiveHint). AI-clients gebruiken dat om bij schrijfacties om toestemming te vragen; hoe dat eruitziet, verschilt per client. Voor tools met grote gevolgen gaat de beschrijving een stap verder. financial_entries_match (afletteren) vraagt het model om eerst de posten, bedragen en het saldo te tonen en pas na jouw akkoord aan te roepen, omdat ontkoppelen alleen in Exact Online zelf kan.

Stap 5: het antwoord bepaalt de volgende stap

Na een aanroep leest het model het resultaat en beslist het opnieuw: klaar, of nog een tool? Ook daar stuurt de server mee:

  • Leeg resultaat. Heeft de breedste zoekopdracht niets opgeleverd, dan zegt de tool STOP, zodat het model niet eindeloos varianten probeert. Bij een te streng filter zegt hij welk filter je kunt verruimen.
  • Einde van de lijst. Een lege pagina na de eerste geeft pastEnd: true: verder bladeren heeft geen zin.
  • Versheid. Rapportagetools melden hoe oud hun cijfers zijn, en een onvolledige verversing staat als cacheRefresh in het antwoord.
  • Verbinding. Werkt de verbinding met Exact Online niet, dan staat in het antwoord wat de gebruiker moet doen, en dat het model de aanroep niet moet herhalen.

Een fout is dus geen dood spoor maar een instructie. Dat scheelt aanroepen, en het voorkomt dat een assistent een order twee keer aanmaakt omdat hij dacht dat de eerste mislukt was.

Zo krijg je sneller de juiste tool

  • Noem object en actie. "Maak een verkooporder aan voor…" is beter dan "zet dit even in Exact".
  • Noem de administratie als je er meerdere hebt. De assistent wisselt dan eerst met admin_switch.
  • Zeg wat niet mag. "Alleen opzoeken, niets wijzigen" is een duidelijke grens voor het model. Wil je het zeker weten, zet schrijven dan uit.
  • Beperk de toolselectie tot wat je gebruikt. Minder keuze betekent minder kans op een verkeerde keuze, en bij Copilot Studio is het nodig.
  • Begin met een prompt uit de promptbibliotheek. Die zijn getest op de juiste tools en volgorde.
  • Meld het als het misgaat. Vraag de assistent om admin_feedback te gebruiken. Met die meldingen en de context uit de log passen we beschrijvingen aan.

Wie bepaalt wat

BeslissingWie
Welke tools beschikbaar zijnLedger Botje, op basis van abonnement, schrijfmodus, toolselectie en vrijgave
Wat een tool doet en wanneer hij pastLedger Botje, via naam, beschrijving en parameters
Welke tool wordt aangeroepen, en in welke volgordehet taalmodel van je AI-assistent
Of een schrijfactie doorgaatjij, via de bevestiging van de client, en Exact Online zelf

Alle tools met hun beschrijving staan in de toolcatalogus. Loopt een koppeling vast, lees dan MCP-koppeling problemen oplossen.

Veelgestelde vragen

Wie kiest welke tool er wordt aangeroepen, Ledger Botje of de AI-assistent?

De AI-assistent. Het taalmodel in Claude, ChatGPT of Copilot leest je vraag en de lijst met beschikbare tools, en kiest daaruit. Ledger Botje bepaalt welke tools in die lijst staan en wat hun beschrijving zegt, maar doet zelf geen keuze voor het model.

Waarom ziet mijn AI-assistent sommige tools niet?

Omdat de server ze niet publiceert. Staat schrijven uit, dan ontbreken alle schrijftools. Daarnaast kan er een toolselectie gelden voor de koppeling of de administratie, of een vrijgave die de beheerder per bedrijf of per collega heeft ingesteld. Copilot Studio gebruikt bovendien hooguit 70 tools per agent.

Kan een AI-assistent zonder mijn akkoord iets in Exact Online wijzigen?

Elke tool geeft aan of hij alleen leest of iets wijzigt. AI-clients gebruiken dat om bij schrijfacties om bevestiging te vragen; hoe dat er precies uitziet, verschilt per client. Tools met grote gevolgen, zoals afletteren of een factuur versturen, vragen het model daarnaast in hun beschrijving om eerst een voorstel te tonen.

Wat doe ik als de assistent steeds de verkeerde tool kiest?

Maak de vraag concreter: noem het object (factuur, order, relatie), de actie (zoeken, aanmaken, wijzigen) en zo nodig de administratie. Beperk de toolselectie tot wat je echt gebruikt. En vraag de assistent het te melden via admin_feedback; die meldingen gebruiken we om toolbeschrijvingen te verbeteren.

FW
Frank Woutersen is de oprichter van Ledger Botje en schrijft over AI, MCP en Exact Online. Hij helpt bedrijven om hun administratie slimmer te beheren met AI-assistenten.

Zelf aan de slag met AI en Exact Online?

Probeer Ledger Botje gratis en ontdek hoe AI je dagelijkse werk eenvoudiger maakt.

Gratis proberen