Aproveite o Poder dos Agentes Web Alimentados por IA: Automatize Tarefas, Raspe Dados e Simplifique Fluxos de Trabalho

Aproveite o poder dos agentes da web alimentados por IA para automatizar tarefas, raspar dados e simplificar fluxos de trabalho com facilidade. Descubra como construir agentes da web universais que podem interagir com qualquer site, independentemente de sua estrutura ou complexidade.

21 de fevereiro de 2025

party-gif

Descubra o emocionante potencial da nova tecnologia de agente da OpenAI, que pode controlar diretamente computadores pessoais para automatizar uma ampla gama de tarefas. Este post de blog explora as capacidades e implicações deste avanço revolucionário da IA, destacando os benefícios que ele pode trazer para sua vida diária e trabalho.

Os Desafios de Construir um Agente Web

Construir um agente web que possa controlar diretamente um dispositivo de computador pessoal para automatizar tarefas é significativamente mais desafiador do que construir um agente de chamada de função tradicional. Eis por quê:

  • Complexidade das Tarefas: Mesmo uma tarefa simples como enviar um e-mail requer várias etapas para um agente web - abrir o site do Gmail, clicar na barra de pesquisa, digitar o e-mail, clicar no botão de resposta e, finalmente, clicar em enviar. Cada uma dessas etapas tem o potencial de erros, exigindo uma memória e capacidade de raciocínio mais fortes do agente.

  • Compreensão da Interface: O agente precisa entender com precisão a interface do usuário, seja analisando a estrutura HTML/XML ou analisando capturas de tela usando técnicas de visão computacional. Extrair as informações relevantes e decidir sobre a próxima ação a tomar é um desafio complexo.

  • Precisão de Posicionamento: Localizar com precisão os elementos da interface do usuário corretos para interagir, como botões ou campos de entrada, é crucial para o sucesso do agente. Técnicas como o uso de OCR e a combinação de vários modelos têm mostrado promessas, mas ainda é um obstáculo significativo.

  • Velocidade e Eficiência: A natureza desse tipo de agente, passando por várias etapas mesmo para tarefas simples, o torna inerentemente menos eficiente do que os agentes tradicionais. Melhorar a velocidade e a taxa geral de conclusão de tarefas é um objetivo importante.

  • Precisão e Confiabilidade: Garantir que o agente possa executar tarefas com precisão, sem ficar preso em loops infinitos ou cometer erros, é fundamental para aplicações do mundo real. Abordar esses desafios de precisão e confiabilidade é uma área de foco fundamental.

Como os Agentes Web Entendem a Interface do Usuário

Há três principais abordagens que os agentes web usam para entender e interagir com as interfaces do usuário:

  1. Abordagem baseada em HTML/XML:

    • O agente extrai a estrutura HTML ou XML do site e usa essas informações para entender o layout e os elementos interativos.
    • O agente pode então usar esse conhecimento para localizar e interagir com elementos específicos da interface do usuário, como campos de entrada, botões e links.
    • Essa abordagem é relativamente madura, mas tem limitações no tratamento de sites complexos ou mal estruturados.
  2. Abordagem baseada em Visão:

    • O agente usa modelos de visão computacional para analisar capturas de tela ou imagens da interface do usuário.
    • Isso permite que o agente identifique e localize elementos da interface do usuário, mesmo na ausência de dados HTML/XML limpos.
    • Técnicas como Mapeamento de Saliência e Reconhecimento Ótico de Caracteres (OCR) são usadas para identificar as coordenadas exatas dos elementos interativos.
    • Combinar modelos de visão com modelos de linguagem (como o GPT-4) pode melhorar a precisão dessa abordagem.
  3. Abordagem Híbrida:

    • Essa combina os pontos fortes das abordagens baseadas em HTML/XML e visão.
    • O agente usa tanto os dados estruturados do site quanto as informações visuais das capturas de tela para entender a interface.
    • Essa abordagem pode lidar com uma gama mais ampla de estruturas de sites e fornecer uma interação mais precisa com os elementos da interface do usuário.

O Poder das Abordagens Multimodais

Em primeiro lugar, uma coisa que percebi rapidamente é que esse tipo de agente web, móvel ou de desktop que pode controlar diretamente o dispositivo de computador pessoal é múltiplas vezes mais difícil do que os agentes de chamada de função normais que estamos construindo. Vamos supor que estamos construindo um agente simples de gerenciamento de caixa de entrada que pode realizar ações como enviar um e-mail. Com um agente de chamada de função normal, tudo o que você precisa fazer é chamar uma função predefinida chamada "enviar e-mail" e passar o conteúdo do e-mail, e a tarefa está concluída. Não há muito espaço para erros.

