Agentes inteligentes: Tipos de plataformas

Habíamos visto que dada la complejidad del diseño de agentes, son sistemas abiertos y cooperativos donde cada agente debe jugar su función se requiere de plataformas de desarrollo que faciliten la programación. Y que existían dos tipos de plataformas: las herramientas o armazones y las genéricas.

Plataformas de herramientas o armazones.
El caso más significativo de las armazones de software es Zeus, que presenta un entorno de desarrollo con el que se programa visualmente el SMA. Las posibilidades de programación a través de este entorno son muy variadas. Entre otros hay que suministrar una ontología: reglas de comportamiento, planes de ejecución de tareas y mensajes a enviar a otros agentes.

Debido a esta versatilidad en su configuración, el diseño con ZEUS se hace tan complejo como programar con lenguajes de agentes. Aunque se facilita el desarrollo de aspectos como la coordinación, quedan pendientes decisiones como qué hay que coordinar y para qué. Por ello, la aportación de una metodología en este caso consistiría en proporcionar un ciclo de desarrollo, actividades y elementos conceptuales que ayudasen al descubrimiento incremental de los elementos requeridos por ZEUS. Un ejemplo, aunque limitado, de metodología para ZEUS se tiene de mano de sus propios desarrolladores [Collis y Ndumu 99], donde se aplica la idea de rol para guiar el descubrimiento de funciones del sistema.

Zeus es un conjunto de herramientas para ayudar en la creación de sistemas de
agentes colaborativos (limitados en competencias y recursos, por lo
que deben compartir sus habilidades con otros para realizar un
problema más complejo)
http://www.labs.bt.com/projects/agents/zeus/index.htm

Es un paquete de clases JAVA, que cuenta con
Agent building software:
• Editores que ayudan al usuario a crear los agentes utilizando los “bloques” o componentes software
• Sigue la metodología propia en 6 etapas:
1. Análisis (identificación de agentes)
2. Definición de agentes (atributos).
3. Organización de agentes.
4. Definición de las tareas de los agentes.
5. Coordinación de agentes (protocolos).
6. Generación automática de código (JAVA)
Agent Component Library.
• Bloques de construcción de agentes.
• Proporciona mecanismos de comunicación
1. Lenguaje de comunicación (ACL, KQML)
2. Mecanismos de paso de mensajes (TPC/IP)
• Gestión y uso de Ontologías.
• Librerías de protocolos.
• Otros.

Zeus es a su vez una herramienta y una metodología…

ABLE (Agent Building and Learning Environment) [IBM 02] aunque también permite el prototipado rápido de SMA, no llega al nivel de ZEUS. ABLE es una herramienta de IBM para la construcción de sistemas de agentes inteligentes donde todos sus elementos, incluso los agentes, se construyen por composición de AbleBeans, una extensión de los JavaBeans1. Son de interés un conjunto de AbleBeans especializados que implementan sistemas de aprendizaje estadísticos (mapas autoorganizativos, redes neuronales, mapas de conexión) y control simbólico (razonamiento por encadenamiento hacia delante y lógica de predicados). ABLE incorpora también un entorno visual de desarrollo donde se interconectan AbleBeans. El interés de esta plataforma es que soluciona visualmente la construcción y comunicación de los agentes.

ABLE no llega a detallar cómo se obtiene la funcionalidad de los agentes y cómo deben actuar en cada situación. La aportación de una metodología a ABLE sería más amplia que en el caso de ZEUS. Se trataría de dar medios para detallar aspectos de control del agente teniendo en cuenta los elementos de control que vienen predefinidos en ABLE. Sería útil, por ejemplo, la idea de casos de uso [Jacobson, Booch y Rumbaugh 00] para identificar conjuntos de funciones a proporcionar por el sistema y escenarios para describir cómo se espera que se realice el proceso de aprendizaje de los agentes.
Entorno: plataformas para el diseño, implementación, pruebas y
ejecución de agentes autónomos y sistemas multiagente.
La mayoría implementan la arquitectura abstracta de la especificación
FIPA (www.fipa.org) y proporcionan servicios o facilidades para la
ejecución de MAS…

Herramientas o armazones:
1. Zeus.
2. ABLE

Plataformas genéricas
Las plataformas de desarrollo más extendidas son JADE [Bellifemine, Poggi y Rimassa 01] y Grasshopper [Breugst y Magedanz 98].

