🎯 Um navegador em nuvem personalizável e anti-detecção alimentado por Chromium desenvolvido internamente, projetado para rastreadores web e agentes de IA. 👉Experimente agora
De volta ao blog

Agente Hermes + Scrapeless: Integração CDP em 1 Linha para Agentes Web Anti-Detecção

James Thompson
James Thompson

Scraping and Proxy Management Expert

06-May-2026

Principais Conclusões:

  • Integração de uma linha de configuração. O Hermes Agent da Nous Research possui uma ferramenta de navegador embutida que já fala o Protocolo DevTools do Chrome. Apontá-lo para o Scrapeless Scraping Browser é uma única linha browser.cdp_url em ~/.hermes/config.yaml. Sem instalação de SDK, sem subprocesso CLI, sem mudança de código do lado do agente.
  • Cada ação do navegador Hermes é executada no navegador em nuvem Scrapeless. browser_navigate, browser_snapshot, browser_click, browser_type, browser_scroll, browser_press, browser_get_images e browser_vision são executados dentro do navegador em nuvem Scrapeless, atrás de proxies residenciais, com impressão digital anti-detecção em cada sessão.
  • Alcance multicanal. O gateway do Hermes expõe o agente por meio do Telegram, Discord, Slack, WhatsApp, Signal, email e uma CLI. Com o Scrapeless integrado, o navegador em nuvem se torna o back-end de qualquer pesquisa, geração de leads ou fluxo de monitoramento orientado por chat, sem expor um ponto de término de scraping separado.
  • Navegador em nuvem anti-detecção, proxies residenciais em 195 países. O Scrapeless Scraping Browser lida com a renderização de JavaScript, a saída de proxies residenciais, a personalização de impressão digital do navegador (agente do usuário, fuso horário, idioma, resolução de tela) e a persistência de sessão no nível da plataforma, para que o agente possa se concentrar na tarefa em si em vez da infraestrutura de acesso.
  • Integração direta do CDP. Apontar a ferramenta do navegador Hermes para o endpoint WSS do Scrapeless é toda a fiação — sem drop-in de habilidade, sem SDK, sem subprocesso.

O Hermes Agent é um agente autônomo de código aberto com memória persistente, criação autônoma de habilidades e um gateway multicanal. Pronto para uso, ele fornece uma ferramenta de navegador que utiliza um modelo de árvore de acessibilidade — as páginas são renderizadas em instantâneas de texto com elementos interativos rotulados como @e1, @e2, @e3, e o LLM conduz a navegação e o preenchimento de formulários com base nessas referências. Isso funciona bem para consultas de documentação e tarefas básicas de navegação.

A web comercial é uma superfície diferente. Cloudflare Turnstile, reCAPTCHA, Akamai Bot Manager, listas de reputação de IP e SPAs somente em JavaScript estão entre clientes automatizados e muitos varejistas, marketplaces e SERPs. Um Chromium local funcionando sem assistência é frequentemente identificado como tráfego automatizado por essas camadas. Fluxos de trabalho que o agente poderia completar — puxando preços de uma página de categoria, monitorando uma página de listagens públicas, preenchendo um formulário autenticado, extraindo um conjunto de dados digitado para RAG downstream — pausam no primeiro interstício.

O Scrapeless Scraping Browser é um navegador em nuvem anti-detecção exposto através do Protocolo DevTools do Chrome. Ele fornece uma rede de proxies residenciais abrangendo 195 países (de acordo com a documentação do Scrapeless) e randomiza impressões digitais do navegador por sessão. A ferramenta de navegador do Hermes já fala CDP. A integração é uma linha de configuração. Este post percorre a fiação, os prompts que o agente aceitará e o padrão de descobrir → extrair que escala a combinação através de sites.


Por que Scrapeless Scraping Browser

