Revista


Agentes Autónomos o "softbots"

Por Raymond Colle

Los avances de la informática están empezando a poner a disposición de usuarios comunes productos basados en la investigación en Inteligencia Artificial y destinados a facilitarles operaciones frecuentes como la mantención de una agenda o la navegación por la WWW. También recurren a los conocimientos acumulados en matteria de realidad virtual y diseño de interfaces. Son los "agentes autónomos" o software-robots ("softbot").

Revisamos aquí brevemente el origen de la problemática y las grandes categorías de "agentes" hoy en desarrollo, para presentar también algunos productos, especialmente los que pueden -ya o muy pronto- servir de ayuda a toda la comunidad de usuarios de Internet.


Origen

"El concepto de objeto activo (también llamado agente o actor) fue introducido por C.Hewitt (1977) para describir un conjunto de entidades que cooperan y se comunican mediante el envío de mensajes. Este concepto aporta las ventajes de la "programación orientada a objetos" a los entornos distribuídos y agrega a los lenguajes "orientados a objetos" algunas características de los sistemas abiertos." (Guessoum Z. & col., p.3)

Esto significa no sólo que los lenguajes más avanzados de programación modular (los "orientados a objetos") -entre los cuales se cuentan los diseñados para funcionar en redes (Internet o redes internas) como "Java" (ver Informativo nº4)- pueden ser usados para crear productos más interactivos, sino también que han de incorporar recursos y formas de operar propios de los Sistemas Expertos y ajustarse así a conocimientos desarrollados en el campo de la Inteligencia Artificial. Su origen también explica que los primeros agentes creados tienen que ver con el correo electrónico y la comunicación por Internet.

El gráfico siguiente muestra la evolución y diferenciación de los lenguajes de programación de alto nivel (e.d. los que utilizan términos próximos al lenguaje natural). Se distingue entre dos tipos de lenguajes en razón de la concepción de los mismos y su modo de operar:

Evolución de Lenguajes de Programación

Los algorítmicos han evolucionado en el sentido de una mayor modularidad, y los de este tipo llamados "orientados a objetos" se han ajustado a la teoría de la "lógica de clases" (que implica la creación de objetos agrupados en "clases", algunos de los cuales serán conjuntos de procedimientos que permiten realizar acciones). Combinando la concepción de objetos activos con la de objetos adaptables (con un sistema que permite el aprendizaje, como está previsto en la programación declarativa), obtenemos los "agentes autónomos", destinados a "ayudar" al usuario.


Nociones básicas

Para facilitar la adaptación al usuario, P.Brusilovsky e I.Beaumont han concebido un "agente" personalizado que opera en un sistema multimedial. Siendo imposible anticipar los requerimientos de cada usuario potencial, la personalización del sistema se obtiene ajustando el programa a un usuario específico y presentándole eventualmente un personaje animado que subraya, comenta y explica la presentación plurimodal. De este modo se desarrolla una mayor interactividad y se la personaliza mejor, facilitando el aprendizaje. Éste es un tipo posible de agente.

Dos corrientes dominan actualmente la investigación sobre "agentes": la de interfaces agentes, software que ayuda activamente al usuario para operar interfaces interactivas, y la de agentes autónomos, software que actúa sin la intervención del usuario y opera concurrentemente, o mientras el usuario es ocioso o realiza otras acciones. También se investiga la confección de agentes autónomos que operan en la interfaz (agentes autónomos de interfaz), es decir que combinan ambos aspectos.

La capacidad de registrar las actividades del usuario de un oomputador ("observarlo") y de extraer de ellas los patrones repetitivos ha llevado a concebir muchas aplicaciones, no sólo en el campo educacional. El "Grupo Autónomo de Agentes" del M.I.T. y grupos semejantes de otras universidades y laboratorios privados están trabajando hace un par de años en la aplicación de la Inteligencia Artificial a la creación de estos "agentes". Están en desarrollo proyectos de agentes que ayudarían por ejemplo a:

Por ahora, cada agente se especializa en un determinado tipo de razonamiento, pero los investigadores desean poder integrar agentes que combinen diferentes métodos y dispongan de una especie de sentido común, importantes en proyectos como "M" y "CAP". Pero el sentido común es algo muy difícil de definir e investigadores de renombre -como Marvin Minsky- no creen en absoluto que sea posible programar algo que se le parezca.


Tipos de agentes

Como ya señalado, existentres tipos de agentes, que dominan actualmente la investigación:

Así, por ejemplo, se designa a veces los motores de búsqueda de la World Wide Web como "agentes" de búsqueda: en realidad, no son agentes en modo alguno si sólo se constituyen de un formulario en que un campo de datos está destinado a recibir una fórmula de búsqueda (son los típicos search engines). Serán "interfaces-agentes" cuando ayuden realmente al cliente a refinar su búsqueda y, más aún, cuando busquen por sí mismo las páginas que puedan contestar a una solicitud, después de hacer una serie de preguntas que les permitan suponer que los datos obtenidos del usuarios son suficientes para encontrar respuestas satisfactorias (éstos son los "reptiles" o web crawlers). Pero esta interfaz-agente no aprende nada ni libera al usuario para que realice otras actividades: no es un agente autónomo.

Como ya señalado, el agente autónomo puede


Estructura de un agente

Para transformar un objeto activo en agente, se requiere agregarles diferentes capacidades como autonomía, sensibilidad al entorno, mejor comunicación, cambio de 'estado mental' en función de la interacción (aprendizaje/capacidad cognitiva) y razonamiento. El aporte de la teoría de los actos de habla ha sido significativo en el desarrollo de varios proyectos.

Un agente debe estar compuesto de varios módulos de comportamiento y de un sistema de control ("meta-comportamiento"). Habrá al menos un módulo de percepción, uno de razonamiento (competencia del agente) y uno de comunicación (Volvemos a encontrar el modelo sistémico tal como aparece en el cognitivismo de D. Norman; ver Fig.DI-8). Se estima que al menos el sistema de razonamiento debe estar "basado en conocimiento" (no procedural), lo cual escapa al menos en parte a la programación orientada a objetos, pero existen agentes "basados en comportamientos", o sea que registran -de un modo simple- ciertas actividades, repetitivas, del usuario y deducen de ellas un patrón, lo cual puede lograrse mediante meros algoritmos (como el reconocimiento de palabras-claves y el cálculo estadístico).

Estructura del agente autónomo

El módulo de control ("Supervisión") descansa en las nociones de estado y de transición. Los estados marcan las etapas importantes de la "vida" del agente, fases unidas por las transiciones o cambios de estado determinados por un acontecimiento externo que afecte al agente. Así el módulo de control es el "gerente" de la respuesta adaptativa del agente. Cada agente puede detectar -por su módulo de percepción- los cambios en su entorno. A continuación, el módulo de control evalúa las condiciones de transición y determina las acciones adecuadas (ajuste de la base de conocimientos, razonamiento, acción externa).

Desde el punto de vista de la programación, el agente se compone de "clases" que se utilizan para definir su función y su modo de operar:

Estas tres clases se subdividen después progresivamente en sub-clases más especializadas, para definir diferentes tipos de agentes.


Ejemplos:
Descriptores: Informática, Software, Inteligencia Artificial, Realidad Virtual
(Este texto es parte de la tesis doctoral del autor).
TDC, Marzo 2001.