stringtranslate.com

Agente de software

En informática , un agente de software es un programa de computadora que actúa para un usuario u otro programa en una relación de agencia.

El término agente se deriva del latín agere (hacer): un acuerdo para actuar en nombre de uno. Tal "acción en nombre de" implica la autoridad para decidir qué acción, si alguna, es apropiada. [1] [2] Algunos agentes se conocen coloquialmente como bots , de robot . Pueden estar encarnados, como cuando la ejecución se empareja con un cuerpo de robot, o como software como un chatbot que se ejecuta en una computadora , como un dispositivo móvil , p. ej. Siri . Los agentes de software pueden ser autónomos o trabajar junto con otros agentes o personas. Los agentes de software que interactúan con personas (p. ej. chatbots , entornos de interacción humano-robot ) pueden poseer cualidades similares a las humanas, como comprensión del lenguaje natural y el habla, personalidad o encarnar una forma humanoide (ver Asimo ).

Los conceptos relacionados y derivados incluyen agentes inteligentes (en particular aquellos que exhiben algunos aspectos de inteligencia artificial , como el razonamiento ), agentes autónomos (capaces de modificar los métodos para lograr sus objetivos), agentes distribuidos (que se ejecutan en computadoras físicamente distintas), sistemas multiagente (agentes distribuidos que trabajan juntos para lograr un objetivo que no podría lograrse con un solo agente actuando solo) y agentes móviles (agentes que pueden reubicar su ejecución en diferentes procesadores).

Conceptos

Los atributos básicos de un agente de software autónomo son que los agentes:

Categoría de agente de software de Nwana

El concepto de agente proporciona una forma conveniente y poderosa de describir una entidad de software compleja que es capaz de actuar con un cierto grado de autonomía para realizar tareas en nombre de su anfitrión. Pero a diferencia de los objetos, que se definen en términos de métodos y atributos , un agente se define en términos de su comportamiento. [3]

Diversos autores han propuesto diferentes definiciones de agentes, estas comúnmente incluyen conceptos como:

Distinguir agentes de programas

Todos los agentes son programas, pero no todos los programas son agentes. Contrastar el término con conceptos relacionados puede ayudar a aclarar su significado. Franklin y Graesser (1997) [4] analizan cuatro nociones clave que distinguen a los agentes de los programas arbitrarios: reacción al entorno, autonomía, orientación a objetivos y persistencia .

Distinguir intuitivamente entre agentes y objetos

Distinguir agentes de sistemas expertos

Distinguir los agentes de software inteligentes de los agentes inteligentes en IA

(Russell y Norvig 2003)

Impacto de los agentes de software

Los agentes de software pueden ofrecer diversos beneficios a sus usuarios finales al automatizar tareas complejas o repetitivas. [6] Sin embargo, existen impactos organizacionales y culturales de esta tecnología que deben considerarse antes de implementar agentes de software.

Impacto organizacional

El impacto en la satisfacción laboral y la satisfacción laboral

A las personas les gusta realizar tareas sencillas que les proporcionen una sensación de éxito, a menos que la repetición de tareas sencillas afecte al resultado general. En general, la implementación de agentes de software para realizar tareas administrativas proporciona un aumento sustancial en la satisfacción laboral, ya que administrar su propio trabajo nunca satisface al trabajador. El esfuerzo liberado sirve para un mayor grado de compromiso en las tareas sustanciales del trabajo individual. Por lo tanto, los agentes de software pueden proporcionar los elementos básicos para implementar un trabajo autocontrolado, liberado de controles jerárquicos e interferencias. [7] Estas condiciones se pueden garantizar mediante la aplicación de agentes de software para el soporte formal requerido.

Impacto cultural

