Los agentes son el tema de moda en IA hoy en día, y con razón. Los agentes de IA actúan en nombre de sus usuarios, gestionando de forma autónoma tareas como realizar compras en línea, desarrollar software, investigar tendencias comerciales o reservar viajes. Al sacar la IA generativa del entorno protegido de la interfaz de chat y permitirle actuar directamente en el mundo, la IA agentica representa un avance en el poder y la utilidad de la IA.
Marc Brooker, AWS-VB
La IA agentica ha evolucionado a un ritmo vertiginoso: por ejemplo, uno de los pilares fundamentales de los agentes actuales, el protocolo de contexto de modelo (MCP), ¡tiene solo un año! Como en cualquier campo en constante evolución, existen numerosas definiciones contradictorias, opiniones controvertidas y opiniones engañosas.
Para aclarar la cuestión, me gustaría describir los componentes principales de un sistema de IA agéntica y cómo se integran: en realidad, no es tan complicado como parece. Espero que, al terminar de leer esta publicación, los agentes no te parezcan tan misteriosos.
Ecosistema agente
Abundan las definiciones de la palabra “agente”, pero me gusta una ligera variación de la interpretación minimalista del programador británico Simon Willison: Un agente LLM ejecuta herramientas en un bucle para lograr un objetivo.
El usuario solicita un modelo de lenguaje grande (LLM) con un objetivo: por ejemplo, reservar una mesa en un restaurante cerca de un teatro específico. Junto con el objetivo, el modelo recibe una lista de las herramientas disponibles, como una base de datos de ubicaciones de restaurantes o un registro de las preferencias gastronómicas del usuario. El modelo planifica cómo lograr el objetivo e invoca una de las herramientas, que proporciona una respuesta; a continuación, invoca una nueva herramienta. Mediante repeticiones, el agente avanza hacia el logro del objetivo. En algunos casos, las opciones de orquestación y planificación del modelo se complementan o mejoran con código imperativo.
Pero ¿qué tipo de infraestructura se necesita para implementar este enfoque? Un sistema agente necesita algunos componentes básicos:
- Una forma de construir el agente. Al implementar un agente, no es necesario programarlo desde cero. Existen varios marcos de desarrollo de agentes.
- Un lugar donde ejecutar el modelo de IA. Un desarrollador de IA experimentado puede descargar un LLM de peso abierto, pero se requiere experiencia para hacerlo correctamente. También requiere hardware costoso que el usuario promedio no utilizará adecuadamente.
- Dónde ejecutar el código de la agencia . Con marcos de trabajo establecidos, el usuario crea código para un objeto de agente con un conjunto definido de funciones. La mayoría de estas funciones implican el envío de indicaciones a un modelo de IA, pero el código debe ejecutarse en algún lugar. En la práctica, la mayoría de los agentes se ejecutarán en la nube, ya que queremos que sigan funcionando cuando nuestros portátiles estén apagados y que puedan escalar horizontalmente para realizar su trabajo.
- Un mecanismo para traducir entre el LLM basado en texto y las llamadas de herramientas.
- Una memoria a corto plazo para rastrear el contenido de las interacciones de agentes.
- Una memoria a largo plazo para rastrear las preferencias y afinidades del usuario a lo largo de las sesiones.
- Una forma de rastrear la ejecución del sistema, para evaluar el rendimiento del agente.
Profundicemos en más detalles sobre cada uno de estos componentes.
Construyendo un agente
Pedirle a un LLM que explique cómo planea abordar una tarea específica mejora su desempeño en ella. Este razonamiento en cadena es ahora omnipresente en la IA.
El análogo en los sistemas agenticos es el modelo ReAct (razonamiento + acción), en el que el agente tiene un pensamiento (“Usaré la función de mapa para localizar restaurantes cercanos”), realiza una acción (emitiendo una llamada API a la función de mapa) y luego hace una observación (“Hay dos pizzerías y un restaurante indio a dos cuadras del cine”).
ReAct no es la única forma de crear agentes, pero es fundamental en la mayoría de los sistemas agénticos exitosos. Hoy en día, los agentes suelen ser bucles que recorren la secuencia pensamiento-acción-observación .
Las herramientas disponibles para el agente pueden incluir herramientas locales y remotas, como bases de datos, microservicios y software como servicio (SaaS). La especificación de una herramienta incluye una explicación en lenguaje natural de cómo y cuándo se usa, así como la sintaxis de sus llamadas a la API.
El desarrollador también puede indicarle al agente que, básicamente, cree sus propias herramientas sobre la marcha. Supongamos que una herramienta recupera una tabla almacenada como texto separado por comas y, para lograr su objetivo, el agente necesita ordenarla.
Ordenar una tabla enviándola repetidamente a través de un LLM y evaluando los resultados sería un desperdicio colosal de recursos, y ni siquiera se garantiza el resultado correcto. En su lugar, el desarrollador puede simplemente indicar al agente que genere su propio código Python cuando encuentre una tarea simple pero repetitiva. Estos fragmentos de código pueden ejecutarse localmente junto con el agente o en una herramienta de interpretación de código segura dedicada.
Las herramientas disponibles permiten dividir la responsabilidad entre el LLM y el desarrollador. Una vez especificadas las herramientas disponibles para el agente, el desarrollador puede simplemente indicarle qué herramientas usar cuando sea necesario. O bien, puede especificar qué herramienta usar para qué tipos de datos, e incluso qué elementos de datos usar como argumentos durante las llamadas a funciones.
De forma similar, el desarrollador puede simplemente indicarle al agente que genere código Python cuando sea necesario para automatizar tareas repetitivas o, alternativamente, indicarle qué algoritmos usar para cada tipo de datos e incluso proporcionar pseudocódigo. El enfoque puede variar según el agente.
Tiempo de ejecución
Históricamente, había dos formas principales de aislar el código que se ejecutaba en servidores compartidos: la contenerización, que era eficiente pero ofrecía menor seguridad, y las máquinas virtuales, que eran seguras pero implicaban una gran sobrecarga computacional.
En 2018, el servicio de computación sin servidor Lambda de Amazon Web Services (AWS) implementó Firecracker , un nuevo paradigma en el aislamiento de servidores. Firecracker crea «microVM», con aislamiento de hardware y sus propios kernels de Linux, pero con una sobrecarga reducida (de tan solo unos pocos megabytes) y tiempos de inicio reducidos (de tan solo unos milisegundos). Esta baja sobrecarga significa que cada función ejecutada en un servidor Lambda puede tener su propia microVM.
Sin embargo, dado que instanciar un agente requiere implementar un LLM, junto con los recursos de memoria para rastrear las entradas y salidas del LLM, el modelo de aislamiento por función resulta poco práctico. En cambio, con el aislamiento basado en sesiones, a cada sesión se le asigna su propia microVM. Al finalizar la sesión, la información de estado del LLM se copia a la memoria a largo plazo y la microVM se destruye. Esto garantiza una implementación segura y eficiente de hosts de agentes.
Llamadas de herramientas
Así como existen varios marcos de desarrollo para la creación de agentes, existen varios estándares para la comunicación entre agentes y herramientas, el más popular de los cuales, actualmente, es el protocolo de contexto de modelo (MCP).
MCP establece una conexión uno a uno entre el LLM del agente y un servidor MCP dedicado que ejecuta llamadas de herramientas, y también establece un formato estándar para pasar diferentes tipos de datos entre el LLM y su servidor.
Muchas plataformas utilizan MCP de forma predeterminada, pero también son configurables, por lo que admitirán un conjunto creciente de protocolos a lo largo del tiempo.
Sin embargo, a veces la herramienta necesaria no cuenta con una API disponible. En tales casos, la única forma de recuperar datos o realizar una acción es mediante movimientos del cursor y clics en un sitio web. Existen diversos servicios disponibles para realizar este uso informático . Esto convierte a cualquier sitio web en una herramienta potencial para los agentes, abriendo acceso a décadas de contenido y servicios valiosos que aún no están disponibles directamente a través de las API.
Autorizaciones
Con los agentes, la autorización funciona en dos direcciones. En primer lugar, los usuarios necesitan autorización para ejecutar los agentes que han creado. Pero como el agente actúa en nombre del usuario, normalmente necesitará su propia autorización para acceder a los recursos de la red.
Existen diferentes maneras de abordar el problema de la autorización. Una de ellas es mediante un algoritmo de delegación de acceso como OAuth, que básicamente gestiona el proceso de autorización a través del sistema de la agencia. El usuario introduce sus credenciales de inicio de sesión en OAuth, y el sistema de la agencia lo utiliza para acceder a recursos protegidos, pero nunca tiene acceso directo a las contraseñas del usuario.
En el otro enfoque, el usuario inicia sesión en un servidor seguro, y este tiene sus propias credenciales de acceso a recursos protegidos. Los permisos permiten al usuario seleccionar entre diversas estrategias de autorización y algoritmos para implementarlas.
Memoria y huellas-Memoria a corto plazo
Los LLM son motores de predicción de la siguiente palabra. Lo que los hace tan increíblemente versátiles es que sus predicciones se basan en largas secuencias de palabras que ya han visto, conocidas como contexto . El contexto es, en sí mismo, un tipo de memoria. Pero no es el único tipo que necesita un sistema agéntico.
Supongamos, de nuevo, que un agente intenta reservar un restaurante cerca de un cine y, a partir de una herramienta de mapas, obtiene un par de docenas de restaurantes en un radio de una milla. No quiere volcar información sobre todos esos restaurantes en el contexto del LLM: toda esa información superflua podría alterar las probabilidades de la siguiente palabra.
En cambio, puede almacenar la lista completa en la memoria a corto plazo y recuperar uno o dos registros a la vez, según, por ejemplo, las preferencias de precio y gastronomía del usuario, y la proximidad al cine. Si ninguno de esos restaurantes resulta atractivo, el agente puede recurrir a la memoria a corto plazo, en lugar de tener que ejecutar otra llamada a la herramienta.
Memoria a largo plazo
Los agentes también deben recordar sus interacciones previas con sus clientes. Si la semana pasada le dije al agente de reservas del restaurante qué tipo de comida me gusta, no quiero tener que repetirlo esta semana. Lo mismo ocurre con mi tolerancia al precio, el tipo de ambiente que busco, etc.
La memoria a largo plazo permite al agente consultar la información necesaria sobre conversaciones previas con el usuario. Sin embargo, los agentes no suelen crear memorias a largo plazo por sí mismos. En cambio, tras finalizar una sesión, toda la conversación pasa a un modelo de IA independiente, que crea nuevas memorias a largo plazo o actualiza las existentes.
La creación de memoria puede implicar el resumen y la fragmentación de LLM, donde los documentos se dividen en secciones agrupadas por tema para facilitar su recuperación en sesiones posteriores. Los sistemas disponibles permiten al usuario seleccionar estrategias y algoritmos para el resumen, la fragmentación y otras técnicas de extracción de información.
Observabilidad
Los agentes son un nuevo tipo de sistema de software y requieren nuevas formas de observar, monitorear y auditar su comportamiento. Algunas de las preguntas que nos planteamos resultarán familiares: si los agentes funcionan con la suficiente rapidez, cuánto cuestan, cuántas llamadas a herramientas realizan y si los usuarios están satisfechos. Pero también surgirán nuevas preguntas, y no podemos predecir necesariamente qué datos necesitaremos para responderlas.
Las herramientas de observabilidad y rastreo pueden proporcionar una visión integral de la ejecución de una sesión con un agente, desglosando paso a paso las acciones realizadas y su motivo. Para el desarrollador de agentes, estos rastreos son clave para comprender el rendimiento de los agentes y proporcionan los datos necesarios para optimizar su funcionamiento.
¡Espero que esta explicación haya desmitificado la IA agente lo suficiente como para que estés dispuesto a intentar construir tus propios agentes!