Así es como funciona tool use bajo el capo. Cuando envias un mensaje a una API como Claude o GPT-4, también envias una lista de definiciones de herramientas — cada una es un JSON schema que describe el nombre de la función, sus parámetros (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 función y los argumentos que quiere pasar. Tu código de aplicación entonces ejecuta esa función (llamando a una API, consultando una base de datos, ejecutando un cálculo) 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 código" — es el modelo produciendo una salida estructurada que tu aplicación 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, así que una herramienta llamada search_docs con la descripción "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 descripción confundira al modelo. Las descripciones de parámetros son igualmente importantes — si tienes un parámetro date, específica el formato esperado ("ISO 8601, ej. 2025-03-15") o el modelo adivinara. En la API de Claude, también puedes agregar un parámetro tool_choice para forzar al modelo a usar una herramienta específica, 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 integración 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 fácil de pasar por alto pero significativa para el rendimiento. Cuando un modelo necesita recopilar información de múltiples fuentes — digamos, consultar el clima en tres ciudades — puede emitir múltiples llamadas de herramientas en una sola respuesta. Tu aplicación 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 rápidamente. Si estas construyendo una integración de tool use, disena tu capa de ejecución para manejar arreglos de llamadas de herramientas desde el principio.
Un error común es que el tool use no es determinístico. 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 producción típicamente incluyen lógica de validación en la salida de la llamada de herramienta — verificando que los parámetros requeridos esten presentes, que los valores esten en rangos esperados, que el nombre de la función 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 patrón de "autocorrección" funciona sorprendentemente bien en la práctica y es mucho más 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 ejecución. La introducción 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.