Agente de software

Agente de software
Información sobre la plantilla
Agent-soft.png
Concepto:En ciencia de la computación, un agente de software (software agent) es un programa de computación que actúa para un usuario u otro programa en una relación de entidad.

Agente de software. es una parte del software que actúa para un usuario u otro programa como agente. El agente tiene la autoridad de decidir cuándo una acción es apropiada (y si es apropiada). La idea es que los agentes no son estrictamente invocados para una tarea, sino que se activan ellos mismos.

Agente de software, es una parte del software que actúa para un usuario u otro programa como agente. El agente tiene la autoridad de decidir cuándo una acción es apropiada (y si es apropiada). La idea es que los agentes no son estrictamente invocados para un tarea, sino que se activan ellos mismos.

Historia

El concepto de un agente se remonta al modelo de agente de Hewitt (Hewitt, 1977) - "Un objeto autónomo, interactivo que se ejecuta simultáneamente, que posee un estado interno y la capacidad de comunicación".

Para ser más académico, los sistemas de agentes de software son una evolución directa de los Sistemas Multi-Agente (SMA). SMA evolucionaron a partir de la Inteligencia Artificial Distribuida (IAD), Solución Distribuida de Problemas (SDP) e Inteligencia Artificial Paralela (IAP), con lo que hereda todas las características (buenas y malas) de IAD y IA.

En "Knowledge Navigator," de John Sculley en 1987, video retrata una imagen de una relación entre los usuarios finales y los agentes. Al ser un primer ideal, este campo ha experimentado una serie de infructuosas implementations top-down, en lugar de los enfoques pieza-por-pieza y bottom-up. La gama de tipos de agente es ahora (desde 1990) amplia: WWW, motores de búsqueda, etc.

Conceptualización

Concepto más formal

El término "agente" describe una abstracción de software, una idea o concepto, similar a los métodos, funciones y objetos en la programación orientada a objetos. El concepto de un agente provee una forma conveniente y poderosa de describir una compleja entidad de software, que es capaz de actuar con cierto grado de autonomía, para cumplir tareas en representación de personas. Pero a diferencia de los objetos (que son definidos por métodos y atributos), un agente es definido por su propio comportamiento.

Varios autores han propuesto diferentes definiciones de agentes, estos incluyen generalmente conceptos como:

  • Persistencia: el código no es ejecutado bajo demanda, sino que se ejecuta continuamente y decide por sí mismo cuándo debería llevar a cabo alguna actividad.
  • Autonomía: los agentes tienen la capacidad de seleccionar tareas, priorizarlas, tomar decisiones sin intervención humana, etc.
  • Capacidad o habilidad social: los agentes son capaces de tomar otros componentes, a través coordinación y comunicación, que puedan colaborar en una tarea.
  • Reactividad: los agentes perciben el contexto en el cual operan y reaccionan a éste apropiadamente.

Conceptos relacionados y derivados son:

  • Agentes autónomos (agentes capaces de modificar la forma en que ellos llevan a cabo sus objetivos).
  • Sistemas multiagentes (agentes distribuidos que no tienen la capacidad de alcanzar sus objetivos solos y por esto deben comunicarse).
  • Agentes móviles (agentes que pueden trasladar su ejecución a diferentes procesadores).

Distinguiendo agentes de programas

Contrastando el término con conceptos relacionados pueden ayudar a clarificar su significado. Franklin & Graesser (1997), discuten cuatro nociones clave que distinguen a los agentes de programas arbitrarios: reacción con el medio ambiente, la autonomía, la meta de la orientación y la persistencia.

Distinguiendo agentes de objetos intuitivamente

  • Los agentes son más autónomos que los objetos.
  • Los agentes tienen al menos una hebra de ejecución.

Distinguiendo agentes de sistemas expertos

• Los Sistemas expertos no están acoplados a su entorno;

• Los Sistemas expertos no están diseñados para comportarse de forma reactiva o proactiva.

• Los Sistemas expertos no tienen en cuenta la habilidad social (Wooldridge, 2003)

Distinguiendo agentes de software inteligentes de agentes inteligentes en inteligencia artificial

Agentes inteligentes (también conocidos como agentes racionales) no son solo programas computacionales: también pueden ser máquinas, seres humanos, comunidades de seres humanos (como empresas) o cualquier cosa que es capaz de comportarse enfocado en un objetivo. (Russell y Norvig, 2003)