JADE es la implementación oficial del estándar FIPA [FIPA 95], y soporta todos los servicios básicos de infraestructura especificados en FIPA (comunicaciones, movilidad, gestión de agentes y localización de agentes), a los que añade algunas utilidades gráficas para facilitar la administración de las plataformas y la depuración de los mensajes intercambiados por agentes en tiempo de ejecución.

Es un paquete desarrollado en Java que cuenta con
Java Agent DEvelopment framework
Soporta la implementación de MAS (FIPA compliant) :
• Librería de paquetes para programar agentes.
• Herramientas para la depuración y la ejecución de agentes.
Plataforma distribuida para la ejecución de agentes (heterogéneos
como Zeus): middle-ware para MAS
• servicios para agentes: directorios, codificación y transporte de mensajes
• herramientas: monitor remoto de agentes, sniffer agent, dummy agent
Completamente desarrollado en JAVA
Libre distribución bajo licencia LPGL
http://sharon.cselt.it/WWW projects/jade/

Grasshopper es la implementación del estándar MASIF [Baümer et al. 00], que soporta la movilidad de agentes en un entorno distribuido utilizando comunicación y servicios CORBA [OMG 00a]. En JADE y Grasshopper existe una arquitectura básica de agente que hay que utilizar para acceder a los servicios de la plataforma correspondiente.
El diseño de agentes con estas plataformas significa atenerse a unos estándares de comunicación y de gestión de agentes. El resto, como la especificación del control del agente, su inteligencia o las relaciones entre las tareas del sistema, se deja al criterio del desarrollador. La aportación de una metodología a desarrollos basados en este tipo de plataformas consistiría en organizar el proceso de generación del SMA y en proporcionar elementos para el diseñador pueda describir estos aspectos teniendo en cuenta las restricciones de la plataforma destino.

Plataformas genéricas:
1. JADE.
2. Grasshopper.

Agentes inteligentes: ¿lenguaje o plataforma?

A la hora de desarrollar un SMA se pueden considerar dos filosofías de trabajo, una basada en la utilización de un lenguaje de especificación de agentes y la otra a través del desarrollo de un sistema de software a partir de una plataforma que sirve de base a la construcción del SMA, dicha plataforma proporciona servicios básico de comunicación, gestión de agentes y una arquitectura de agente. En cualquiera de los dos casos, y sobre todo cuando el sistema a desarrollar es grande, se necesita metodologías que estructuren el desarrollo de acuerdo con las prácticas de ingeniería de software.

Tenemos que un SMA se puede abordar de dos formas:
1. Utilizando un lenguaje de especificación de agentes.
2. Utilizando una plataforma (sistema de software).

Lenguajes de especificación de agentes

Existen diferentes lenguajes específicos para agentes. Aunque vale decir que también se pueden desarrollar los SMA a tr5aves de lenguajes de propósito general tales como C++, Java, Pascal, etc. Pero seria mas engorrosa su implementación ya que se parte de cero y hay que construirlo todo, mientras los lenguajes de agentes ya ofrecen ciertas herramientas que facilitan la elaboración de los SMA.

El lenguaje de agente mas conocido es Agent0, donde se utilizo, por primera vez, la definición de programación orientada a gentes. Y propuso un nuevo paradigma de programación en el que la entidad principal es el agente. En Agent0, un agente es una entidad cuyo estado se ve como un conjunto de componentes mentales tales como creencias, habilidades, elecciones y compromisos, con estas entidades y un conjunto de primitivas, como son: enviar mensajes, comprometerse o solicitar la ejecución de una tarea, es posible elaborar un lenguaje de descripción de agentes. Existen otros lenguajes que siguen el modelo de Shohan como CASA o PLACA, estos lenguajes añaden la capacidad de planificar acciones a los agentes en el SMA.

Han surgido otros enfoques orientados a teorías de agentes, donde se enuncian definiciones formales para la construcción de los SMA. que permite la confirmación de las propiedades del mismo, lo cual permite manipular la intencionalidad de los agentes. Dentro de estos nuevos enfoques se encuentra ConGOLOG el cual se centra en modelar la ejecución de tareas asignadas a varios agentes y su efecto en el entorno y se tiene en cuenta la modificación de los conocimientos que sufren la entidades en la ejecución de las tareas (fluents) y defines axiomas: de ejecución de tareas, de precondición de tareas de marco (especifica a que fluents afecta la ejecución de la tarea). La ejecución del SMA consiste en descubrir que acciones se pueden ejecutar en el SMA que no creen inconsistencias en el conjunto de axiomas acumulados, que son el conjunto de precondiciones asociadas a las acciones posibles de los agentes.