Los efectos culturales de la implementación de agentes de software incluyen pérdida de confianza, erosión de habilidades, pérdida de privacidad y distanciamiento social. Algunos usuarios pueden no sentirse del todo cómodos delegando tareas importantes en aplicaciones de software. Aquellos que comiencen a depender únicamente de agentes inteligentes pueden perder habilidades importantes, por ejemplo, relacionadas con la alfabetización informática. Para actuar en nombre de un usuario, un agente de software debe tener un conocimiento completo del perfil de un usuario, incluidas sus preferencias personales. Esto, a su vez, puede conducir a problemas de privacidad impredecibles. Cuando los usuarios comienzan a confiar más en sus agentes de software, especialmente para actividades de comunicación, pueden perder contacto con otros usuarios humanos y mirar el mundo con los ojos de sus agentes. Estas consecuencias son las que los investigadores de agentes y los usuarios deben considerar al tratar con tecnologías de agentes inteligentes. [8]

Historia

El concepto de agente se remonta al Modelo de Actor de Hewitt (Hewitt, 1977): "Un objeto autónomo, interactivo y de ejecución simultánea, que posee un estado interno y capacidad de comunicación". [ cita requerida ]

Para ser más académicos, los sistemas de agentes de software son una evolución directa de los sistemas multiagente (MAS). Los MAS evolucionaron a partir de la inteligencia artificial distribuida (DAI), la resolución de problemas distribuida (DPS) y la inteligencia artificial paralela (PAI), heredando así todas las características (buenas y malas) de la DAI y la IA .

El vídeo " Knowledge Navigator " de John Sculley de 1987 retrataba una imagen de la relación entre los usuarios finales y los agentes. Al ser un primer paso ideal, este campo experimentó una serie de implementaciones de arriba hacia abajo sin éxito, en lugar de un enfoque pieza por pieza y de abajo hacia arriba. La gama de tipos de agentes es ahora (a partir de 1990) amplia: WWW, motores de búsqueda, etc.

Ejemplos de agentes de software inteligentes

Agentes de compra (bots de compra)

Los agentes de compra [9] viajan por una red (por ejemplo, Internet) recuperando información sobre bienes y servicios. Estos agentes, también conocidos como "bots de compra", funcionan de manera muy eficiente para productos básicos como CD, libros, componentes electrónicos y otros productos de talla única. Los agentes de compra suelen estar optimizados para permitir los servicios de pago digitales utilizados en el comercio electrónico y en las empresas tradicionales. [10]

Agentes de usuario (agentes personales)

Los agentes de usuario, o agentes personales, son agentes inteligentes que realizan acciones en su nombre. En esta categoría se encuentran aquellos agentes inteligentes que ya realizan, o realizarán en breve, las siguientes tareas:

Agentes de monitoreo y vigilancia (predictivos)

Los agentes de control y vigilancia se utilizan para observar y generar informes sobre equipos, generalmente sistemas informáticos. Los agentes pueden realizar un seguimiento de los niveles de inventario de la empresa, observar los precios de los competidores y transmitirlos a la empresa, observar la manipulación de las acciones mediante información privilegiada y rumores, etc.

Monitoreo de servicios

Por ejemplo, el Laboratorio de Propulsión a Chorro de la NASA tiene un agente que supervisa el inventario, la planificación, programa los pedidos de equipos para mantener bajos los costos y administra las instalaciones de almacenamiento de alimentos. Estos agentes generalmente monitorean redes informáticas complejas que pueden realizar un seguimiento de la configuración de cada computadora conectada a la red.

Un caso especial de agentes de Monitoreo y Vigilancia son las organizaciones de agentes que se utilizan 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 para el transporte, etc.) y reciben Objetivos (Misiones) de agentes de nivel superior. Los Agentes luego persiguen los Objetivos con los Activos a mano, minimizando el gasto de los Activos mientras maximizan el Logro de los Objetivos. (Véase Popplewell, "Agentes y Aplicabilidad")

Agentes de minería de datos

