Agente de software

Programa de ordenador que actúa en nombre de un usuario

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:

  • no se invocan estrictamente para una tarea, sino que se activan por sí mismos,
  • puede residir en estado de espera en un host, percibiendo el contexto,
  • Puede llegar al estado de ejecución en un host al iniciarse las condiciones,
  • no requieren interacción del usuario,
  • Puede invocar otras tareas, incluida la comunicación.
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:

  • persistencia: el código no se ejecuta bajo demanda, sino que se ejecuta continuamente y decide por sí mismo cuándo debe realizar alguna actividad;
  • autonomía: los agentes tienen capacidades de selección de tareas, priorización, comportamiento dirigido a objetivos y toma de decisiones sin intervención humana;
  • capacidad social: los agentes son capaces de involucrar a otros componentes a través de algún tipo de comunicación y coordinación, pueden colaborar en una tarea;
  • reactividad: los agentes perciben el contexto en el que operan y reaccionan adecuadamente.

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

  • Los agentes son más autónomos que los objetos .
  • Los agentes tienen un comportamiento flexible: reactivo , proactivo , social.
  • Los agentes tienen al menos un hilo de control, pero pueden tener más. [5]

Distinguir agentes de sistemas expertos

  • Los sistemas expertos no están acoplados a su entorno.
  • Los sistemas expertos no están diseñados para un comportamiento reactivo y proactivo.
  • Los sistemas expertos no tienen en cuenta la capacidad social. [5]

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

  • Los agentes inteligentes (también conocidos como agentes racionales ) no son sólo programas de computadora: también pueden ser máquinas, seres humanos, comunidades de seres humanos (como empresas ) o cualquier cosa que sea capaz de tener un comportamiento dirigido a objetivos.
(Russell y Norvig 2003)Error de harv: no hay destino: CITEREFRussellNorvig2003 ( ayuda )

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, aliviado de los controles jerárquicos y la interferencia. [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:

  • Revise su correo electrónico, ordénelo según el orden de preferencia del usuario y le avise cuando lleguen correos importantes.
  • Juega juegos de computadora como tu oponente o patrulla áreas de juego para ti.
  • Reúne noticias personalizadas para ti. Existen varias versiones de estas, incluida CNN.
  • Encuentra información para ti sobre el tema de tu elección.
  • Rellene formularios en la Web automáticamente y guarde su información para futuras referencias
  • Escanear páginas web buscando y resaltando el texto que constituye la parte "importante" de la información allí contenida.
  • Discutamos con usted temas que van desde sus miedos más profundos hasta los deportes.
  • Facilitar las tareas de búsqueda de empleo en línea escaneando bolsas de trabajo conocidas y enviando el currículum a las oportunidades que cumplan con los criterios deseados.
  • Sincronización de perfiles en redes sociales heterogéneas

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 networking y comunicación

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.

  • Agente de usuario : para navegar por la World Wide Web
  • Agente de transferencia de correo : para servir correo electrónico, como Microsoft Outlook . ¿Por qué? Se comunica con el servidor de correo POP3, sin que los usuarios tengan que entender los protocolos de comandos POP3 . Incluso tiene conjuntos de reglas que filtran el correo para el usuario, ahorrándole así la molestia de tener que hacerlo por sí mismo.
  • Agente SNMP
  • En los servidores de red de estilo Unix, httpd es un demonio HTTP que implementa el Protocolo de transferencia de hipertexto en la raíz de la World Wide Web.
  • Agentes de gestión utilizados para gestionar dispositivos de telecomunicaciones
  • Simulación de multitudes para planificación de seguridad o gráficos por computadora en 3D .
  • El agente de balizamiento inalámbrico es una entidad de tarea única alojada en un proceso simple para implementar un bloqueo inalámbrico o una correa electrónica junto con agentes de software más complejos alojados, por ejemplo, en receptores inalámbricos.
  • Uso de agentes autónomos (deliberadamente equipados con ruido) para optimizar la coordinación en grupos en línea. [11]

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:

  • Agentes de prevención de pérdida de datos (DLP) [13] : examinan las operaciones de los usuarios en una computadora o red, las comparan con las políticas que especifican las acciones permitidas y toman las medidas adecuadas (por ejemplo, permitir, alertar, bloquear). Los agentes DLP más completos también se pueden utilizar para realizar funciones de EDR.
  • Agentes de detección y respuesta de puntos finales (EDR): supervisan toda la actividad en una computadora de punto final para detectar y responder a actividades maliciosas.
  • Agentes de Cloud Access Security Broker (CASB): similares a los agentes DLP, pero que examinan el tráfico que se dirige a las aplicaciones en la nube.

Problemas de diseño

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

  • Cómo se programan las tareas y cómo se logra la sincronización de las tareas
  • Cómo los agentes priorizan las tareas
  • Cómo los agentes pueden colaborar o reclutar recursos,
  • cómo se pueden volver a crear instancias de agentes en diferentes entornos y cómo se puede almacenar su estado interno,
  • Cómo se investigará el entorno y cómo un cambio de entorno conduce a cambios de comportamiento de los agentes.
  • Cómo se puede lograr la mensajería y la comunicación,
  • ¿Qué jerarquías de agentes son útiles (por ejemplo, agentes de ejecución de tareas, agentes de programación, proveedores de recursos, etc.)?

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:

  • Procesamiento de estados internos y ontologías para representar el conocimiento
  • Protocolos de interacción : estándares para especificar la comunicación de tareas.

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

  • Maquinaria de agente: motores de diversos tipos, que respaldan los distintos grados de inteligencia.
  • Contenido del agente: datos utilizados por la maquinaria en el razonamiento y el aprendizaje.
  • Acceso del agente: métodos para permitir que la maquinaria perciba el contenido y realice acciones como resultados del razonamiento.
  • Seguridad del agente: preocupaciones relacionadas con la computación distribuida, aumentadas por algunas preocupaciones especiales relacionadas con los agentes

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 de los 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 de 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. Por último, 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 .
  • Agentes de software: una descripción general Archivado el 17 de julio de 2011 en Wayback Machine , Hyacinth S. Nwana. Knowledge Engineering Review , 11(3):1–40, septiembre de 1996. Cambridge University Press .
  • FIPA La Fundación para Agentes Físicos Inteligentes
  • JADE Java Agent Developing Framework, un marco de código abierto desarrollado por Telecom Italia Labs
  • Centro Europeo de Investigación de Agentes de Software Archivado el 14 de septiembre de 2017 en Wayback Machine
  • JAFIMA JAFIMA: Un marco de agente basado en Java para agentes inteligentes y móviles
  • SemanticAgent Un marco de código abierto para desarrollar agentes basados ​​en SWRL sobre JADE
  • Mobile-C Una plataforma multiagente para agentes móviles C/C++.
  • Proyecto de código abierto HLL (Lógica de alto nivel).
  • Proyecto de código abierto KATO para que los desarrolladores de PHP y Java escriban agentes de software
Obtenido de "https://es.wikipedia.org/w/index.php?title=Agente_de_software&oldid=1261616894"