O Scrapeless Scraping Browser é um navegador em nuvem personalizável e anti-detecção projetado para web crawlers e agentes de IA. Para o Hermes Agent especificamente, ele traz:

  • Superfície do Protocolo DevTools do Chrome — A ferramenta de navegador do Hermes já fala CDP. O navegador em nuvem é inserido atrás das mesmas chamadas da ferramenta sem recompilação, expansão de configuração ou novos caminhos de código.
  • Proxies residenciais em 195 países — consultas geo-restritas retornam as listagens que um usuário local veria, com rotação por sessão e sem configuração por solicitação.
  • Renderização de JavaScript do lado da nuvem — as páginas são totalmente hidratadas antes da extração, portanto, SPAs, feeds de carregamento infinito e painéis carregados de forma assíncrona são alvos de primeira classe para browser_snapshot e browser_vision.
  • Personalização da impressão digital do navegador — parâmetros principais (agente do usuário, fuso horário, idioma, resolução de tela) são configuráveis por sessão, de acordo com a documentação do Scrapeless; identidades consistentes estão disponíveis por meio do recurso de impressão digital personalizada do Scrapeless quando a continuidade importa.
  • Persistência de sessão através dos parâmetros de consulta sessionTTL (60–900 segundos) e sessionName no endpoint WSS, de modo que os fluxos Hermes de várias etapas reutilizem o mesmo navegador aquecido, cookies e posição de rolagem em chamadas de ferramentas.
  • Superfície de gerenciamento único — uma chave de API, uma conta em nuvem e gravação no lado do painel para repetição.

Obtenha sua chave de API no plano gratuito em inscreva-se no Scrapeless e junte-se à nossa comunidade oficial.
Comunidade Oficial do Scrapeless no Discord
Comunidade Oficial do Scrapeless no Telegram


Pré-requisitos

  • Hermes Agent instalado. O instalador oficial cobre Linux, macOS, WSL2 e Termux no Android: curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash. O assistente de configuração é executado na primeira inicialização.
  • Uma conta Scrapeless e chave de API — inscreva-se em Scrapeless e copie a chave de Configurações → Gerenciamento de Chave de API.
  • Python 3.11 ou mais recente — requisito de tempo de execução do Hermes.
  • Uma chave de API de modelo de chat — Hermes é independente de fornecedor (Nous Portal, OpenRouter, NVIDIA NIM, Xiaomi MiMo e qualquer endpoint compatível com OpenAI personalizado). Configure qualquer fornecedor ao qual o Hermes já esteja conectado.
  • Familiaridade básica com a edição de ~/.hermes/config.yaml ou execução dos subcomandos CLI do Hermes.

Instalar

A configuração completa consiste em quatro subetapas. Cada uma é verificável de forma independente, para que você possa pausar e confirmar antes de prosseguir.

1. Obtenha a chave de API Scrapeless

Inscreva-se em Scrapeless, abra o painel e a partir de Configurações → Gerenciamento de Chave de API crie uma chave. Copie o valor — ele vai para a configuração do Hermes na etapa 2.

Abra ~/.hermes/config.yaml (crie o arquivo se ele não existir) e adicione a linha browser.cdp_url. O endpoint CDP Scrapeless aceita a chave de API, o país do proxy e o TTL da sessão como parâmetros de consulta:

yaml Copy
# ~/.hermes/config.yaml
browser:
  cdp_url: "wss://browser.scrapeless.com/api/v2/browser?token=YOUR_SCRAPELESS_API_KEY&proxyCountry=US&sessionTTL=600"

Essa única linha direciona cada chamada da ferramenta do navegador do Hermes — browser_navigate, browser_snapshot, browser_click, browser_type, browser_scroll, browser_press, browser_get_images, browser_vision — através do navegador em nuvem Scrapeless. A representação da árvore de acessibilidade que o Hermes utiliza para rotular @e1, @e2, @e3 é produzida a partir da renderização do navegador em nuvem, portanto, prompts e habilidades existentes continuam funcionando.

