Ir al contenido

IDEAS PRÁCTICAS · ASIMOV INGENIERÍA

12. Agentes que ejecutan código: automatización con Python

Aprende cómo los agentes de inteligencia artificial pueden utilizar Python para realizar cálculos, procesar información, analizar datos y automatizar tareas, y descubre por qué la ejecución de código convierte a un agente en una herramienta mucho más potente.

Table of contents

No titles in the blog post

En el artículo anterior vimos cómo los agentes de inteligencia artificial pueden conectarse a internet para buscar información actualizada. Esta capacidad permite que un agente consulte fuentes externas, investigue temas, compare información y encuentre datos que no necesariamente forman parte de su conocimiento interno.

Sin embargo, encontrar información no siempre es suficiente.

En muchas situaciones, después de obtener los datos necesitamos procesarlos, calcular algo, transformarlos o realizar una tarea automáticamente. Por ejemplo, podemos necesitar analizar un archivo con cientos de registros, calcular estadísticas, convertir unidades, generar un reporte o procesar información obtenida desde una API.

Aquí es donde aparece una capacidad especialmente interesante: permitir que un agente de IA utilice código para realizar determinadas tareas.

Python es uno de los lenguajes más utilizados para este propósito debido a su facilidad de aprendizaje y a la gran cantidad de bibliotecas disponibles. Cuando un agente puede utilizar Python de forma controlada, deja de limitarse a generar instrucciones o explicaciones y puede comenzar a realizar operaciones computacionales reales.

1. ¿Por qué un agente necesita ejecutar código?

Un modelo de IA puede realizar cálculos sencillos directamente, pero existen tareas que son mucho más adecuadas para un programa.

Imaginemos que un usuario proporciona un archivo con 50,000 mediciones de temperatura y pregunta:

"¿Cuál fue la temperatura promedio y cuántas mediciones estuvieron por encima de 30 °C?"

El agente podría intentar analizar toda la información directamente, pero sería mucho más eficiente utilizar Python para procesar los datos.

Python puede leer el archivo, recorrer las mediciones, realizar los cálculos y devolver los resultados.

El agente entonces puede interpretar esos resultados y explicarlos al usuario.

Esto crea una división muy útil:

el modelo razona sobre la tarea y Python realiza operaciones precisas.

Esta combinación permite que cada componente haga aquello para lo que resulta más adecuado.

2. El código como una herramienta del agente

Al igual que la búsqueda web del artículo anterior, la ejecución de código puede tratarse como una herramienta.

Podemos imaginar una herramienta llamada:

ejecutar_python

El agente puede decidir utilizarla cuando una tarea requiere cálculos o procesamiento.

Por ejemplo, el usuario puede preguntar:

"Calcula cuánto gastaría una máquina que consume 750 W durante 8 horas al día durante 30 días."

El agente puede interpretar la pregunta, identificar los valores y utilizar Python para realizar la operación.

El resultado podría ser:

750 W × 8 horas × 30 días = 180,000 Wh

o 180 kWh.

Posteriormente, el agente puede explicar el resultado de una manera comprensible.

La ventaja es que el cálculo no depende únicamente de la generación textual del modelo.

3. Pensar y calcular son cosas diferentes

Esta distinción es fundamental.

Los modelos de lenguaje son excelentes para comprender instrucciones, interpretar lenguaje natural y generar explicaciones.

Sin embargo, cuando necesitamos realizar una gran cantidad de operaciones numéricas o procesar grandes volúmenes de información, un programa convencional puede ser mucho más apropiado.

Podemos imaginar al agente como un coordinador.

El usuario realiza una solicitud.

El agente determina qué necesita.

Si necesita información externa, utiliza una herramienta de búsqueda.

Si necesita datos estructurados, puede consultar una API.

Si necesita cálculos o procesamiento, utiliza Python.

Después analiza los resultados y genera una respuesta.

Por eso un agente no tiene que realizar absolutamente todo por sí mismo.

Su función es coordinar diferentes capacidades para alcanzar un objetivo.

4. ¿Qué tareas puede realizar Python para un agente?

Las posibilidades son bastante amplias.

Python puede utilizarse para realizar operaciones matemáticas, analizar datos, procesar archivos, transformar información, trabajar con fechas, generar estadísticas y automatizar diferentes procesos.

