Recordemos que agente proviene, etimológicamente, de 'agere' (hacer) y que desde una larga tradición que explicamos en el primer artículo de esta serie, hablamos de entes (sean de inteligencia artificial o sean seres vivos) con capacidad de percibir su entorno (sentirlo) y de actuar sobre él.
Sin actuación no hay agencia, por mucha inteligencia que tenga la entidad.
En el caso de los agentes de la 'Agentic AI', su capacidad de actuar sobre el contexto proviene del uso de las denominadas, simplemente, herramientas ('tools').
Vamos a comentar algunas ideas sobre estas herramientas apoyándonos, como hasta ahora en esta serie de posts, en el contenido del libro 'Building Agentic AI systems' de Anjanava Biswas y Wrick Talukdar.
¿Qué es una herramienta?
Sin ponernos demasiado académicos (la verdad es que tampoco hay mucho espacio para el 'academicismo'), una herramienta no es más que un mecanismo que permite a un agente ponerse en contacto con el exterior, pudiendo, de esa forma, obtener información externa, solicitar acciones a entes externos y, en fin, extender sus capacidades, fundamentalmente de actuación, hacia otros elementos digitales e, incluso, hacia elementos físicos.
Mediante herramientas, un agente puede leer de una base de datos externas, invocar un API en la nube, acceder a un fichero local o, incluso, recoger información de un sensor o activar alguna forma de actuador físico.
Tipos de herramientas
Aunque, en el fondo, una herramienta puede ser casi cualquier cosa que podamos crear digitalmente y poner al alcance del agente, en la obra citada se nos ofrece una clasificación de herramientas que puede resultar ilustrativa.
- APIs: mecanismo fundamental y que casi recubre al resto. Mediante APIs podemos acceder a otros sistemas o a servicios locales o en la nube...un universo de posibilidades.
- Herramientas de bases de datos: permiten el acceso a bases de datos para el almacenamiento y recuperación de datos. Con esto, además, se consigue persistencia de la información y poder acceder a información del pasado.
- Funciones de utilidad: software personalizado que se ejecuta localmente en el mismo entorno que el agente y que pueden absorber tareas como el procesamiento y análisis de datos, cambios de formato o cálculos matemáticos.
- Herramientas de integración: Herramientas para interconexión de sistemas y que permiten tareas como sincronización de calendarios, procesamiento de documentos o gestión de ficheros.
- Herramientas de interfaz con hardware: herramientas que permiten la interacción con dispositivos físicos y que pueden ser usados en soluciones procesamiento de información de sensores, Internet de las Cosas o robótica, por ejemplo.
El controlador
Desde que oí hablar por primera vez de este tipo de agentes, agentes cuyo cerebro es un gran modelo de lenguaje o un modelo fundacional, siempre me pregunté cómo se producía, ya en detalle, la invocación de, por ejemplo, una API por parte de un modelo de lenguaje.
Aunque calculo que pueden existir otras soluciones técnicas y que, incluso, en el futuro puedan aparecer otros planteamientos, en el libro mencionado al principio del post nos explican una solución que es muy sencilla y fácil de entender.
Lo que nos dicen es que, realmente, el modelo de lenguaje no invoca a las herramientas. Existe otra pieza, el controlador del agente, que realmente centraliza la lógica.
Es el controlador el que interacciona con las personas recogiendo sus peticiones (los 'prompts') y trasladándole a los usuarios la respuesta final del modelo de lenguaje.
Es el controlador quien interactua con el modelo de lenguaje, trasladándole a su vez los 'prompts' del usuario y recibiendo, o bien las respuestas del modelo de lenguaje, o bien la petición de invocación a una herramienta.
Y es el controlador, finalmente, quien invoca realmente a las herramientas y quien devuelve al modelo de lenguaje la respuesta de esas herramientas.
En cierto sentido, el verdadero agente sería el controlador, aunque la inteligencia, y 'la magia', la ponga el modelo de lenguaje.
Aspectos a tener en cuenta
De cara a la implementación de unos agentes robustos, se nos sugiere tener en cuenta los siguientes aspectos:
- Composición y encadenado: Es decir, los agentes habitualmente no invocan a una herramienta aislada sino que conforman flujos de trabajo ('workflows'), encadenando diversas llamadas a herramientas.
- Selección y decisión: quizá, y como bien destaca la referencia en que nos apoyamos, uno de los elementos más críticos en los agentes. En el caso de sistemas más tradicionales y basados en reglas o flujos predefinidos, como es el caso de la ya mencionada RPA, esta selección se realiza, habitualmente, en tiempo de diseño y es el desarrollador quien la marca de acuerdo con las reglas de negocio y la lógica del robot/agente. Pero, en el caso de los agentes de la Agentic AI, dotados de una mayor inteligencia pero también que 'deciden sobre la marcha', la selección de la herramienta adecuada no es trivial y para realizarla los agentes deben evaluar el contexto y los requisitos en cada momento. En algunos casos, además, el agente se puede encontrar con la situación de que exista más de una herramienta adecuada y debe ser capaz de seleccionar la mejor.
- Manejo de errores: Como en cualquier forma de software, incluso cualquier forma de automatización, es necesario prever las situaciones de error y las necesidades y mecanismos de recuperación, algo que puede llegar a ser más complejo que la propia actuación en los casos 'happy path'.
- Gestión del estado de la herramienta: En algunos casos, las herramientas necesitan acciones de inicialización o de 'limpieza'. Por ello, los agentes deben manejar adecuadamente los estados de las herramientas y realizar correctamente, por ejemplo, la asignación y liberación de recursos.
- Actualizaciones y versionado de herramientas: Como toda forma de software, las herramientas evolucionan con el tiempo y aparecen nuevas versiones. Por ello, los agentes deben ser capaces de gestionar esas actualizaciones, incluyendo asuntos como la compatibilidad o el dejar de usar funcionalidades obsoletas, así como adaptarse a las nuevas interfaces de las herramientas.
- Seguridad y control de acceso: los agentes también han de tener en cuenta los aspectos de seguridad, como gestión de credenciales, especialmente cuando acceden mediante herramientas a datos sensibles o recursos críticos.
Agentes, RPA y herramientas
Como ya comentaba en su momento en el post 'La hibridación de los robots software: agentes frente a RPA y robots conversacionales', los agentes tiene diversos aspectos en común con los robots RPA ('Robotic Process Automation') y, probablemente, donde más coinciden e, incluso, en algunos aspectos se solapan, es precisamente en su uso de herramientas para la interacción con entornos digitales, aplicaciones y documentos, fundamentalmente, mediante APIs, conectores e, incluso, automatización de interfaz de usuario mediante 'screen scraping' como indicaba más arriba.
Conclusiones
Mediante el uso de herramientas, los agentes se puede poner en contacto con el mundo exterior y realizar todo tipo de acciones de lectura (datos o información de sensores), escritura y actuación.
Son las herramientas las que realmente convierten en agentes a este tipo de aplicaciones inteligentes.
Y la unión de la inteligencia del modelo de lenguaje, con las capacidades de actuación de las herramientas, abre unas inmensas posibilidades.
Artículos de este blog relacionados
- Hablemos de agentes (V): reflexión e introspección
- Hablemos de agentes (IV): sistemas multi-agente
- Hablemos de agentes (III): arquitecturas reactivas, deliberativas e híbridas
- Hablemos de agentes (II): auto-gobierno, agencia y autonomía
- Hablemos de agentes (I): concepto, contexto y tres características esenciales
No hay comentarios:
Publicar un comentario