No entanto, se tentarmos fazer com que um agente web conclua a simples tarefa de enviar um e-mail, ele precisará passar por pelo menos quatro etapas diferentes. Ele precisará primeiro abrir o Gmail.com no navegador da web, clicar na barra de pesquisa, pesquisar o e-mail específico para responder, clicar no e-mail certo nos resultados da pesquisa, clicar no botão de resposta, digitar a resposta e clicar em Enviar. Então, leva muito mais etapas para concluir até mesmo uma tarefa básica. Há muito mais espaço para erros nesse processo, pois qualquer uma dessas etapas o agente pode fazer errado. O agente também precisa de uma memória e capacidade de raciocínio mais fortes para lembrar o que fez antes, a fim de evitar repetir os mesmos erros.

Portanto, em resumo, é muito mais desafiador construir, mas se essa habilidade for alcançada, é super emocionante e abre oportunidades para vários mercados enormes.

Superando os Principais Problemas dos Agentes Web

O desenvolvimento de agentes web que podem controlar diretamente os dispositivos de computador pessoal para automatizar tarefas é um desafio complexo, com vários problemas-chave que precisam ser superados:

  1. Velocidade: A natureza desse tipo de agente requer passar por várias etapas para concluir mesmo tarefas simples, tornando-os inerentemente menos eficientes em comparação com os agentes de chamada de função tradicionais.

  2. Precisão: Localizar e interagir com elementos específicos da interface do usuário em sites e aplicativos com precisão é um desafio significativo. Abordagens como o uso da estrutura HTML/XML, modelos multimodais e combinações de técnicas como OCR e CLIP mostraram progresso, mas ainda há espaço para melhoria.

  3. Conclusão da Tarefa: Os agentes web muitas vezes podem ficar presos em loops infinitos, esquecendo as etapas que realizaram anteriormente e repetidamente encontrando os mesmos problemas. Resolver esse problema de manter o contexto e a conclusão da tarefa é crucial para aumentar a adoção desses agentes.

Desbloqueando o Potencial da Raspagem da Web com Agentes Web

Um dos principais desafios na raspagem da web tem sido a necessidade de manter raspadores personalizados para cada site, pois sua estrutura e layout muitas vezes mudam ao longo do tempo. No entanto, o surgimento de agentes web que podem controlar diretamente a interface do usuário de um navegador da web abre novas possibilidades para a construção de raspadores da web mais universais e robustos.

Esses agentes web aproveitam modelos de IA avançados, como modelos de linguagem em larga escala e técnicas de visão computacional, para entender e interagir com interfaces da web de uma maneira mais semelhante à humana. Ao simular interações reais do usuário, como clicar, rolar e digitar, esses agentes podem navegar e extrair dados de uma ampla gama de sites sem a necessidade de código personalizado.

Um desses projetos de código aberto, chamado WebQL, fornece uma ferramenta poderosa para a construção desses agentes web. O WebQL permite que você defina consultas que especificam os elementos da interface do usuário com os quais deseja interagir, como campos de entrada, botões e listagens de produtos. A biblioteca então usa visão computacional e outras técnicas para localizar e interagir com esses elementos com precisão, mesmo em sites complexos e dinâmicos.

Implementando um Raspador Universal de E-commerce com WebQL

Para construir um raspador de e-commerce universal usando o WebQL, seguiremos estas etapas:

  1. Instale as bibliotecas necessárias:

    • pip install webql
    • pip install playwright
  2. Configure a chave da API do WebQL em um arquivo .env.

  3. Crie um script Python chamado ecommerce_scraper.py com o seguinte código:

import os
from dotenv import load_dotenv
from webql import WebQL
from playwright.sync_api import sync_playwright
import csv
import json

load_dotenv()