Se a edição do YAML manualmente for inconveniente, a forma CLI /browser connect "wss://browser.scrapeless.com/api/v2/browser?token=YOUR_SCRAPELESS_API_KEY&proxyCountry=US" faz a mesma coisa para a sessão atual sem persistir.

3. Defina a chave de API fora do arquivo de configuração (recomendado)

Para repositórios compartilhados ou shells multiusuário, mantenha o segredo fora do YAML. A configuração do Hermes suporta a substituição ${VAR}; exporte a chave uma vez e faça referência a ela a partir da URL:

macOS / Linux (bash ou zsh) — anexe a ~/.zshrc ou ~/.bashrc:

bash Copy
export SCRAPELESS_API_KEY="your_api_token_here"
source ~/.zshrc          # ou ~/.bashrc

Windows (PowerShell) — persistente, escopo de usuário:

powershell Copy
[Environment]::SetEnvironmentVariable("SCRAPELESS_API_KEY", "your_api_token_here", "User")

Então, atualize a configuração para interpolar a variável:

yaml Copy
browser:
  cdp_url: "wss://browser.scrapeless.com/api/v2/browser?token=${SCRAPELESS_API_KEY}&proxyCountry=US&sessionTTL=600"

4. Verifique a conexão

Reinicie o Hermes para que ele pegue a nova configuração, então pergunte ao agente:

"Abra https://example.com e me diga o texto do cabeçalho H1."

Uma execução bem-sucedida retorna "Exemplo de Domínio". Se o agente relatar um ERR_TUNNEL_CONNECTION_FAILED, um 401, ou um travamento em browser_navigate, as causas mais comuns são a chave de API, a região do proxy, ou a URL WSS colada com um espaço extra.


Como você realmente usa isso: peça ao seu agente

Após a alteração da linha de configuração, você controla o Scrapeless do Hermes falando com o agente — não escrevendo o código glue do CDP. O agente possui o loop de descoberta → extração e escolhe as ferramentas do navegador turno a turno. O gateway multicanal do Hermes significa que os mesmos prompts funcionam a partir do Telegram, Discord, Slack, WhatsApp, Signal, email ou CLI local.

Prompts que você pode colar

Você digita O que o agente faz
"Abra https://news.ycombinator.com e retorne as cinco principais histórias com título, URL, autor, pontuação e contagem de comentários como JSON." browser_navigatebrowser_snapshot → extração digitada.
"Compare as páginas de preços desses três concorrentes de SaaS e resumam as diferenças." Navegação de várias abas, browser_get_images para níveis de planos, resumo LLM.
"Puxe a página inicial e a página de preços de https://example.com como se eu estivesse em Tóquio." Reinicie a sessão com proxyCountry=JP (veja "Defina uma região" abaixo), então renderize.
"Observe esta página de carreiras do Greenhouse e me diga quais funções correspondem a engenheiro de equipe ou infra." Navegue, tire uma foto da lista, filtre linhas por palavra-chave, retorne linhas estruturadas.
"Tire uma captura de tela em página inteira de https://example.com e analise o que há nela." browser_navigatebrowser_vision (captura + envia para o modelo multimodal).
"Preencha o formulário de contato em <URL> com meu nome, email e uma mensagem curta — mas pare antes de enviar para que eu possa revisar." Faça uma captura da forma, mapeie os campos de prompt para @e1/@e2/…, browser_type, capture a tela, pare na referência de envio.
"A extração voltou vazia ontem — execute novamente com a gravação de sessão ativada para que eu possa reproduzi-la." Reemita o mesmo fluxo com sessionRecording=true na URL WSS; o link de reprodução aparece no painel do Scrapeless.
"Abra a página do produto da Amazon em <URL> de um egress dos EUA e retorne título, preço, classificação e contagem de avaliações." Sessão de região fixada, captura, extração estruturada.

Formulando prompts

