Agentes Inteligentes e Sistemas Multi-agente Agentes de Interface IST- 2003/2004 1 Sumário Enquadramento: Tipologia de Agentes Motivações Considerações sobre Agentes de Interface Relação Utilizador/Agente Utilidade dos Agentes de Interface Sumário Agentes de Interface: porquê? Objecções aos Agentes de Interface Construção de Agentes Exemplo de Agente: “E-mail Agent” Exemplo de Agente: Letizia Agentes de Interface e Personagens Sintéticas Agentes de Interface: Porquê? Tecnologia como uma companheira: o computador invisível Precisão de computadores vs complexidade das pessoas Maior uso de computadores nas actividades diárias Interacção está a acompanhar avanços tecnológicos? Domínio de “direct manipulation” Utilizador inicia todas as tarefas Utilizador monitoriza todos os eventos Problema: Difícil para utilizadores sem treino Agentes de Interface: Porquê? Alterar Metáfora: Direct Manipulation Método Usado • • • visualização de objectos acções em objectos de interface correspondem a acções nos objectos reais Nada acontece a não ser que o utilizador o faça acontecer Tarefa para a qual foi desenhado • Fechada, estática e pouca informação estruturada do mundo Agentes de Interface: Porquê? Direct Manipulation “Indirect Management” Método Usado • • • Utilizador delega agentes que conhecem os interesses, preferências e hábitos do utilizador Agente faz sugestões e pode agir em benefício do utilizador Muitas coisas podem acontecer, mesmo com o utilizador inactivo Tarefa para a qual foi desenhado • Aberta, dinâmica e muita informação não estruturada do mundo Agente Interface = Interface? Melhores agentes não inibem acções do utilizador Agentes assistem os utilizadores por diversas formas: • • • • • Efectuam tarefas em benefício do utilizador Escondem complexidade Treinam e ensinam o utilizador Ajudam diferentes utilizadores a colaborar Monitorizam eventos e procedimentos Tarefas e Aplicações – conjunto virtualmente ilimitado • Filtragem de informação, gestão de correio, escalonamento de eventos, selecção de livros, filmes, música, etc. Agente Interface = Interface? Agentes de Interface Personagem representada pelo computador Actua e colabora em nome do utilizador Fornece assistência activa ao utilizador através de tarefas computer-based Intermediário Interface desenhada para o utilizador Robot: Sensores e Actuadores correspondem a entradas e saídas do agente. Agentes de Interface Principais Características (1/4) Actividade • Actua estritamente em benefício do utilizador • Fornece vistoria, trabalho e perícia • Perceber objectivos -> traduzi-los em acções e mostrar resultados • Obter mais informação Principais Características (2/4) Sensibilidade e Reacção • • Sucesso ou falha com base na capacidade de responder ao utilizador Dimensões: - Explícita – utilizador e sistema comunicam por um conjunto restrito de transacções - Implícita – agente capaz de agir em favor do utilizador -> decidir e efectuar conjunto de acções. Objectivos podem ser definidos de forma explícita Problemas: - Requer inferência e esta é fuzzy - Uma inferência errada é pior do que não existir qualquer inferência Principais Características (3/4) Competência • Competente no domínio da aplicação e ambiente em que opera • Agente deve possuir ou poder gerar Meta-Conhecimento e Múltiplas Representações • No limite, competência consiste em saber como seleccionar entre múltiplas representações alternativas consoante as necessidades e estilos do utilizador Meta-Conhecimento: sobre resolução de problemas num domínio Múltiplas Representações: Ambiguidades numa representação são desambiguadas por outra representação; Fornecem a base para um ambiente de aprendizagem Principais Características (4/4) Acessibilidade • • • Características e predisposições do agente acessíveis ao utilizador Utilizadores têm “deixas” da representação externa para inferir características internas Conceptualmente, o utilizador pode prever o que deverá ser feito em determinada situação com base na personalidade do agente Relação Utilizador - Agente de Interface Compreensão: Utilizador compreende o agente? Pode confiar nele? Controlo: Como o utilizador controla o agente? Distracção: Como minimizá-la? Facilidade de uso: É necessário um utilizador experiente? Personificação: Como representar o agente para o utilizador Compreensão Problema: Colaboração Agente/Utilizador só pode ser útil se o utilizador confiar e compreender o agente: • • Como é que os utilizadores percebem o estado e funcionamento dos agentes? Como é que a pessoa aprende tudo o que o agente pode fazer? Solução • • Modelos acessíveis ao utilizador Feedback contínuo do estado, acções e aprendizagem do agente Controlo Problema: Utilizadores podem dar controlo a agentes autónomos, mas não podem sentir que o perderam: • • Como tornar os agentes não totalmente independentes do utilizador? Como acomodar diferentes quantidades de controlo para diferentes utilizadores? Solução: • • • Permitir vários graus de autonomia Utilizador pode definir grau de autonomia Utilizador pode programar o agente Personificar Agentes? Novo estilo de interacção: “indirect management” • Actuar como equipa Comportamento dos Computadores • Predisposições de comportamento • Utilizador deve perceber e prever o comportamento dos sistemas computacionais Distracção Problema: Agentes devem manter o utilizador informado e interrompê-lo se necessário: • • • Como definir o nível de interacção com os agentes? Quando é que um evento é suficientemente importante para interromper o utilizador? Como se mantém o utilizador informado sem o interromper? Solução: • • • Diminuir número de interrupções gradualmente Utilizador pode programar situações que requerem interrupção Feedback do agente sem requerer total atenção do utilizador Facilidade de utilização Problema: Agentes efectuam acções que o utilizador não consegue ou não pretende fazer. Se o agente for complexo, o utilizador não o usará: • Como é que os utilizadores devem instruir o agente sem necessidade de programação • Como inserir os agentes, de forma discreta, nas aplicações Solução: • Não forçar utilizador a aprender uma nova linguagem • Usar a linguagem da aplicação para comunicar entre o agente e utilizador Personificação Problema: Lembrar o utilizador que existe um processo a actuar em seu benefício: • • Como personificar sem fazer pensar que o computador é inteligente? Como tirar vantagens da personificação? Solução: • ??? Utilidade de Agentes de Interface Gestão de Tarefas Mundanas (ex: escalonamento) Pesquisas personalizadas de informação Companhia Aviso Ajuda em tempo de execução de um contexto interactivo Ensino Assistido Auxílio a pessoas com dificuldades específicas Objecções aos Agentes de Interface Agente como um “virus” • “whining chatting little irritants” • • Problema não está nos agentes “per se”, mas nos processos e características que pretendem possuir. Soluções: 1. 2. Utilizador escolhe de uma lista de agentes Kit de configuração de agentes Agente <-> estupidez • Sente-se estúpido em pretender que exista uma “pessoa” no computador Objecções aos Agentes de Interface Indirecção • Ética • Para quê negociar com um agente se sei o que quero fazer Motivação para o mesmo tratamento com “agentes reais” Necessidade de usar Inteligência Artificial • Estrela está em eclipse • Não funciona • Se funcionasse, iria consumir mais ciclos do que as piores estimativas + Muitos exemplos de sucesso de aplicação de Técnicas de IA + Não se deve confundir um agente antropomórfico com uma completa personalidade artificial Antropomorfismo Antropomorfismo: Metáfora incompleta. Selecciona algumas características humanas e elimina outras Vantagens: • Estamos habituados a comunicar com pessoas • Perceber como o agente pensa, decide e age, com base nas características externas • Conversação interactiva -> inferir e empregar convenções de conversação • Dirige a atenção para as qualidades essenciais da natureza do agente: sensibilidade e reacção, capacidade de efectuar acções, competência e acessibilidade Construção de Agentes Problemas: Competência: como adquirir o conhecimento necessário (quando, no quê e como ajudar o utilizador) Confiança: Utilizador sente-se confortável com o agente Construção de Agentes: Abordagens 1ª Abordagem - Utilizador final programa o agente de interface (semi-autónomo). Problemas: • Competência: Requer muito esforço do utilizador • Confiança: Não é problema. Utilizador confia nas suas capacidades de programação Construção de Agentes: Abordagens 2ª Abordagem – Baseada em Conhecimento • Fornecer ao agente extensivo conhecimento do domínio do utilizador e da aplicação Problemas: • • Competência: Muito trabalho do Engenheiro de Conhecimento e pouca reutilização Confiança: Utilizador não tem um modelo das limitações e forma de trabalho do agente Construção de Agentes – Machine Learning Hipóteses • • • • Agente de interface pode programar-se a si próprio Recebe um conhecimento mínimo inicial Aprende o “comportamento” apropriado com o utilizador e outros agentes Trabalha como um assistente pessoal, isto é, torna-se cada vez mais útil e competente Metáfora: Assistente Pessoal Construção de Agentes – Machine Learning Condições • • Comportamento repetitivo senão o agente não aprende Comportamento diferente para diferentes utilizadores senão a abordagem baseada em conhecimento seria melhor Machine Learning - Vantagens Solução para o problema da confiança Requer menos trabalho do utilizador e programador Adaptação do agente ao utilizador / organização Facilidade de transferir informações, hábitos e conhecimentos entre utilizadores Aquisição de Informação Observando o utilizador Feedback do utilizador • • Indirecto: utilizador ignora sugestão do agente e age de forma diferente Directo: utilizador reprova atitudes do agente Exemplos do utilizador Pedindo conselho a outros agentes • utilizador define “agentes professores” Aquisição de Informação Machine Learning - Exemplos Electronic Mail Agent Meeting Schedule Agent News Filtering Agent Entertainment Selection Agent Exemplos: Letizia "Letizia Álvarez de Toledo has observed that this vast library is useless: rigorously speaking, a single volume would be sufficient, a volume of ordinary format, printed in nine or ten point type, containing an infinite number of infinitely thin leaves." - Jorge Luis Borges, The Library of Babel Letizia - Motivações Manipulação directa de links na Web conduz geralmente a informação irrelevante Grande crescimento da Web leva à necessidade de uma assistente inteligente de navegação Facilitar pesquisas e navegação através da cooperação entre agente e utilizador Letizia Agente de Interface Autónomo Ajuda a navegação Web Opera num browser tradicional como o Netscape Actua em paralelo com a actividade do utilizador -> está sempre activo Nunca toma controlo da interface. Apenas faz sugestões É dinâmico e incremental Como Funciona Analisa o comportamento do utilizador (links seguidos, pesquisas, pedidos, etc.) Guarda URLs escolhidos pelo utilizador Tenta antecipar acções do utilizador Usa um conjunto de heurísticas para perceber e antecipar o comportamento do utilizador A pedido do utilizador mostra as suas sugestões (observação passiva) Como Funciona Não tem um interpretador de linguagem natural. Apenas guarda uma lista de palavras Não determina medidas de qualidade de uma página. Define ordens de preferência entre elas. Não altera a aplicação: Actua entre o browser e o utilizador Letizia: Interface Três Janelas de Netscape 1. 2. 3. Janela normal de browse. Utilizador actua sem qualquer interferência do agente Janela de Candidatos. Links que o Letizia pondera recomendar ao utilizador Janela de Recomendações. Links que já passaram todos os testes. Letizia considera do interesse do utilizador Configurações diferentes: • • Duas Janelas Vários perfis de utilizador Letizia – Interface Letizia – Recomendações Letizia – Video Letizia: Procura Utilizador Navegação normal: Sempre que o utilizador segue um link, a janela é recarregada com a nova página Browser guarda num stack as páginas anteriores Browsers incentivam a uma procura em profundidade primeiro Problema: O mesmo que em IA. Pode se entrar numa procura infinita quando a solução estava na “vizinhança” Procura em profundidade Letizia: Procura Agente Efectua uma procura em largura primeiro • Distância 1, depois 2, etc. Quando o utilizador muda de página, é iniciada uma nova procura Agente e utilizador actuam em cooperação Letizia - Procura Implementação Macintosh Common Lisp Arquitectura object-oriented -> Facilita a introdução de novas Heurísticas Usa Netscape como browser e interface utilizador. Agente é um processo separado Lisp e Netscape comunicam através de AppleEvents e AppleScript “interprocess communication”. Parsing do HTML feito por “Zebu parser-generator” Aria Photo Agent Video Agentes de Interface e Personagens Sintéticas Prós e Contras! Realismo versus Não Realismo Distracção O “tipo do agente” (que tipo de agente é o mais apropriado?) O FUTURO???? Referências “Software Agents”, Jeffrey Bradshaw http://www.semanticweb.org/events/dagstuhl2000/ http://lieber.www.media.mit.edu/people/lieber/