Asi es como funciona tool use bajo el capo. Cuando envias un mensaje a una API como Claude o GPT-4, tambien envias una lista de definiciones de herramientas — cada una es un JSON schema que describe el nombre de la funcion, sus parametros (con tipos y descripciones) y lo que hace. El modelo lee estas definiciones como parte de su contexto, y cuando determina que llamar a una herramienta ayudaria a responder la pregunta del usuario, deja de generar texto y en su lugar produce un objeto estructurado de llamada de herramienta: el nombre de la funcion y los argumentos que quiere pasar. Tu codigo de aplicacion entonces ejecuta esa funcion (llamando a una API, consultando una base de datos, ejecutando un calculo) y envia el resultado de vuelta al modelo como un nuevo mensaje. El modelo lee el resultado y continua generando su respuesta. Esto no es el modelo "ejecutando codigo" — es el modelo produciendo una salida estructurada que tu aplicacion interpreta y sobre la cual actua.
La calidad de tus definiciones de herramientas importa enormemente. Los modelos eligen herramientas basandose en sus nombres y descripciones, asi que una herramienta llamada search_docs con la descripcion "Buscar en la base de conocimiento interna documentos relevantes dada una consulta en lenguaje natural" se usara apropiadamente, mientras que una herramienta llamada sd sin descripcion confundira al modelo. Las descripciones de parametros son igualmente importantes — si tienes un parametro date, especifica el formato esperado ("ISO 8601, ej. 2025-03-15") o el modelo adivinara. En la API de Claude, tambien puedes agregar un parametro tool_choice para forzar al modelo a usar una herramienta especifica, dejarlo elegir libremente o prevenir el uso de herramientas por completo. La API de OpenAI tiene controles equivalentes. Lograr que estas definiciones esten bien hechas es frecuentemente la diferencia entre una integracion de tool use que funciona de manera confiable y una que se rompe en casos extremos.
Las llamadas de herramientas en paralelo son una funcionalidad facil de pasar por alto pero significativa para el rendimiento. Cuando un modelo necesita recopilar informacion de multiples fuentes — digamos, consultar el clima en tres ciudades — puede emitir multiples llamadas de herramientas en una sola respuesta. Tu aplicacion las ejecuta concurrentemente y envia todos los resultados de vuelta a la vez. Claude, GPT-4 y Gemini todos soportan esto. La alternativa (llamadas secuenciales, una por viaje de ida y vuelta) agrega latencia que se acumula rapidamente. Si estas construyendo una integracion de tool use, disena tu capa de ejecucion para manejar arreglos de llamadas de herramientas desde el principio.
Un error comun es que el tool use no es deterministico. El mismo prompt con las mismas herramientas puede llevar al modelo a llamar diferentes herramientas, pasar diferentes argumentos o elegir no usar herramientas en absoluto. Esto importa para pruebas y confiabilidad. Los sistemas en produccion tipicamente incluyen logica de validacion en la salida de la llamada de herramienta — verificando que los parametros requeridos esten presentes, que los valores esten en rangos esperados, que el nombre de la funcion coincida con una herramienta conocida. Algunos equipos agregan un mecanismo de reintento: si el modelo emite una llamada de herramienta malformada, el error se envia de vuelta como resultado de herramienta y el modelo tiene la oportunidad de intentar de nuevo. Este patron de "autocorreccion" funciona sorprendentemente bien en la practica y es mucho mas barato que intentar prevenir todos los errores de antemano.
La historia del tool use en modelos de IA es sorprendentemente corta. OpenAI introdujo "function calling" en junio de 2023 con GPT-3.5 y GPT-4, y cambio inmediatamente lo que era posible construir. Antes de eso, los desarrolladores usaban ingenieria de prompts para que los modelos produjeran JSON en un formato particular, y luego lo parseaban con regex fragil — funcionaba, pero era inestable. Anthropic lanzo tool use para Claude en 2024, seguido por Google para Gemini. Las APIs han convergido en disenos muy similares: defines herramientas como JSON schemas, el modelo produce llamadas estructuradas y tu manejas la ejecucion. La introduccion de MCP a finales de 2024 agrego entonces una capa estandarizada de descubrimiento y transporte encima de este mecanismo, para que las herramientas pudieran compartirse entre aplicaciones sin redefinirlas para cada una.