Lenguajes de agentes:
1. Agent0
2. CASA
3. ConGOLOG.

Plataformas para el diseño de Sistemas Multi-Agentes

La tendencia actual en el desarrollo de SMA es la utilización de plataformas de desarrollo. Esto se debe en gran parte al nivel de conocimientos necesarios que generalmente implica programar con un lenguaje de agentes. Para suplir dicha complejidad han surgido dos tendencias por un lado armazones de software de SMA adaptables a diferentes dominios de aplicación (herramientas) y por otro lado plataformas de desarrollo de ámbito genérico que son implementaciones de estándares de agentes. Aunque el desarrollo con los armazones es más sencillo hoy en día predominan los segundos.

Tipos de plataformas:
1. Herramientas o armazones.
2. Plataformas genéricas.

La mayoría de las plataformas implementan las arquitecturas abstractas FIPA

Agentes de negociación

Kasbah es un sistema basado en la web, a través del cual los usuarios pueden crear agentes autónomos para comprar y vender productos. El cual ha sido diseñado para ayudar a los usuarios en la búsqueda y elección del producto que mejor satisfaga sus necesidades. Así como la posterior negociación entre comprador y vendedor con el fin de obtener el mejor precio posible.

El prototipo Kasbah incluye agentes vendedores, agentes compradores y un mercado virtual. Ha sido implementado en CLOS.

Tanto los agentes vendedores o compradores que se generan funcionan de forma autónoma y una vez liberados en el mercado tienen capacidad para negociar y tomar decisiones por si mismo, sin intervención del usuario.

Los agentes vendedores cuentan con los siguientes parámetros:

Fecha deseada de venta: Es la fecha tope o limite para efectuar la venta del producto.

Precio deseado: Es el precio en el que el usuario quiere vender su producto.

Precio mínimo aceptable: Es el menor precio en el que el usuario puede vender su producto.

Mientras los agentes compradores utilizan los siguientes parámetros:

Fecha de compra: Es la fecha tope para efectuar la compra del producto.

Precio deseado: Es el precio que el usuario quiere pagar por el producto.

Precio máximo aceptable: Es el mayor precio en el que el usuario esta dispuesto a pagar por el producto.

Los agentes tanto compradores como vendedores incluyen los siguientes métodos para su interacción, lo cual le permite comunicarse directamente entre ellos.

Accet-offer? (agent_1, agent_2, offer): El agente 2 pregunta al agente 1 si acepta la oferta y este responde “accepted” o “rejected”.

What-is-price? (agent_1, agent_2): El agente 2 le pregunta al agente 1 el precio del producto ofertado. Si el agente 1 es comprador entonces el precio es lo que quiere pagar, pero si es vendedor es le precio en que quiere vender.

What-is-item? (agent_1, agent_2): El agente 2 le pregunta al agente 1 cual es el producto que compra o vende.

En Kasbah los agentes envían sus ofertas a una pizarra común y permanecen inactivos hasta que haya una respuesta.

Actualmente Kasbah negocia con 9 clases de productos, tales como CDs y cámaras, y tiene la ventaja de no requerir que los usuarios permanezcan todo el tiempo a la espera de la negociación.

Otros agentes

MAGMA (Minnesota Agent Marketplace Architecture) es una arquitectura extensible para un mercado virtual basado en agentes, que incluye todos los elementos requeridos para simular un mercado real.

Estos elementos incluyen la infraestructura de comunicaciones, mecanismos para el almacenamiento y la transferencia de los bienes, transacciones bancarias y monetarias, y los mecanismos económicos para las transacciones (directas o a través de intermediarios) entre productor y consumidor.

Además de proporcionar todos los servicios necesarios para las actividades comerciales de los agentes, los cuales estas disponibles a través de una mensajería estándar abierta API, que permite utilizar un conjunto heterogéneo de agentes, independiente de la plataforma y del lenguaje.

La Implementación actual consta de un servidor de retransmisiones (desarrollado en Allegro Common Lisp) y de un conjunto de agentes (escritos en Java), que pueden funcionar en Internet.