También existen bibliotecas especializadas para tareas más avanzadas.

Por ejemplo, un agente podría utilizar Python para analizar un archivo CSV, utilizar una biblioteca para trabajar con datos y posteriormente generar un reporte.

También puede procesar información obtenida desde una API.

Esto resulta especialmente interesante cuando combinamos las herramientas que hemos aprendido en artículos anteriores.

Un agente podría buscar información en internet, obtener datos mediante una API y después utilizar Python para analizarlos.

Así comenzamos a construir procesos mucho más completos.

5. Un ejemplo sencillo: realizar un cálculo

Imaginemos que un usuario pregunta:

"Una máquina consume 2.5 kW y funciona 6 horas al día. ¿Cuánta energía consume en 30 días?"

El agente puede identificar que necesitamos calcular:

2.5 × 6 × 30

Python puede realizar la operación y obtener:

450 kWh.

El agente posteriormente puede responder:

"La máquina consumiría aproximadamente 450 kWh durante 30 días funcionando seis horas diarias."

Este ejemplo es sencillo, pero demuestra una idea importante.

El agente interpreta una pregunta escrita en lenguaje natural y la convierte en una operación que puede ejecutar un programa.

6. Procesar archivos

Otra aplicación importante es el procesamiento de archivos.

Supongamos que una empresa tiene un archivo CSV con información de ventas.

Puede contener columnas como:

Producto.

Fecha.

Cantidad.

Precio.

Cliente.

El usuario podría pedir:

"Analiza las ventas de este mes y dime cuál fue el producto más vendido."

El agente puede utilizar Python para leer el archivo y analizar los datos.

El programa puede ordenar las ventas, sumar cantidades y determinar cuál producto tuvo mayor demanda.

Después, el agente puede presentar el resultado de manera comprensible.

Esto puede ahorrar una gran cantidad de trabajo manual.

En lugar de abrir el archivo, revisar registros y realizar cálculos manualmente, el usuario puede solicitar el análisis mediante lenguaje natural.

7. Python y análisis de datos

Python cuenta con numerosas herramientas para trabajar con datos.

Una de las ventajas más importantes es que existen bibliotecas especializadas en análisis y procesamiento.

Por ejemplo, un agente podría utilizar herramientas como pandas para trabajar con tablas de datos.

Podría cargar un archivo, filtrar registros, agrupar información, calcular promedios y obtener estadísticas.

El modelo puede decidir qué operaciones son necesarias, mientras que Python realiza el procesamiento.

Este enfoque es especialmente útil cuando tenemos grandes cantidades de información.

Un humano puede comprender fácilmente diez registros, pero revisar manualmente cientos de miles resulta mucho más complicado.

Un programa puede procesar esa información de manera mucho más eficiente.

8. Automatizar tareas repetitivas

La ejecución de código también permite automatizar tareas que normalmente una persona tendría que repetir muchas veces.

Por ejemplo, imaginemos que una empresa recibe diariamente archivos con información de sensores.

Una persona podría abrir cada archivo, revisar los datos, buscar valores anormales y elaborar un reporte.

Un agente puede ayudar a automatizar este proceso.

Podría recibir el archivo, ejecutar Python para analizarlo, identificar valores fuera de los límites establecidos y generar un resumen.

El usuario podría recibir algo como:

"Se analizaron 12,450 mediciones. Se encontraron 37 valores superiores al límite establecido. Los dispositivos con mayor número de anomalías fueron A12 y A18."

Aquí la IA no está realizando toda la tarea por sí sola.

Está coordinando el proceso mientras que Python realiza el procesamiento de los datos.

9. Generar reportes automáticamente

Otra aplicación interesante consiste en utilizar código para generar información estructurada.

Un agente puede analizar datos y posteriormente generar un reporte.

Por ejemplo, una empresa podría pedir:

"Analiza las ventas de esta semana y prepara un resumen."

Python puede calcular:

Ventas totales.

Número de productos vendidos.

Producto más vendido.

Promedio de ventas diarias.

Día con mayores ventas.

Después, el agente puede convertir esos resultados en un texto comprensible.

Incluso podría utilizar esos datos para generar un archivo si el sistema está preparado para ello.

Esto permite pasar de simplemente responder preguntas a automatizar procesos completos de análisis.