def save_json_to_csv(data, filename):
    columns = ['product_name', 'num_reviews', 'price', 'rating']
    with open(filename, 'w', newline='') as csvfile:
        writer = csv.DictWriter(csvfile, fieldnames=columns)
        writer.writeheader()
        for product in data['results']['products']:
            writer.writerow({
                'product_name': product['name'],
                'num_reviews': product['num_reviews'],
                'price': product['price'],
                'rating': product['rating']
            })

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    page = browser.new_page()

    webql = WebQL(os.getenv('WEBQL_API_KEY'))
    session = webql.create_session(page)

    home_query = {
        'search_box': 'input[name="q"]',
        'search_button': 'button[type="submit"]'
    }
    home_elements = session.query(home_query)
    home_elements['search_box'].fill('coffee machine')
    home_elements['search_button'].click()

    search_query = {
        'products': ['name', 'num_reviews', 'price', 'rating']
    }
    search_results = session.query(search_query)

    save_json_to_csv(search_results, 'ecommerce_products.csv')

    browser.close()
  1. Execute o script:
python ecommerce_scraper.py

Este script irá:

  1. Abrir uma sessão do navegador usando o Playwright.
  2. Usar o WebQL para localizar a caixa de pesquisa e o botão de pesquisa na página inicial, preencher "coffee machine" e clicar no botão de pesquisa.
  3. Usar o WebQL para extrair as informações do produto (nome, número de avaliações, preço e classificação) da página de resultados da pesquisa.
  4. Salvar os dados extraídos em um arquivo CSV chamado ecommerce_products.csv.

Automatizando Fluxos de Trabalho Complexos com Agentes Web e WebQL

Em primeiro lugar, uma coisa que percebi rapidamente é que esse tipo de agente web, móvel ou de desktop que pode controlar diretamente o dispositivo de computador pessoal é múltiplas vezes mais difícil do que os agentes de chamada de função normais que estamos construindo. A razão é que mesmo para uma tarefa simples como enviar um e-mail, o agente web precisa passar por várias etapas - abrir o Gmail.com, clicar na barra de pesquisa, pesquisar o e-mail, clicar no botão de resposta, digitar a resposta e clicar em enviar. Esse processo tem muito mais espaço para erros, e o agente precisa de uma memória e capacidade de raciocínio mais fortes para lembrar e não repetir os mesmos erros.

Para fazer esse sistema funcionar, existem algumas abordagens comuns. A primeira é a abordagem baseada em HTML ou XML, onde o agente recebe a estrutura dos elementos DOM HTML do site para entender a interface e decidir as próximas ações. Esse método é o mais maduro, mas tem limitações, especialmente para tarefas envolvendo imagens ou sites mal projetados.

A segunda abordagem é o método baseado em visão, onde o agente usa um modelo multimodal para entender uma captura de tela da interface e fornecer instruções sobre onde interagir. Essa abordagem teve progresso significativo, com técnicas como Mapas de Saliência e a combinação de modelos GPT-4 e OCR melhorando a precisão. O modelo de código aberto chamado Cook Agent, projetado especificamente para entender e interagir com capturas de tela da GUI, é um exemplo promissor dessa abordagem.

Conclusão

Essa nova abordagem de agente que pode controlar diretamente os dispositivos de computador pessoal para automatizar tarefas é fundamentalmente diferente da abordagem de agentes de chamada de função tradicionais. Em vez de pré-definir funções específicas para cada site ou aplicativo, esse agente visa aprender habilidades fundamentais como cliques do mouse, rolagem e digitação, permitindo que ele interaja com qualquer novo site ou aplicativo.

Os principais desafios na construção de um agente desse tipo incluem garantir velocidade, precisão e conclusão da tarefa. Embora as abordagens iniciais usando análise de HTML/XML e modelos multimodais tenham tido algum sucesso, o surgimento de modelos especializados como o CookAgent mostra um progresso promissor no tratamento desses desafios.

Uma área em que essa tecnologia pode ser particularmente útil é a raspagem da web. Ao criar uma "API universal" para acessar qualquer site, esses agentes podem reduzir significativamente o custo de manutenção para empresas que precisam raspar regularmente sites concorrentes ou agregar dados de várias fontes.

O exemplo fornecido demonstra como construir um raspador de produtos de e-commerce versátil usando a biblioteca WebQL, que simplifica o processo de localizar e interagir com elementos da interface do usuário. Essa abordagem pode ser estendida para fluxos de trabalho mais complexos, como extrair informações de preços e entrega da Tesla em diferentes países, formatar os dados em uma planilha do Google e compartilhar automaticamente os resultados no Slack.

Essa nova abordagem de agente representa um desenvolvimento emocionante no campo da IA, com o potencial de desbloquear uma ampla gama de aplicações práticas, automatizando várias tarefas pessoais e relacionadas ao trabalho.

Perguntas frequentes