Magma incluye varios agentes negociantes, un servidor de publicidad y un banco.

Los agentes negociantes dirigen todo su negocio en el sistema, siendo responsables de la compra y venta de sus productos y de la negociación de los precios. Todos los agentes son funcionalmente independientes y se comunican entre si a través de sokets.

El servidor de publicidad dispone de un servicio de anuncios clasificados que incluyen búsqueda y recuperación de anuncios por categoría.

El banco provee un conjunto básico de servicios financieros incluyendo revisión de cuentas, líneas de crédito y dinero electrónico.

Infilebot Project (Proyecto que se ha estado desarrollando en Barcelona). Recibe una petición del usuario y es capaz de moverse por Internet buscando información relacionada. También filtra la información obtenida, de acuerdo con las necesidades del usuario y obtiene documentos relevantes para el usuario. Aprende de sus propias experiencias pudiendo entonces descubrir el modo mas adecuado de alcanzar objetivos y entiende las peticiones del usuario en lenguaje de alto nivel.

Referencias:

http://www.firefly.com
http://www.agents-inc.com
http://www.bf.cstar.ac.com
http://www.jango.com
http://www.magma.ca/~mrw/agents/
http://pattie.www.media.mit.edu/people/pattie
http://www.kasbah.media.mit.edu

Agentes observadores

Los agentes observadores operan autónomamente, observando información específica a eventos. Cuando la información relevante del usuario es encontrada, el agente puede notificar al usuario directamente o guardar la información para accesos futuros. Por ejemplo, se descubrió un número de periódicos electrónicos sobre el Internet el cual podría producir versiones personalizadas del periódico de acuerdo al interés específico del lector, algunos son capaces de alterar suscripciones con una noticia rápida cuando una historia de interés es detectada.

FishWrap, que formó parte de los proyectos de “Noticias del futuro”, es un prototipo de lo que se pretende sean estos periódicos ciberespaciales, una combinación de noticias de diversas fuentes configuradas según los intereses particulares de cada usuario. Una de las conclusiones, aparentemente contradictorias, del departamento de Driscoll es que la producción y distribución de noticias va a ser cada vez mas local, incluso mientras se consolida su naturaleza global.

Está diseñado para direccionar las necesidades de noticias nuevas dentro de la comunidad MIT. Fishwrap intenta balancear un deseo individual de personalización con la necesidad de participar y saber acerca del mundo en general. Fishwrap provee a sus lectores de una ventana (egocéntrica) dentro de los asuntos del mundo, permitiéndole recibir noticias desde su lugar de nacimiento hasta historias de interés personal. Además para las historias seleccionadas personalmente, Fishwrap provee una continua actualización de noticias generales seleccionadas así como conecta a los lectores a la comunidad MIT y al mundo.

Fishwrap se diseño para aceptar noticias tradicionales, historias y contribuciones directas de la comunidad. Los calendarios social y cultural son también reunidos e integrados dentro del sistema. Todos los aspectos que entran al sistema son analizados para sus relación actual o geográfica. Las historias son puestas automáticamente en categorías tales como: “Star Trek”, “Softball”, “inteligencia artificial” o aún “O.J.Simpson”.

El Fishwrap empleó un modelo de noticias automatizado llamado “GLUE” el cual estaba compuesto de componentes interrelacionados que integran una noticia individual: Perfil del usuario, representación del conocimiento, distribuidores de noticias, autentificación, organización de si mismo y de la comunidad, y presentación.

Otro ejemplo de un periódico que notifica a sus lectores cuando cuenta una historia de interés es el Mercury Center de NewsHound. Los usuarios definen un perfil detallando áreas de interés, el cual es entonces remitido por el correo electrónico de NewsHound. Las historias desde varios servicios de cable son buscadas cada hora, y esas que concuerdan con el perfil de usuario son remitidos por correo electrónico al usuario inmediatamente.

NewsHound busca automáticamente las historias y muchos anuncios clasificados en las noticias del San José Mercury News, así como cientos de historias no publicadas en el papel. Selecciona artículos y anuncios que concuerdan con sus criterios y los envía directamente a su dirección de Internet. Los usuarios no tienen que gastar su tiempo buscando su información por que NewsHound hace el trabajo.