Este agente utiliza tecnología de la información para encontrar tendencias y patrones en una gran cantidad de información proveniente de muchas fuentes diferentes. El usuario puede ordenar esta información para encontrar la información que busca.

Un agente de minería de datos opera en un almacén de datos y descubre información. Un "almacén de datos" reúne información de muchas fuentes diferentes. La "minería de datos" es el proceso de buscar en el almacén de datos información que se pueda utilizar para tomar medidas, como formas de aumentar las ventas o conservar a los clientes que están considerando abandonar el servicio.

La "clasificación" 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. Los agentes de minería de datos también pueden detectar cambios importantes en las tendencias o en un indicador clave y pueden detectar la presencia de nueva información y alertarlo al respecto. Por ejemplo, el agente puede detectar una caída en la industria de la construcción de una economía; en función de esta información transmitida, las empresas de construcción podrán tomar decisiones inteligentes con respecto a la contratación o despido de empleados o la compra o arrendamiento de equipos para que se adapten mejor a su empresa.

Agentes de comunicación y creación de redes

Otros ejemplos de agentes inteligentes actuales incluyen algunos filtros de spam , bots de juegos y herramientas de monitoreo de servidores. Los bots de indexación de motores de búsqueda también califican como agentes inteligentes.

Agentes de desarrollo de software (también conocidos como bots de software)

Los bots de software están adquiriendo importancia en la ingeniería de software. [12]

Agentes de seguridad

Los agentes también se utilizan en aplicaciones de seguridad de software para interceptar, examinar y actuar sobre diversos tipos de contenido. Algunos ejemplos son:

Problemas de diseño

Las cuestiones a tener en cuenta en el desarrollo de sistemas basados ​​en agentes incluyen:

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 .

La definición de procesamiento de agentes puede abordarse desde dos direcciones interrelacionadas:

Los sistemas de agentes se utilizan para modelar sistemas del mundo real con concurrencia o procesamiento paralelo.

El agente utiliza sus métodos de acceso para acceder a bases de datos locales y remotas en busca de contenido. Estos métodos de acceso pueden incluir la configuración de la entrega de noticias al agente, la recuperación de información desde tablones de anuncios o el uso de una araña para recorrer la Web. El contenido que se recupera de esta manera probablemente ya esté parcialmente filtrado (por la selección de la fuente de noticias o las bases de datos que se buscan). A continuación, el agente puede utilizar su maquinaria de búsqueda detallada o procesamiento del lenguaje para extraer palabras clave o firmas del cuerpo del contenido que se ha recibido o recuperado. Este contenido (o evento) abstraído se pasa a continuación a la maquinaria de razonamiento o inferencia del agente para decidir qué hacer con el nuevo contenido. Este proceso combina el contenido del evento con el contenido basado en reglas o de conocimiento proporcionado por el usuario. Si este proceso encuentra una coincidencia en el nuevo contenido, el agente puede utilizar otra parte de su maquinaria para realizar una búsqueda más detallada del contenido. Finalmente, el agente puede decidir realizar una acción en función del nuevo contenido; por ejemplo, notificar al usuario que se ha producido un evento importante. Esta acción es verificada por una función de seguridad y luego se le otorga la autoridad al usuario. El agente utiliza un método de acceso de usuario para entregarle ese mensaje. Si el usuario confirma que el evento es importante al actuar rápidamente ante la notificación, el agente también puede emplear su mecanismo de aprendizaje para aumentar su ponderación para este tipo de evento.

Los bots pueden actuar en nombre de sus creadores para hacer el bien y el mal. Hay algunas formas de crear bots para demostrar que están diseñados con la mejor intención y no están diseñados para hacer daño. Esto se hace primero haciendo que un bot se identifique en el encabezado HTTP del agente de usuario cuando se comunica con un sitio. La dirección IP de origen también debe validarse para establecerse como legítima. A continuación, el bot también debe respetar siempre el archivo robots.txt de un sitio, ya que se ha convertido en el estándar en la mayor parte de la web. Y al igual que con el archivo robots.txt, los bots deben evitar ser demasiado agresivos y respetar cualquier instrucción de retraso de rastreo. [14]