Ejemplos de agentes

  • Agente de compras: aquellos agentes que ayudan a los usuarios a navegar por internet para encontrar productos y servicios. Por ejemplo, cuando se encuentra un artículo, se muestran artículos relacionados seleccionados de forma inteligente.
  • Agente de usuario (agente personal): estos agentes están hechos para automatizar tareas al usuario. Por ejemplo, ordenar emails de acuerdo a las preferencias del usuario, reunir reportes de noticias personalizados o llenar formularios con información del usuario previamente almacenada.
  • Agente de monitoreo y vigilancia predictiva: son usados para observar y reportar sobre un equipo. Por ejemplo, los agentes que monitorizan el nivel de inventarios de una compañía, aquellos que observan los precios de la competencia y los informan, etc.

Otros agentes inteligentes son los robots (arañas) de los buscadores de internet, los filtradores de spam, etc.

Características de un agente de software

Los Agentes de Software poseen un conjunto de características que deben tenerse en cuenta para su desarrollo:

Autonomía. Permite que los agentes puedan operar sin la intervención directa de nadie, ya sea de humanos o de software.

Sociabilidad o Cooperación. Permite a los agentes interactuar con otros agentes y/o con humanos. En la cooperación entre agentes, intercambian conocimientos, experiencias, opiniones y planes.

Reacción. Los agentes están inmerso en un determinado entorno, del que perciben estímulos y ante los que deben reaccionar en un tiempo preestablecido.

Iniciativa. Los agentes no sólo deben reaccionar a los cambios que se produzcan en su entorno, sino que deben poseer un carácter emprendedor y tomar la iniciativa para actuar guiados por los objetivos que deben satisfacer.

Movilidad. Es la principal característica de los agentes que se implementan en Internet. La movilidad proporciona a los agentes la cualidad de transportarse, pueden cambiar de localización de un entorno a otro a través de una red. El cambio de ubicación de los agentes no altera su conocimiento adquirido.

Continuidad temporal. Es otra de las características que diferencia a los agentes con respecto a los simples ejecutores de acciones, ya que continúan ejecutándose mientras dura su ciclo de vida. Una vez creados, los agentes pasan a un estado de espera hasta que un evento provocado por otro agente, por un usuario o cualquier cambio producido en el entorno, los haga despertar para realizar alguna acción.

Adaptabilidad. Esta propiedad es consecuencia de la característica reacción antes mencionada, ya que los cambios producidos en el entorno provocan que los agentes se estén continuamente adaptando a dichos cambios para poder así llevar a cabo sus objetivos eficientemente.

Personalizables. Los agentes deben permitir realizar cualquier trabajo a los usuarios de forma eficiente. Los usuarios realizan distintas tareas, y en caso de realizar similares tareas pueden diferir en algún paso. Por esto los agentes deben configurar las operaciones y la manera en que llevarán a cabo dichas operaciones, adaptándose a las necesidades y preferencia de cada usuario.

Veracidad. Proporciona la certeza de que los agentes no comunican información falsa intencionalmente.

Benevolencia. Esta característica de los agentes asegura que estén dispuestos a ayudar a otros agentes siempre y cuando esto no genere conflicto con sus propios objetivos.

Qué no es agente

Un agente no es un programa tradicional, pues reaccionan al entorno, tiene autonomía y persistencia.

Un agente no es un objeto, porque son más autónomos que estos, son más flexibles (reactivos, proactivos y sociales).

Un agente no es un sistema experto, porque los sistemas expertos no se acoplan a su entorno, no están diseñados para tener comportamientos reactivos ni proactivos, ni tampoco tienen habilidad social.

Atributos

Los atributos básicos de un agente informático son que dichos agentes:

• no son invocados estrictamente por una tarea, sino que se activan ellos mismos,

• pueden estar en un servidor en estado de espera, preservando el contexto,

• pueden hacer que se ejecute un estado en un servidor sobre condiciones de inicio,

• no requieren acción de los usuarios,

• pueden invocar otras tareas incluyendo comunicación.

Impactos

Los agentes de software pueden ofrecer varios beneficios a sus usuarios finales mediante la automatización de tareas complejas o repetitivas. Sin embargo, hay impactos organizativos y culturales de esta tecnología que necesitan ser considerados antes de la implementación de agentes computacionales.

Ejemplos de agentes de software inteligentes

Haag (2006) sugirió que hay solo 4 tipos esenciales de agentes de software inteligentes:

1. Agentes compradores o robots de compras

2. Usuario o agentes personales

3. Agentes de monitoreo y vigilancia

4. Agentes de minería de datos

Fuentes

TIPOS DE AGENTES DE SOFTWARE

Agente (software) - Wikipedia, la enciclopedia libre

Más de agentes de software "inteligentes" | Ana2LP

Definicion de Agente de software

»Agentes de Software// Jojooa