Formulação Efeito
"Use um egress alemão." Reinicie a sessão do navegador em nuvem com proxyCountry=DE na URL WSS.
"Mantenha a sessão ativa pelos próximos dez minutos." Aumente sessionTTL=600 para que fluxos de múltiplas etapas reutilizem o mesmo navegador.
"Ative a gravação da sessão." Anexe sessionRecording=true — o painel expõe um vídeo reproduzível para a execução.
"Retorne markdown, não HTML bruto." O agente passa a captura pelo seu extractor e retorna a visualização em markdown.
"Pare antes do envio final." Padrão embutido do Hermes — dirija-se ao formulário, capture a tela, pare na referência de envio.

As etapas 1–5 abaixo são a referência nos bastidores. Leia-as uma vez para ver como o padrão de descobrir → extrair se compõe; depois confie no agente para aplicá-lo a qualquer solicitação que o operador passar do chat.


A conexão é a URL WSS da etapa de instalação. A ferramenta de navegador Hermes a disca na primeira utilização e reutiliza o mesmo socket durante toda a duração da sessão.

yaml Copy
# ~/.hermes/config.yaml
browser:
  cdp_url: "wss://browser.scrapeless.com/api/v2/browser?token=${SCRAPELESS_API_KEY}&proxyCountry=US&sessionTTL=600"

Três parâmetros de consulta fazem a maior parte do trabalho:

  • token — a chave da API Scrapeless. Obrigatória.
  • proxyCountry — o país do proxy residencial (ISO-3166 alpha-2, por exemplo, US, DE, JP, GB). Por padrão, usa um pool global; fixe-o para listagens geograficamente restritas.
  • sessionTTL — quanto tempo o navegador em nuvem permanece ativo após o último comando, em segundos. Faixa de 60 a 900. TTLs mais altos são adequados para fluxos de múltiplas etapas; o padrão de 60 é apropriado para extrações únicas.

Um erro transitório os error 10054, ERR_TUNNEL_CONNECTION_FAILED, ou 503 na primeira discagem pode ocorrer quando a infraestrutura anti-bot redefine novas sessões antes que o navegador esteja totalmente pronto. Reemita o prompt com falha para tentar novamente; para fluxos de trabalho de produção, a entrada de FAQ abaixo abrange um padrão de retry explícito.


Etapa 2 — Descobrir com browser_navigate + browser_snapshot

Abra a página e leia-a como uma árvore de acessibilidade antes de extrair. A captura retorna rótulos de texto para cada referência interativa (@e1, @e2, @e3, …) e o conteúdo textual ao redor — o suficiente para o agente escolher o elemento certo sem adivinhar seletores CSS.

text Copy
Você: Abra https://example.com/products e capture a página.
Agente: browser_navigate "https://example.com/products"
        browser_snapshot
        [retorna árvore de acessibilidade com @e1 = campo de busca, @e2 = dropdown de ordenação,
         @e3..@e22 = cartões de produtos com referências de título + preço + classificação]

browser_snapshot é a chamada que suporta o carregamento. É o que transforma uma página ao vivo no estilo CDP em algo que um LLM pode raciocinar turno a turno. Pular isso e o agente tem que recorrer a fatiar HTML bruto, o que é mais frágil e usa mais tokens. A captura é a etapa de descoberta no padrão descobrir → extrair; toda extração abaixo assume que ela foi realizada primeiro.


Etapa 3 — Extrair com prompts estruturados

Com a captura em mãos, a extração é uma chamada regular de ferramenta LLM: o agente lê as referências e o texto ao redor, escolhe os campos que precisa e retorna um registro tipado. Sem seletores CSS, sem avaliações JS — a captura já contém os dados que o modelo precisa.

text Copy
Você: Da captura, retorne os 10 melhores produtos como JSON com título, preço, classificação e URL do produto.
Agente: [retorna um array JSON com 10 linhas; campos ausentes são nulos]