Nociones y marcos para agentes

Véase también

Referencias

  1. ^ Nwana, H. S. (1996). "Agentes de software: una descripción general". Knowledge Engineering Review . 21 (3): 205–244. CiteSeerX  10.1.1.50.660 . doi :10.1017/s026988890000789x. S2CID  7839197.
  2. ^ Schermer, B. W. (2007). Agentes de software, vigilancia y el derecho a la privacidad: un marco legislativo para la vigilancia habilitada por agentes (libro de bolsillo) . Vol. 21. Leiden University Press. págs. 140, 205–244. hdl :1887/11951. ISBN 978-0-596-00712-6. Recuperado el 30 de octubre de 2012 .
  3. ^ Wooldridge, M.; Jennings, NR (1995). "Agentes inteligentes: teoría y práctica". 10 (2). Knowledge Engineering Review: 115–152. {{cite journal}}: Requiere citar revista |journal=( ayuda )
  4. ^ Franklin, S.; Graesser, A. (1996). "¿Es un agente o simplemente un programa?: Una taxonomía para agentes autónomos". Agentes inteligentes III Teorías, arquitecturas y lenguajes de agentes . Apuntes de clase en informática. Vol. 1193. Universidad de Memphis, Instituto de sistemas inteligentes. págs. 21–35. doi :10.1007/BFb0013570. ISBN. 978-3-540-62507-0.
  5. ^ ab Wooldridge, Michael J. (2002). Introducción a los sistemas multiagente. Nueva York: John Wiley & Sons. pág. 27. ISBN 978-0-471-49691-5.
  6. ^ Serenko, A.; Detlor, B. (2004). "Agentes inteligentes como innovaciones" (PDF) . Inteligencia artificial y sociedad . 18 (4): 364–381.
  7. ^ Adonisi, M. (2003). "La relación entre el espíritu emprendedor corporativo, la orientación al mercado, la flexibilidad organizacional y la satisfacción laboral" (PDF) (Tesis). Facultad de Economía y Ciencias de la Gestión, Universidad de Pretoria.
  8. ^ Serenko, A.; Ruhi, U.; Cocosila, M. (2007). "Efectos no planificados de los agentes inteligentes en el uso de Internet: enfoque de informática social" (PDF) . Inteligencia artificial y sociedad . 21 (1–2): 141–166.
  9. ^ Haag, Stephen (2006). "Sistemas de información gerencial para la era de la información": 224–228. {{cite journal}}: Requiere citar revista |journal=( ayuda )
  10. ^ "Maximice el impacto de su negocio | Cómo usar los chatbots de Facebook". Keystone Click . 26 de agosto de 2016 . Consultado el 7 de septiembre de 2017 .
  11. ^ Shirado, Hirokazu; Christakis, Nicholas A (2017). "Los agentes autónomos localmente ruidosos mejoran la coordinación humana global en experimentos de redes". Nature . 545 (7654): 370–374. Bibcode :2017Natur.545..370S. doi :10.1038/nature22332. PMC 5912653 . PMID  28516927. 
  12. ^ Lebeuf, Carlene; Storey, Margaret-Anne; Zagalsky, Alexey (2018). "Bots de software". IEEE Software . 35 : 18–23. doi :10.1109/MS.2017.4541027. S2CID  31931036.
  13. ^ https://info.digitalguardian.com/rs/768-OQW-145/images/SC-Labs-DLP-GROUP-TEST-AND-DG-REVIEW.pdf?field_resource_type_value=analyst-reports [ URL simple PDF ]
  14. ^ "Cómo vivir según el código de los buenos robots". DARKReading de Information World . 27 de septiembre de 2017. Consultado el 14 de noviembre de 2017 .

Enlaces externos