10. Ejecución de código y APIs

En el artículo 10 aprendimos cómo los agentes pueden utilizar APIs externas.

Ahora podemos combinar ambas capacidades.

Imaginemos un agente encargado de monitorear precios.

Primero consulta una API.

La API devuelve una lista de precios.

Después Python analiza esos valores.

El programa calcula el precio promedio, identifica el valor máximo y determina qué productos cambiaron más.

Finalmente, el agente genera un resumen.

El flujo podría ser:

usuario → agente → API → datos → Python → análisis → agente → respuesta

Este tipo de arquitectura permite construir sistemas capaces de procesar información en diferentes etapas.

11. Ejecutar código no significa darle una computadora sin límites

Aquí debemos hacer una aclaración muy importante.

Cuando hablamos de agentes que ejecutan código, no significa que debamos permitir que el modelo tenga acceso ilimitado al sistema operativo.

Un agente podría generar código que accidentalmente elimine archivos, consuma demasiados recursos o realice operaciones que no estaban previstas.

Por eso la ejecución de código debe estar controlada y aislada.

En sistemas reales se pueden utilizar entornos restringidos, comúnmente llamados sandboxes, que limitan lo que el código puede hacer.

Por ejemplo, podemos impedir el acceso a determinados archivos, limitar el tiempo de ejecución o restringir el acceso a internet.

El objetivo es que el código pueda realizar la tarea necesaria sin tener acceso innecesario al resto del sistema.

12. El problema de ejecutar código generado por una IA

Un agente puede generar código automáticamente.

Esto es muy útil, pero también introduce riesgos.

Imaginemos que el usuario solicita:

"Analiza este archivo."

El agente genera un programa para realizar el análisis.

Si el código se ejecuta directamente sin ningún tipo de control, puede producir resultados inesperados.

Por eso debemos considerar el código generado por el modelo como código potencialmente no confiable.

Esto no significa que no podamos utilizarlo.

Significa que debemos ejecutarlo dentro de un entorno controlado y aplicar las restricciones correspondientes.

Este principio es especialmente importante cuando trabajamos con agentes autónomos.

13. Validar antes de ejecutar

Una buena arquitectura puede incorporar validaciones antes de permitir que el código se ejecute.

Por ejemplo, podemos comprobar qué recursos intenta utilizar.

También podemos limitar el tiempo de ejecución.

Podemos restringir determinadas operaciones.

Podemos controlar qué archivos puede leer.

Podemos limitar el acceso a internet.

Incluso podemos establecer un límite de memoria o procesamiento.

De esta manera, aunque el agente genere código incorrecto, el entorno puede impedir que ese error tenga consecuencias graves.

Esto conecta directamente con lo aprendido en el artículo 9: las restricciones importantes no deberían depender exclusivamente del prompt.

14. Un agente para analizar sensores

Pensemos nuevamente en un escenario relacionado con IoT.

Una empresa tiene cientos de sensores que registran temperatura.

Cada cierto tiempo se genera un archivo con miles de mediciones.

Un agente podría recibir la solicitud:

"Analiza las mediciones y dime si existe algún comportamiento anormal."

El agente podría utilizar Python para:

Leer el archivo.

Limpiar los datos.

Calcular valores promedio.

Identificar máximos y mínimos.

Detectar mediciones fuera de ciertos límites.

Agrupar los resultados por dispositivo.

Después podría interpretar los resultados y explicarlos.

Por ejemplo:

"El sensor 24 presenta 18 mediciones superiores al límite establecido. La mayoría ocurrieron entre las 14:00 y las 16:00."

Aquí vemos cómo la ejecución de código puede complementar perfectamente a un agente de IA.

15. Python para transformar información

No todo tiene que ser análisis.

Python también puede utilizarse para transformar información.

Supongamos que una API devuelve una estructura complicada.

El agente puede utilizar código para extraer solamente los campos necesarios.

También puede convertir unidades.

Por ejemplo:

De grados Fahrenheit a Celsius.

De metros a kilómetros.

De watts a kilowatts.

De segundos a horas.

Estas transformaciones son sencillas para un programa y pueden integrarse fácilmente dentro de una herramienta del agente.

16. Agentes que trabajan con datos grandes

