Reflexiones sobre Andriod

Una de las cosas que estamos mirando es cómo utilizar Android como plataforma de ejecución de agentes inteligentes. En principio, la idea es tener una arquitectura de agente que se pueda ejecutar sobre Android. Si además este agente es capaz de controlar el resto de aplicaciones nativas y acceder a sus datos, entonces sería fantástico y estaríamos cerca del agente que aparece en el vídeo Apple’s Knowledge Navigator (mov, 15 Mb).

Pero poco a poco.de momento, bastaría con que nuestro modelo de agente sea implementable en dispositivos móviles. Y la verdad es que los conceptos que se manejan en Andriod–actividades, intenciones, servicios y proveedores de contenidos–casan bastante bien con los componentes de nuestros agentes: comportamientos, capacidades, eventos y (por supuesto) creencias.

En principio, un agente está formado por un conjunto de comportamientos que se asocian a distintos escenarios o estados del mundo exterior. Cada comportamiento está formado por una serie de capacidades que establecen qué sabe o puede hacer el agente en cada situación. una capacidad representa una especie de regla Evento-Condición-Acción: cuando llega un evento determinado, si se cunple la condición de activación se ejecuta la acción asociada. Si un comportamiento está activo, todas sus capacidades están activas. Sólo se atenderá a los eventos que tengan alguna capacidad asociada, por lo que de esta forma se permite focalizar la atención del agente en los eventos que sean de interés o relevantes para el escenario en el que se encuentra actualmente.

La traducción de este esquema a entidades de Andriod es bastante intuitiva.

  1. Las capacidades se corresponden a las actividades de Andriod
  2. Los eventos están intimamente relacionados con las intenciones. El «Intent Receiver» de Andriod sería algo semejante a un manejador de eventos para el agente (?)
  3. El hilo de control del agente, encargado de la activación y desactivación de los comportamientos, e incluso de cada comportamiento, queda oculto para los usuarios que sólo ven las capacidades que proporciona el agente sin preocuparse por su ciclo de ejecución. Los servicios de Android cumplen bastante bien esta función: entidades en ejecución en segundo plano.
  4. Las creencias del agente, como conocimiento compartido por todas sus capacidades, tendrían una interfaz a través del proveedor de contenidos.

Blogged with Flock