Para páginas não triviais (catálogos de múltiplabas, feeds de rolagem infinita, variantes renderizadas em A/B), complete a captura com browser_scroll para hidratar painéis carregados sob demanda, e então faça uma nova captura. O navegador em nuvem lida com a renderização JS; Hermes lida com o loop.


Etapa 4 — Dirigir uma interação de múltiplas etapas

As mesmas ferramentas do navegador lidam com preenchimento de formulários, cadeias de navegação e revisões com humanos no loop. O padrão: captura → identificar referência → agir → captura → próxima referência.

text Copy
Você: Abra https://app.example.com/contact, preencha nome, email e mensagem,
     capture a tela do formulário e pare antes de enviar para que eu possa revisar.
Agente: browser_navigate "https://app.example.com/contact"
        browser_snapshot
        # @e1 [input] "Nome completo", @e2 [input] "Email",
        # @e3 [textarea] "Mensagem", @e4 [botão] "Enviar"
        browser_type @e1 "Jane Doe"
        browser_type @e2 "jane@example.com"
tipo_navegador @e3 "Olá, eu gostaria de falar sobre ..."
       visão_do_navegador   # capturar renderização de página inteira para revisão
       # parar — @e4 não é pressionado até que o humano aprove a página capturada

---

## Passo 5 — Fixar uma região e persistir uma sessão entre turnos

Para qualquer alvo onde as listagens variam por região de saída (SERPs do Google, Amazon por mercado, reservas de hotéis/voos, diretórios de empresas locais), fixe `proxyCountry` na região pretendida pelo usuário. Para fluxos de múltiplas etapas que precisam de cookies quentes e posição de rolagem entre múltiplos turnos de agentes (SERPs paginadas, dashboards autenticados, formulários de várias páginas), defina `sessionTTL` mais alto e reutilize o mesmo `sessionName`.

