[{"data":1,"prerenderedAt":29},["ShallowReactive",2],{"article-data-curso-gcp-google-adk-03":3},{"content":4,"date":5,"image":6,"sideArticles":7},"\u003C!DOCTYPE html>\r\n\u003Chtml lang=\"es\">\r\n\r\n\u003Chead>\r\n    \u003Cmeta charset=\"UTF-8\">\r\n    \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    \u003Cmeta name=\"description\"\r\n        content=\"Laboratorio 3: Aprende a crear Custom Tools para tus agentes. Proporciona 'manos' a la IA para ejecutar código Python, consultar APIs y realizar cálculos precisos.\">\r\n    \u003Cmeta name=\"keywords\"\r\n        content=\"Tool Calling, Custom Tools, Python, ADK, AI Agents, Function Calling, Automatización, Desarrollo IA\">\r\n    \u003Cmeta name=\"author\" content=\"Eduardo Martínez Agrelo\">\r\n    \u003Ctitle>Dotando al Agente de Herramientas | Curso Agentes IA\u003C/title>\r\n    \u003Cstyle>\r\n        body {\r\n            font-family: sans-serif;\r\n            line-height: 1.6;\r\n        }\r\n\r\n        h1,\r\n        h2,\r\n        h3 {\r\n            color: #333;\r\n        }\r\n\r\n        ul {\r\n            list-style-type: disc;\r\n            margin-left: 20px;\r\n        }\r\n\r\n        code {\r\n            background-color: #f4f4f4;\r\n            padding: 2px 5px;\r\n            border-radius: 3px;\r\n            font-family: monospace;\r\n        }\r\n    \u003C/style>\r\n\u003C/head>\r\n\r\n\u003Cbody>\r\n    \u003Ch1>Dotando al Agente de Herramientas (Custom Tools)\u003C/h1>\r\n\r\n    \u003Cp>\u003Cstrong>Autor:\u003C/strong> \u003Ca href=\"https://www.youtube.com/@EduardoMartinezAgrelo\" target=\"_blank\">Eduardo Martínez\r\n            Agrelo\u003C/a>\u003C/p>\r\n\r\n    \u003Cp>Hasta ahora, nuestros agentes han sido mentes brillantes atrapadas en una habitación vacía: podían razonar, pero\r\n        no podían actuar. En este laboratorio, romperemos esa limitación mediante el \u003Cstrong>Tool Calling\u003C/strong>.\r\n        Aprenderemos a darle \"manos\" a nuestro agente para que pueda ejecutar funciones de Python, consultar bases de\r\n        datos y realizar operaciones que un modelo de lenguaje no puede hacer por sí solo.\u003C/p>\r\n\r\n    \u003Ch2>¿Qué es el Tool Calling?\u003C/h2>\r\n\r\n    \u003Cp>El Tool Calling es el proceso mediante el cual un agente detecta que no tiene la información o la capacidad\r\n        necesaria para responder a un usuario y decide invocar una función externa:\u003C/p>\r\n    \u003Cul>\r\n        \u003Cli>\u003Cstrong>Autonomía:\u003C/strong> El agente decide por sí mismo qué herramienta usar y con qué parámetros,\r\n            basándose en la intención del usuario.\u003C/li>\r\n        \u003Cli>\u003Cstrong>Precisión:\u003C/strong> Permite delegar cálculos matemáticos o consultas de datos exactos a código\r\n            tradicional, eliminando las alucinaciones del modelo.\u003C/li>\r\n    \u003C/ul>\r\n\r\n    \u003Ch2>El poder de los Docstrings\u003C/h2>\r\n\r\n    \u003Cp>En ADK, la forma en que \"enseñamos\" a un agente a usar una herramienta es a través de la documentación interna\r\n        del código. El modelo de lenguaje lee nuestras descripciones para entender cuándo es útil la función:\u003C/p>\r\n    \u003Cp>\u003Ccode>def mi_herramienta(): \"\"\"Descripción detallada para el LLM\"\"\"\u003C/code>\u003C/p>\r\n    \u003Cp>Un docstring claro y con anotaciones de tipo (type hints) es la diferencia entre un agente que sabe actuar y uno\r\n        que se confunde. ADK toma estas funciones de Python y las traduce automáticamente al esquema JSON que el modelo\r\n        Gemini necesita.\u003C/p>\r\n\r\n    \u003Ch2>El ciclo Razonamiento-Acción\u003C/h2>\r\n\r\n    \u003Cp>Es fundamental comprender que el agente sigue un flujo lógico antes de entregar la respuesta final:\u003C/p>\r\n    \u003Cul>\r\n        \u003Cli>\u003Cstrong>Observación:\u003C/strong> El agente analiza la pregunta (\"¿Cuánto cuesta el monitor?\").\u003C/li>\r\n        \u003Cli>\u003Cstrong>Decisión:\u003C/strong> Identifica que tiene una herramienta llamada \u003Ccode>consultar_precio\u003C/code>.\u003C/li>\r\n        \u003Cli>\u003Cstrong>Ejecución:\u003C/strong> ADK ejecuta la función de Python y le devuelve el resultado al agente para que\r\n            este lo procese y responda de forma natural.\u003C/li>\r\n    \u003C/ul>\r\n\r\n    \u003Ch2>Implementación práctica\u003C/h2>\r\n\r\n    \u003Cp>En este laboratorio, transformaremos a nuestro asistente en un \"Agente de Ventas\". Programaremos funciones reales\r\n        para consultar un inventario simulado y calcular descuentos financieros. Al probarlo en la \u003Cstrong>Dev\r\n            UI\u003C/strong>, observarás el rastro de la ejecución (Trace), viendo exactamente cómo el agente genera los\r\n        argumentos para la función y cómo utiliza el retorno de la misma para cerrar una venta con datos 100% precisos.\r\n    \u003C/p>\r\n\r\n    \u003Ch2>Conclusión: De Chatbots a Agentes Reales\u003C/h2>\r\n    \u003Cp>Has dado el paso más importante hacia la utilidad real de la IA. Has aprendido que un agente es capaz de\r\n        interactuar con el mundo exterior a través de código. Ya tienes un agente con herramientas individuales; el\r\n        siguiente paso es aprender a orquestar múltiples agentes para realizar tareas complejas en cadena.\u003C/p>\r\n\u003C/body>\r\n\r\n\u003C/html>","May 12, 2026","https://storage.googleapis.com/mp-blog/images/curso-gcp-google-adk-03.jpg",[8,14,19,24],{"id":9,"title":10,"description":11,"image":12,"date":13},"curso-gcp-apache-spark-01","Spark: Infraestructura como Código con Terraform | Curso Spark, Scala y Terraform","Aprende a desplegar clústeres de Big Data profesionalmente. Domina Terraform para crear infraestructura como código (IaC) en Google Cloud y automatiza tu entorno de Dataproc para Spark.","https://storage.googleapis.com/mp-blog/images/curso-gcp-apache-spark-01.jpg","March 12, 2026",{"id":15,"title":16,"description":17,"image":18,"date":13},"curso-gcp-apache-spark-02","Spark: Ingesta (Raw to Bronze) y Formatos Columnares | Curso Spark, Scala y Terraform","Domina la ingesta de datos con Spark. Aprende a convertir JSONs pesados en formato Parquet, optimiza tu almacenamiento en un 85% y domina los esquemas estrictos con Scala.","https://storage.googleapis.com/mp-blog/images/curso-gcp-apache-spark-02.jpg",{"id":20,"title":21,"description":22,"image":23,"date":13},"curso-gcp-apache-spark-03","Spark: Limpieza y Calidad (Bronze to Silver) | Curso Spark, Scala y Terraform","Domina la limpieza de datos en Spark. Aprende a usar Scala para implementar la capa Silver (Plata) de tu arquitectura Medallón, utilizando Case Classes para mayor seguridad.","https://storage.googleapis.com/mp-blog/images/curso-gcp-apache-spark-03.jpg",{"id":25,"title":26,"description":27,"image":28,"date":13},"curso-gcp-apache-spark-04","Spark: Analítica Avanzada (Silver to Gold) | Curso Spark, Scala y Terraform","Domina el Análisis Avanzado con Spark. Aprende a calcular métricas de negocio con Window Functions y a extraer el Top 3 de canciones por país y día para tu capa Gold.","https://storage.googleapis.com/mp-blog/images/curso-gcp-apache-spark-04.jpg",1778604629805]