Function calling i tool use
És el pont cap a l'agèntic: el model deixa de només parlar i comença a executar accions reals sobre la teva aplicació.
Temps de lectura: 3 min
Function calling (tool use)
El function calling (o tool use) és la capacitat del model de demanar que s'executi una funció del teu codi. Li descrius quines eines té disponibles i, quan una petició ho requereix, el model respon amb una crida estructurada (el nom de l'eina i els arguments) en lloc de text.
El punt clau és que el model no executa res: només decideix quina eina cal fer servir i amb quins arguments. És el teu codi el que l'executa, amb els teus permisos i les teves validacions, i li retorna el resultat perquè continuï. Així el model passa de només parlar a poder consultar dades i actuar sobre l'aplicació.
JSON Schema per a eines
Cada eina es defineix amb un nom, una descripció i un esquema dels arguments en JSON Schema: quins camps té, de quin tipus són, quins són obligatoris i quins valors admeten (per exemple, un enum amb els estats possibles d'una comanda).
La descripció no és documentació decorativa: és el que el model llegeix per decidir quan ha de fer servir l'eina i com n'ha d'omplir els arguments. Una bona descripció explica quan fer-la servir i quan no. Els esquemes estrictes (tipus, enums, camps obligatoris) redueixen molt els arguments inventats.
El bucle agèntic
El bucle agèntic és el cicle en què el model demana una eina, el codi l'executa i li retorna el resultat, i el model decideix si en necessita una altra o si ja pot respondre. Una sola petició («com està la comanda de la Maria i la pot tornar?») pot requerir diverses voltes: buscar la comanda, consultar-ne l'estat i llegir la política de devolucions.
Aquest bucle necessita límits: un nombre màxim de passos i un temps màxim. També convé que els errors de les eines tornin com un text que el model pugui entendre («comanda no trobada: comprova el número»), perquè pugui corregir-se en lloc de fallar.
OpenAPI per exposar eines
OpenAPI (abans Swagger) és l'estàndard per descriure APIs REST. Com que ja descriu els endpoints, els paràmetres i els esquemes, és temptador convertir-lo directament en eines per al model.
Convertir una API sencera en eines és una mala idea coneguda: dotzenes d'endpoints amb noms i respostes pensats per a programadors cremen context i confonen el model a l'hora de triar. El patró que funciona és una capa curta d'eines orientades a la intenció («consultar_estat_comanda», «crear_devolucio») per sobre de l'API, amb descripcions escrites per al model.
Examina't d'aquest mòdul
Copia aquest prompt i enganxa'l a la teva IA (ChatGPT, Claude, Gemini…). Et farà un test de 20 preguntes sobre els conceptes del mòdul i després et proposarà un exercici pràctic.
Actua com a examinador de la «Guia d'Enginyeria IA» de Dani Pérez. Examina'm del mòdul «Function calling i tool use» (https://daniperez.cat/resources/ai-engineering-guide/function-calling). Conceptes que entren a l'examen: - Function calling (tool use) - JSON Schema per a eines - El bucle agèntic - OpenAPI per exposar eines Examen: 1. 20 preguntes tipus test, cadascuna amb 4 opcions (a, b, c, d) i una sola resposta correcta. 2. Pregunta sobre comprensió i criteri (per a què serveix cada cosa i quan NO fer-la servir), no sobre memoritzar definicions. 3. Reparteix la posició de la resposta correcta de manera equilibrada entre a, b, c i d. 4. Fes-me les preguntes en 4 tandes de 5. No posis cap exemple de resposta (com "1a 2b 3c 4d 5a"): jo ja sé que he de respondre amb les lletres. No em diguis si he encertat fins que hagi respost les 20. 5. Al final, corregeix-les totes: per a cada pregunta, la meva resposta, la correcta i una explicació breu. Dona'm la nota sobre 20 i digues quins conceptes he de repassar. Exercici pràctic (després de la correcció): 6. Pregunta'm quina aplicació tinc o vull construir, i amb quin llenguatge i framework treballo. Si no en tinc cap, fes servir aquesta: l'aplicació d'atenció al client d'una botiga en línia, amb tiquets, clients, comandes i una base de coneixement (FAQ i polítiques de devolució). En aquest cas, centra l'exercici en: definir eines per consultar l'estat d'una comanda i per crear una sol·licitud de devolució, i que el model triï quina cridar segons la petició. 7. Proposa'm un exercici que apliqui els conceptes d'aquest mòdul a aquella aplicació: objectiu, requisits, criteris per donar-lo per bo i errors habituals a evitar. 8. No me'l resolguis. Quan et porti la meva solució, revisa-la amb aquests criteris.