Formalización de sistemas multiagentes (2002)
El vertiginoso desarrollo de los sistemas de cómputo y de telecomunicaciones a lo largo de los últimos años ha impulsado el desarrollo de aplicaciones con alta interacción con el mundo externo, que funcionan en ambientes heterogéneos y con autonomía en la realización de sus acciones. Este tipo de aplicaciones es de un orden de complejidad mucho mayor que el de las aplicaciones tradicionales. El paradigma de desarrollo de software orientado a agentes surge como una alternativa para la construcción de productos que permitan dar cumplimiento a este tipo de exigencias, combinando tecnologías existentes como son la inteligencia artificial y los sistemas distribuidos. El “American Heritage Dictionary” define un agente como “algo que actúa o tiene el poder o autoridad para actuar... o representar a otro” [Bra97]. En el sentido común, cuando se piensa en un agente de software, se piensa en un software que actúa como soporte de alguien llevando a cabo una tarea específica la cual le ha sido delegada. Pero también se espera que el software sea capaz de inferir detalles de las solicitudes para evitar la tediosa tarea de estar explicando detalladamente todo lo que debe ser hecho. La única manera de que el agente haga esto bien, es conociendo algo sobre el contexto de la solicitud. Es decir, como dice Negroponte [Neg97], teniendo un modelo del usuario y de su ambiente.