Otra ventaja de utilizar código es la capacidad de trabajar con cantidades de información que serían difíciles de procesar manualmente.

Un agente puede recibir un archivo con miles o millones de registros y utilizar herramientas especializadas para analizarlo.

Esto puede utilizarse en diferentes sectores.

En manufactura, para analizar sensores.

En comercio, para estudiar ventas.

En ingeniería, para analizar mediciones.

En finanzas, para procesar información numérica.

En investigación, para analizar experimentos.

En desarrollo de software, para procesar registros y resultados de pruebas.

La inteligencia artificial aporta la capacidad de comprender la solicitud, mientras que las herramientas de programación proporcionan capacidad computacional.

17. Ejecutar código paso a paso

En algunos casos una tarea puede requerir varias operaciones.

Por ejemplo:

Primero leer un archivo.

Después limpiarlo.

Después calcular estadísticas.

Después detectar anomalías.

Después generar un resultado.

El agente puede decidir qué operación realizar primero y utilizar el resultado para determinar el siguiente paso.

Esto es particularmente interesante porque vuelve a aparecer el concepto de ciclo de agente.

El agente actúa.

Obtiene un resultado.

Analiza ese resultado.

Decide qué hacer después.

Y continúa hasta completar el objetivo.

Por eso la ejecución de código puede convertirse en una herramienta dentro de un proceso de razonamiento más amplio.

18. Código generado dinámicamente

Una característica avanzada consiste en permitir que el agente genere código según la tarea que recibe.

Por ejemplo, si un usuario proporciona un archivo diferente cada vez, el agente puede analizar su estructura y generar el código necesario para procesarlo.

Esto proporciona mucha flexibilidad.

Sin embargo, también aumenta la necesidad de seguridad.

El sistema debe controlar qué código puede ejecutarse y bajo qué condiciones.

En aplicaciones de producción, no basta con que el código funcione en una prueba.

Debemos considerar errores, recursos, seguridad y posibles entradas maliciosas.

19. El agente como programador auxiliar

Además de ejecutar código, los agentes pueden utilizar Python para ayudarnos a programar.

Por ejemplo, un desarrollador puede pedir:

"Analiza este archivo y encuentra por qué algunos valores están duplicados."

El agente puede escribir un pequeño programa para revisar los datos.

Después puede ejecutar ese código y analizar los resultados.

Finalmente puede explicar cuál parece ser el problema.

Este proceso es diferente de simplemente pedirle a una IA que escriba código.

El agente puede entrar en un ciclo de:

escribir código → ejecutar → observar resultado → corregir → ejecutar nuevamente

Este comportamiento permite construir sistemas mucho más interactivos.

20. ¿Qué pasa si el código falla?

Los errores son inevitables.

Supongamos que el agente genera un programa para procesar un archivo y aparece un error porque una columna tiene un nombre diferente al esperado.

El agente puede recibir el mensaje de error.

Después puede analizarlo.

Puede modificar el código.

Y puede volver a intentarlo.

Este ciclo puede repetirse hasta conseguir un resultado correcto o determinar que necesita intervención humana.

Aquí podemos ver una diferencia importante entre un programa tradicional y un agente.

Un programa normalmente sigue instrucciones predeterminadas.

Un agente puede utilizar el resultado de una ejecución para decidir qué debe hacer después.

Esto no significa que siempre pueda solucionar cualquier error, pero sí proporciona una mayor flexibilidad.

21. No todos los problemas necesitan IA

También es importante evitar utilizar un agente cuando una solución tradicional es suficiente.

Si necesitamos realizar una operación matemática fija, probablemente no necesitamos un modelo de lenguaje.

Si una tarea siempre sigue exactamente los mismos pasos, un programa convencional puede ser más rápido y sencillo.

La IA resulta especialmente útil cuando existe cierta variabilidad en la solicitud.

Por ejemplo:

"Analiza este archivo y dime qué aspectos importantes encuentras."

Aquí puede ser útil un agente porque debe interpretar la información y decidir qué análisis realizar.

En cambio:

"Calcula la suma de estas diez cantidades."

puede resolverse directamente con código.

La inteligencia del agente tiene mayor valor cuando necesitamos interpretación, decisión o adaptación.

22. Combinar reglas tradicionales con inteligencia artificial

Una de las mejores arquitecturas no consiste en reemplazar todo por IA.

