Cuando empecé a jugar con los primeros modelos de lenguaje para construir agentes, mi euforia duró poco. Rápidamente me di cuenta de una verdad incómoda: mis “agentes” eran, en el fondo, bots ciegos y sordos. Podían generar texto coherente, pero vivían en una burbuja. No veían el estado real del mundo, no podían observar lo que estaba pasando más allá del prompt inicial que yo les daba. Era como darle a un arquitecto el encargo de diseñar una casa sin mostrarle el terreno ni las restricciones de presupuesto. La frustración era real.
Ahí fue cuando me obsesioné con la percepción en los agentes de IA. No me refiero a la percepción humana con ojos y oídos, sino a la capacidad de un sistema de IA para recopilar información relevante de su entorno de manera autónoma. Si un agente no tiene un mecanismo robusto para “ver” o “sentir” el mundo, por muy inteligente que sea su LLM, su utilidad estará seriamente limitada.
El problema de la ceguera textual
Un LLM es un prodigio lingüístico, eso es innegable. Pero su conocimiento está encapsulado en el texto con el que fue entrenado. Cuando le pides que haga algo en el “mundo real” (que puede ser una base de datos, una web, un sistema operativo o incluso un juego), solo puede actuar sobre lo que tú le dices que es el estado actual. Si el estado cambia y no se lo actualizas, se pierde. Este es el punto crítico: ¿cómo le damos al agente la capacidad de actualizar su propio “conocimiento” del entorno?
Dando “ojos” y “oídos” a tus agentes: Mis herramientas preferidas
Para mí, la clave está en el uso de herramientas y la integración con APIs. Es la forma más efectiva de romper esa burbuja textual. Si mi agente necesita saber el clima, no le pregunto directamente al LLM (que solo tendría datos históricos o fabricados); le doy acceso a una API del clima. Si necesita interactuar con un sistema interno, le doy las funciones para consultarlo y modificarlo.
Esto no es solo darle una lista de funciones para llamar; es enseñarle cuándo y cómo usarlas para observar.
- Web Scraping y APIs externas: Este es mi pan de cada día. Si el agente necesita información pública de la web, un
fetch_web_pageoquery_apies vital. Pero ojo, el LLM no debería parsear HTML crudo. Es mi responsabilidad pre-procesar esa información y presentarle al agente un resumen estructurado y relevante. Si no, le ahogaré en ruido. - Consulta de bases de datos: Para datos internos, darle al agente la capacidad de ejecutar consultas SQL (o el equivalente NoSQL) y obtener resultados es poderoso. De nuevo, la salida debe ser concisa.
- Monitoreo de eventos: En algunos casos, los agentes necesitan reaccionar a eventos. Pensemos en un agente que monitorea logs de sistema. No se trata de que “lea” activamente, sino de que yo le alimente con resúmenes de eventos críticos que ocurrieron.
Aquí es donde entra en juego la arquitectura. No se trata solo de prompt engineering, sino de diseñar un sistema donde la observación sea una fase activa y gestionada. Ya he hablado de esto antes, de cómo ir más allá del prompt chaining, y la observación es un pilar fundamental de esa visión.
El dilema del “cuánto observar”
Una vez que le das “ojos” al agente, el siguiente problema es que ve demasiado. La sobrecarga de información es tan inútil como la ceguera. Es como ir al supermercado y que alguien te lea la etiqueta nutricional de cada producto. Necesitamos filtros, resúmenes, y una gestión inteligente del contexto.
En mi experiencia, esto se reduce a:
- Relevancia: ¿Qué información es realmente importante para la tarea actual del agente? Aquí es donde el diseño de las herramientas y sus resultados importa.
- Contexto limitado: Los LLMs tienen ventanas de contexto finitas. Si le metes todo lo que el agente ha “observado” en cada turno, rápidamente te quedas sin tokens o disparas los costes. He aprendido a ser brutalmente selectivo, y a usar la memoria de los agentes para almacenar solo lo esencial y resumido.
Mi convicción: La observación es el verdadero habilitador de la autonomía
Un agente que no puede observar activamente su entorno no es un agente autónomo; es un autómata que ejecuta un guion que tú le das. La verdadera autonomía nace de la capacidad de percibir, razonar, planificar y actuar en un bucle continuo.
Si estás construyendo agentes de IA y te encuentras con que no terminan de “entender” la situación, o que repiten errores obvios, pregúntate: ¿qué está viendo mi agente? ¿Y cómo puedo mejorar esa visión? Es un reto constante, pero es donde la magia ocurre, donde pasamos de meros chatbots a sistemas que realmente interactúan con el mundo. Y, sinceramente, es la parte que más me entusiasma de trabajar con IA.