Este servicio requería de ser mejorado agregando mas inteligencia dentro del proceso de búsqueda e incluyendo un lazo de retroalimentación , de tal manera que el agente pueda aprender que las historias son realmente de interés para el subscriptor. Sin ese lazo de retroalimentación, el usuario bombardeado con información y eventualmente ignora el agente completamente.

Otras implementaciones de agentes observadores han sido el Personal View de Ziff Davis y el Personal Journal de Dow Jones, ambos son periódicos electrónicos personalizados, y JobCenter, el cual mira o busca propaganda para lugares de trabajo las cuales empatan con lo que el subscriptor quiere. Sin embargo, se podría argumentar que estas implementaciones son sólo search engines (motores de búsqueda) automatizados, así el nivel de inteligencia parece ser bajo.

Personal Journal de Dow Jones y Co. provee al usuario con una versión electrónica personalizada del diario Wall Street basados en los temas de selección de los suscriptores.

Personal Journal considerado el primer periódico electrónico para el cliente que provee una lectura rápida concisa de noticias relevantes e información para profesionales y más. Presenta una combinación del diario Wall Street, resúmenes de negocios y noticias a lo amplio del mundo, deportes y clima, es decir, Personal Journal ofrece un resumen de noticias primero en la mañana y luego también cortos de noticias actualizadas las 24 horas del día.

Personal Journal está disponible las 24 horas del día siete días a la semana, para cualquiera que tenga una computadora basada en Windows y un módem con una velocidad de 9600 o más rápido. Personal Journal no está disponible en Internet.

Ziff Davis Personal View es otro servicio libre de noticias calientes de las mejores fuentes de noticias, sino también filtra o selecciona las noticias, dándole al usuario solamente las historias que quiere seguir. Los usuarios llenan un perfil el cual es usado para seleccionar historias de interés. Entonces Web, página personalizada es creada para cada usuario del sistema.

Un ultimo ejemplo de aplicación es JobCenter que envia anuncios de porciones de trabajo por el correo electrónico. Y funciona a través de una búsqueda automática de los trabajos que concuerden con lo que los empleadores están buscando. Cada día, el JobCenter va a trabajar para emparejar (comparar) cada envío con la última base de datos que ingresa. Los resultados son regresados por correo electrónico.

Agentes comparativos y notificadores

Agentes de compra comparativa

Los agentes de compras son capaces de hacer comparaciones y encontrar el mejor precio para un artículo. Los vendedores al por menor pueden protegerse a ellos mismos de este tipo de competición dando a sus productos nombres únicos o bloqueando el acceso a los agentes de búsqueda (como está sucediendo a la gente Bargain Finder).

Actualmente, el agente comprobador mejor conocido en Internet es el agente Bargain Finder de Andersen Consuling. Este agente hace comparaciones de los precios de venta para discos compactos (CDs). El Bargain Finder exhibe algunas características de un agente inteligente en el que un número de diferentes partes están envueltas, la operación es remota y la información es difícil de encontrar. Los factores principales que pesan contra la clasificación de la Bargain Finder como un verdadero agente inteligente es que solamente su manejo es un problema de una sola dimensión, a saber, comparando precios para un único producto. No tiene que negociar o deshacerse de nada, así que la “inteligencia” requerida es mínima. La parte inteligente está siendo capaz de hablarles a diferentes vendedores de CD.

Bargain Finder, se ha representado en el ciberespacio como una esfera amarilla con casco de minero y se dedica a buscar discos compactos baratos en Internet. Su misión se ve obstaculizada cuando el vendedor de un disco descubre que está negociando con un agente virtual, en lugar de un ser humano. ShopBot realiza la misma función, pero aprende de sus errores, para que los vendedores no descubran que es una criatura artificial.

Good Shuff Cheap. Con el cual pretenden ofrecer un agente inteligente sin embargo, está restringido a su propia tienda (operación local), y es un poco mas que un motor de búsqueda el cual puede enviar autónomamente correo electrónico.

Agentes notificadores

Jango es un agente notificador de productos en Internet, que utiliza los servicios del buscador Excite y esta basado en la recuperación de información en paralelo de la web.

Cuando un usuario ingresa el nombre del producto que quiere comprar, Jango automáticamente determina que tiendas y sitios son relevantes. Entonces consulta estos sitios y rápidamente prepara informes para el comprador, incluyendo datos tales como: información detallada del producto, análisis comparativo, precio y especificación del producto. En caso que el usuario vaya a comprar, Jango cumplimenta el formulario del pedido.