Podemos combinar diferentes tecnologías.

Por ejemplo:

El agente interpreta la solicitud.

Python procesa los datos.

Una API proporciona información.

Una base de datos almacena resultados.

Un sistema de reglas valida determinadas condiciones.

Y finalmente el agente explica el resultado.

Cada componente cumple una función.

Este enfoque híbrido puede ser mucho más confiable que intentar hacer todo mediante el modelo de lenguaje.

23. Seguridad y permisos

Cuando un agente puede ejecutar código, debemos ser todavía más cuidadosos con los permisos.

No debería tener acceso automáticamente a todo el equipo donde está ejecutándose.

Idealmente, el entorno de ejecución debe tener solamente los recursos necesarios.

Por ejemplo, si el agente necesita analizar un archivo, puede tener acceso únicamente a una carpeta temporal.

Si necesita realizar cálculos, no necesita permisos para modificar archivos del sistema.

Si no necesita internet, podemos bloquear el acceso.

El principio es sencillo:

dar al agente solamente los permisos que necesita.

Esto reduce considerablemente el impacto de posibles errores.

24. Un ejemplo completo

Imaginemos una empresa que recibe diariamente un archivo con datos de producción.

El usuario solicita:

"Analiza el archivo de hoy y dime si existe algún problema importante."

El agente recibe la solicitud.

Primero identifica que necesita acceder al archivo.

Después utiliza una herramienta para leerlo.

Analiza la estructura y determina qué información necesita procesar.

A continuación genera o utiliza código Python para calcular estadísticas.

El programa identifica valores anormales.

El agente analiza los resultados.

Finalmente genera una explicación.

Si encuentra una anomalía importante, puede incluso utilizar otra herramienta para generar una alerta.

Tenemos entonces:

archivo → agente → Python → análisis → agente → alerta

Este tipo de flujo muestra cómo diferentes herramientas pueden trabajar juntas dentro de un mismo agente.

25. Ejecución de código como siguiente nivel de los agentes

Hasta este punto hemos visto agentes capaces de utilizar herramientas, consultar APIs y buscar información en internet.

La ejecución de código agrega otra dimensión.

Ahora el agente puede transformar información y realizar operaciones computacionales.

Esto permite crear sistemas capaces de resolver problemas mucho más complejos.

Un agente puede recibir una pregunta, buscar información, descargar datos, procesarlos con Python, analizar los resultados y generar una conclusión.

Cada herramienta resuelve una parte diferente del problema.

Esta combinación es uno de los principales motivos por los que los agentes de IA tienen tanto potencial en automatización.

26. ¿Cuándo conviene utilizar Python en un agente?

Python resulta especialmente útil cuando necesitamos realizar cálculos, procesar datos, trabajar con archivos, automatizar tareas repetitivas o utilizar bibliotecas especializadas.

También puede ser útil cuando el agente necesita comprobar resultados mediante operaciones deterministas.

Por ejemplo, si el modelo estima que el promedio de una lista es determinado valor, Python puede calcularlo exactamente.

De esta manera podemos reducir errores.

La idea no es hacer que Python sustituya al agente, sino utilizarlo como una herramienta especializada.

Conclusiones

Permitir que un agente de IA ejecute código utilizando Python amplía considerablemente sus capacidades. Ya no se limita a interpretar solicitudes y generar respuestas, sino que puede realizar cálculos, procesar archivos, analizar datos, automatizar tareas y trabajar con información obtenida desde APIs u otras fuentes.

Sin embargo, la ejecución de código también requiere controles importantes. El código generado por una IA debe tratarse con precaución y ejecutarse preferentemente dentro de entornos aislados y con permisos limitados. Las operaciones críticas deben validarse y no deben depender únicamente de las instrucciones del modelo.

La combinación entre inteligencia artificial y programación permite construir agentes capaces de realizar procesos mucho más completos. El agente puede decidir qué hacer, mientras que Python proporciona una herramienta precisa para ejecutar las operaciones necesarias.

En el artículo 13 continuaremos con una capacidad fundamental para los sistemas empresariales: veremos cómo crear agentes con acceso a bases de datos, capaces de convertir preguntas escritas en lenguaje natural en consultas y obtener información estructurada de manera segura.

Anterior                                                                                                       Siguiente