```yaml
# Saída de Tóquio, sessão quente de 15 minutos, vídeo reproduzível
navegador:
  cdp_url: "wss://browser.scrapeless.com/api/v2/browser?token=${SCRAPELESS_API_KEY}&proxyCountry=JP&sessionTTL=900&sessionName=tokyo-research&sessionRecording=true"

Trocar de regiões no meio da conversa é a uma /browser connect de distância — Hermes desliga o socket atual, disca a nova URL e o próximo browser_navigate roda pela nova saída. A gravação é a bandeira de maior alavancagem para um pipeline não supervisionado: cada execução aparece no painel do Scrapeless como um vídeo reproduzível, então quando o agente relata uma extração vazia o operador pode ver o que o navegador em nuvem realmente renderizou.


O que esperar quando isso roda na web ao vivo

  • O tempo de hidratação varia por site. SPAs que hidratam conteúdo através de um XHR secundário podem precisar de um browser_scroll ou uma breve espera antes que a captura reflita o DOM final. Re-capture uma vez se um campo consistentemente retornar nulo.
  • A extração sem seletores é mais resiliente do que seletores CSS, mas não é imune a variação de layout. A árvore de acessibilidade muda quando os sites adicionam uma nova coluna ou renomeiam um botão; re-solicite ao agente para redescobrir referências em vez de codificá-las em uma habilidade salva.
  • Intersticiais anti-bot aparecem como um redirecionamento na captura. Quando um site carrega antecipadamente um desafio do Cloudflare ou Akamai que o navegador em nuvem não consegue completar de forma transparente, a captura reporta a página do desafio em vez do alvo. Amplie a impressão digital ou fixe uma região de proxy diferente.
  • browser_vision complementa browser_snapshot. Para páginas visualmente complexas (tabelas de preços incorporadas como imagens, gráficos, infográficos), a ferramenta de visão é a saída correta — ela envia uma captura de tela para o modelo multimodal em vez do texto de acessibilidade.
  • A gravação de sessão é de alta alavancagem. sessionRecording=true na URL WSS transforma "o agente fez algo estranho" em um vídeo clicável no painel do Scrapeless. Verifique a página de preços para saber se seu plano inclui gravação.

FAQ

Preciso de um proxy residencial?
Sim, para qualquer site com proteção anti-bot significativa, que é a maioria dos varejistas, mercados e endpoints de SERP. O endpoint WSS do Scrapeless roteia pelo pool residencial por padrão; o parâmetro de consulta proxyCountry fixa o país de saída.

A primeira conexão retornou ERR_TUNNEL_CONNECTION_FAILED ou erro do sistema 10054. E agora?
Ambos são erros transitórios de criação de sessão e normalmente se resolvem na nova tentativa. Reenvie o prompt com falha; para fluxos de trabalho de produção que não devem falhar na primeira tentativa, envolva o prompt com falha em um pequeno loop de nova tentativa com retrocesso exponencial (2s, 5s, 15s).

Um site retorna Acesso Negado. E agora?
Primeiro, tente novamente — camadas anti-bot costumam ser liberadas após uma reinicialização da sessão. Se a página continuar bloqueando, altere proxyCountry para uma região diferente, reenvie /browser connect para gerar uma nova impressão digital ou entre em contato com o suporte do Scrapeless para confirmar que o bloqueio é a nível de plataforma e não a nível de conta.

Seletores continuam quebrando. Como sobreviver à rotação do DOM?
Use browser_snapshot em vez de fatiar HTML bruto com seletores CSS. A representação da árvore de acessibilidade é mais estável em variações de layout, e o agente redescobre referências a cada turno em vez de depender de caminhos codificados.

Quantos trabalhadores simultâneos por host?
O Scrapeless não publica um limite fixo de concorrência por host; o controle de taxa é gerenciado do lado da plataforma. Para pipelines de múltiplos hosts, execute loops de agentes independentes por host em vez de concentrar em um único domínio — e confirme a concorrência do nível da sua conta no Painel do Scrapeless antes de escalar.

Posso usar isso sem um agente de IA?
Sim. O endpoint Scrapeless WSS é um CDP puro — qualquer script do Puppeteer ou Playwright se conecta com puppeteer.connect({ browserWSEndpoint: ... }) ou chromium.connectOverCDP(...) e obtém o mesmo navegador em nuvem. O Hermes é o caminho recomendado quando a pesquisa orientada por chat ou o alcance multicanal são importantes; o endpoint CDP é a opção de fallback de nível inferior.

Posso trocar o Hermes por outro agente?
Sim. Qualquer agente que suporte um endpoint CDP personalizado (integrações estilo Browserbase, Uso do Navegador, pipelines personalizados do Playwright/Puppeteer) se conecta ao mesmo endpoint WSS. A superfície de integração é o protocolo, não o cliente.

Como mantenho os cookies e o estado de login entre várias turnos de agente?
Defina sessionTTL para um valor mais longo (300–900 segundos), dê à sessão um sessionName estável e evite reiniciar a conexão entre as chamadas. O navegador em nuvem mantém o mesmo perfil de navegador, cookies e posição de rolagem "quentes" durante a duração da sessão.

Onde vejo o que o navegador em nuvem realmente renderizou?
Anexe sessionRecording=true à URL WSS. Cada execução aparece no painel Scrapeless como um vídeo reproduzível, para que uma extração vazia ou um intersticial surpresa seja visível de ponta a ponta sem instrumentar o agente.

Na Scorretless, acessamos apenas dados disponíveis ao público, enquanto cumprem estritamente as leis, regulamentos e políticas de privacidade do site aplicáveis. O conteúdo deste blog é apenas para fins de demonstração e não envolve atividades ilegais ou infratoras. Não temos garantias e negamos toda a responsabilidade pelo uso de informações deste blog ou links de terceiros. Antes de se envolver em qualquer atividade de raspagem, consulte seu consultor jurídico e revise os termos de serviço do site de destino ou obtenha as permissões necessárias.

Artigos mais populares

Catálogo