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, la cual deriva del Latín agere (hacer): un acuerdo para actuar en nombre propio. Tal "acción en nombre de" implica la autoridad para decidir cual acción, si existe, es adecuada.[1][2]
Algunos ejemplos de estos Agentes son: agentes intelligentes (en particular exhibiendo algunos aspectos de inteligencia artificial, como aprendizaje y razonamiento), agentes autónomos (capaces de modificar la manera en que logran su objetivo), agentes distribuidos (ejecutados en distintas computadoras físicas), sistema multi-agente (agentes distribuidos que no tienen la capacidad de lograr un objetivo solos y deben comunicarse), y agentes móviles (agentes que pueden reubicar su ejecución encima de procesadores diferentes).
Los atributos básicos de un agente informático son que dichos agentes
El término agente describe una abstracción en términos computacionales, una idea, o un concepto, similar a términos en la POO como métodos, funciones, y objetos.[cita requerida] El concepto de un agente ofrece una conveniente y potente manera de describir una entidad computacional compleja la cual es capaz de actuar con un cierto grado de autonomía con el fin de completar tareas en nombre del servidor. Pero a diferencia de los objetos, los cuales son definidos en términos de métodos y atributos, un agente es definido en términos de su comportamiento.[3][cita requerida].
Varios autores han propuesto diferentes definiciones de agentes, estas comúnmente incluyen conceptos tales como
Contrastando el término con conceptos relacionados pueden ayudar a clarificar su significado. Franklin & Graesser (1997)[4] 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.
Los agentes de software pueden ofrecer varios beneficios a sus usuarios finales mediante la automatización de tareas complejas o repetitivas.[5] Sin embargo, hay impactos organizativos y culturales de esta tecnología que necesitan ser considerados antes de la implementación de agentes computacionales.
Impactos organizativos incluyen la total transformación del sector del comercio electrónico, responsabilidad operacional, y la carga excesiva de seguridad. Los agentes computacionales son capaces de hacer búsquedas rápidas en Internet, identificar las mejores ofertas disponibles en línea, y presentar esta información a los usuarios finales en forma acumulada. Por lo tanto, los usuarios pueden no necesitar buscar manualmente distintos websites de un comerciante específico; ellos son capaces de encontrar el mejor tarto en cuestión de segundos. Al mismo tiempo, esto aumenta la competencia basada en precio y transforma todo el sector del comercio electrónico en una competición de mercado perfecta y uniforme. La implementación de agentes también requiere recursos adicionales de las compañías, colocando un peso extra en su red, y requiere nuevos procesos de seguridad.
A las personas les gusta realizar tareas sencillas que proporcionan la sensación de éxito a menos que la repetición de dicha tarea afecte la producción total. En general, la aplicación de agentes de software para llevar a cabo los requisitos de administración proporciona un incremento sustancial en la satisfacción de trabajo, como la administración de la propia obra nunca es del agrado del trabajador. El esfuerzo liberado sirve para un mayor grado de compromiso en las tareas sustanciales de trabajo individual. Por lo tanto, los agentes de software pueden proporcionar lo básico para implementar trabajo autocontrolado, liberado de los controles jerárquicos y las interferencias.[6] Estas condiciones se pueden asegurar mediante la aplicación de agentes de software para el apoyo formal requerido.
Los efectos culturales de la puesta en práctica de los agentes de software incluyen aflicción de confianza, la erosión de las habilidades, la deserción de privacidad y separación social. Algunos usuarios pueden no sentirse del todo a gusto delegando totalmente tareas importantes a las aplicaciones de software. Aquellos que empiezan a confiar únicamente en agentes inteligentes pueden perder habilidades importantes, por ejemplo, relacionados con la alfabetización informativa. Con el fin de actuar a nombre de los usuarios, un agente de software debe tener una comprensión completa de un perfil de los usuarios, incluyendo su / sus preferencias personales. Esto, a su vez, puede conducir a problemas de privacidad impredecibles. Cuando los usuarios empiezan a confiar más en sus agentes de software, sobre todo, por las actividades de comunicación, pueden perder contacto con otros usuarios humanos y mirar el mundo con los ojos de sus agentes. Estas son las consecuencias que los investigadores de los agentes y los usuarios deben tener en cuenta cuando tratan con tecnologías de agentes inteligentes.[7]
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.
Haag (2006) sugirió que hay solo 4 tipos esenciales de agentes de software inteligentes:[8]
Los agentes compradores viajan por una red (ej, Internet) recuperando información sobre productos y servicios. Estos agentes, conocidos también como "robots de compras", trabajan de manera muy eficiente para productos de consumo, tales como CDs, libros, componentes electrónicos, y otros productos de talla única para todos.
Agentes de usuarios, o agentes personales, son agentes inteligentes que realizan acciones en su nombre. A esta categoría pertenecen aquellos agentes inteligentes que realizan o realizaran en breve las siguientes tareas:
Agentes de monitoreo y vigilancia se utilizan para observar e informar sobre equipos, por lo general los sistemas informáticos. Los agentes pueden realizar un seguimiento de los niveles de inventario de la empresa, observar los precios de los competidores y hacerlos llegar a la empresa, ver la manipulación de stock de información privilegiada y rumores, etc.
Por ejemplo, el Laboratorio de Aviones de Propulsión de la NASA tiene un agente que controla el inventario, la planificación, la programación y equipamiento para mantener los costos bajos, así como las instalaciones de almacenamiento de alimentos. Estos agentes suelen controlar complejas redes informáticas que pueden mantener un registro de la configuración de cada ordenador conectado a la red.
Un caso especial de agentes de monitoreo y vigilancia son las organizaciones de los agentes utilizados para emular el proceso de toma de decisiones humanas durante las operaciones tácticas. Los agentes monitorean el estado de los activos (municiones, armas disponibles, plataformas de transporte, etc) y reciben Objetivos(Misiones) de los agentes de nivel superior. Los Agentes luego siguen con los Objetivos de los Activos en la mano, lo que minimiza el gasto de los Activos y aumenta al máximo el logro de los Objetivos. (Ver Popplewell, "Agents and Applicability")
Este agente utiliza la tecnología de la información para encontrar tendencias y patrones en una gran cantidad de información de muchas fuentes diferentes. El usuario puede ordenar a través de esta información con el fin de encontrar toda la información que está buscando.
Un agente de minería de datos funciona en un almacén de datos de información descubriendo. Un 'almacén de datos' reúne información de muchas fuentes diferentes. "Minería de datos" es el proceso de mirar a través del almacén de datos para encontrar la información que usted puede utilizar para tomar acción, como forma de aumentar las ventas o mantener a los clientes que están pensando en desertar.
"Classification" es uno de los tipos más comunes de minería de datos, que encuentra patrones en la información y los clasifica en diferentes clases. Agentes de minería de datos también pueden detectar cambios importantes en las tendencias o un indicador clave y permite detectar la presencia de nueva información y avisarte de la misma. Por ejemplo, el agente puede detectar un descenso en el sector de la construcción de una economía, sobre la base de estos constructores será capaz de retransmitir información para la toma de decisiones inteligentes con respecto a la contratación / despido de empleados o la compra / arrendamiento de equipos para mejores demandas en su empresa.
Algunos otros ejemplos de los actuales Agentes inteligentes incluyen algunos filtros spam, robots de juego, y herramientas de monitoreo de servidores. Robots de indexacion en Motores de Búsqueda también califican como agentes inteligentes.
Cuestiones interesantes a tener en cuenta en el desarrollo de sistemas basados en agentes incluyen[cita requerida]
Para que los agentes de software trabajen juntos de manera eficiente deben compartir la semántica de sus elementos de datos. Esto se puede lograr haciendo que los sistemas informáticos publiquen sus metadatos.
Sistemes de agentes son usados para modelar sistemas de mundo real con concurrencia o procesamiento en paralelo.
El agente utiliza sus métodos de acceso para salir a bases de datos locales y remotas para forraje de contenido. Estos métodos de acceso pueden incluir la creación de flujos de entrega de noticias al agente, o la recuperación de tablas de boletines, o el uso de un crawler para caminar por la Web. El contenido que es recuperado de esta manera probablemente ya está parcialmente filtrado - por la selección de la fuente de noticias o las bases de datos en las que busca. El agente siguiente puede usar su búsqueda detallada o lenguaje de procesamiento de mecanismo para extraer palabras clave o signaturas desde el cuerpo del contenido que ha recibido o recuperado. Este contenido abstracto (o evento) es luego pasado al razonamiento del agente o al mecanismo de inferencia para decidir qué hacer con el nuevo contenido. Este proceso combina el contenido del evento con el contenido basado en reglas o el conocimiento proporcionado por el usuario. Si este proceso encuentra un buen resultado o "machea" en el nuevo contenido, el agente puede utilizar otra pieza de su mecanismo para realizar una búsqueda más detallada sobre el contenido. Finalmente, el agente puede realizar una acción basado en el contenido nuevo; por ejemplo, notificar al usuario que un nuevo evento ha ocurrido. Esta acción es verificada por una función de seguridad y a continuación, da la autoridad al usuario. El agente utiliza los métodos de acceso a usuario para entregar el mensaje al usuario. Si el usuario confirma que el evento es importante actuando rápido sobre la notificación, el agente también puede emplear su mecanismo de aprendizaje para aumentar su peso para este tipo de evento.