
Adélia Cruz
Neural Network Developer

Quando seu agente de IA navega pela web para você, CAPTCHAs são o principal obstáculo. Páginas protegidas bloqueiam o agente, formulários se recusam a enviar e tarefas ficam travadas esperando intervenção humana.
Hermes Agent da Nous Research é um agente de IA autoaperfeiçoável que funciona em qualquer lugar — de um VPS de $5 a um cluster de GPU — e alcança você em todos os canais que já usa: Telegram, Discord, Slack, WhatsApp, Signal e e-mail. Ele também pode controlar um navegador para navegar em páginas, clicar em botões, preencher formulários e extrair dados em seu nome. Mas como qualquer agente que controla um navegador, ele fica travado em CAPTCHAs.
CapSolver muda isso completamente. Ao carregar a extensão do CapSolver no navegador ao qual o Hermes se conecta, os CAPTCHAs são resolvidos automaticamente e invisivelmente em segundo plano. Nenhum código. Nenhuma chamada de API do seu lado. Nenhuma ginástica de engenharia de prompts.
O melhor de tudo? Você nem precisa mencionar CAPTCHAs ao agente. Basta dizer a ele para esperar um momento antes de enviar — e quando ele clicar em Enviar, o CAPTCHA já estará resolvido.
Hermes Agent é um agente de IA autônomo de código aberto desenvolvido pela Nous Research. Ele é projetado em torno de três princípios: memória persistente (lembra de você e dos seus projetos entre as sessões), criação de habilidades autônoma (aprende procedimentos a partir da experiência e os repete na próxima vez) e flexibilidade de infraestrutura (execute-o em um VPS pequeno, em um contêiner Docker, em um sandbox serverless ou em sua própria GPU).

hermes modelO Hermes pode controlar um navegador Chromium para realizar trabalhos reais — navegar, ler DOM, clicar, digitar, capturar tela, coletar dados. A camada de ferramenta do navegador é incomum em um aspecto específico: em vez de forçá-lo a um único backend, o Hermes suporta cinco fornecedores de navegador intercambiáveis:
| Fornecedor | Tipo | Extensões? |
|---|---|---|
| Browserbase | Nuvem | ✗ |
| Browser Use | Nuvem | ✗ |
| Firecrawl | Nuvem | ✗ |
| Camoufox | Local (Firefox stealth) | ✗ |
| CDP attach | Local (qualquer Chromium) | ✓ |
Fornecedores em nuvem não podem carregar extensões — você não controla o navegador remoto. O Camoufox é baseado em Firefox e não executa uma extensão Chrome MV3. O ponto de integração limpo é o quinto: CDP attach, onde o Hermes se conecta a um Chromium você iniciou separadamente. É aí que o CapSolver se encaixa.
Este é um modelo diferente dos ferramentais como OpenClaw (que inicia seu próprio Chromium e aceita um browser.extensions array) ou Crawlee (onde você controla as bandeiras de lançamento do Playwright). Com o Hermes, você traz seu próprio Chrome com a extensão carregada previamente, e o Hermes se conecta a ele pelo protocolo DevTools.
CapSolver é um serviço líder de resolução de CAPTCHA que fornece soluções com inteligência artificial para contornar desafios de CAPTCHA modernos. Com suporte para todos os tipos principais de CAPTCHA e tempos de resposta rápidos, o CapSolver se integra perfeitamente em fluxos de trabalho automatizados — seja você estar controlando um navegador via Playwright, chamando sua API diretamente ou, como neste guia, executando sua extensão Chrome dentro da sessão do navegador do agente.
A maioria das integrações de resolução de CAPTCHA exige que você escreva código — criar chamadas de API, poliar por resultados, injetar tokens em campos ocultos. É assim que funciona com ferramentas como Crawlee, Puppeteer ou Playwright.
Hermes + CapSolver é fundamentalmente diferente:
| Tradicional (Baseado em Código) | Hermes (Linguagem Natural) |
|---|---|
Escreva uma classe CapSolverService |
Inicie o Chrome uma vez com --load-extension=... |
Chame createTask() / getTaskResult() |
Apenas fale com seu agente |
Injete tokens via page.$eval() |
A extensão cuida de tudo |
| Trate erros, repetições, timeout no código | Diga ao agente para "esperar 60 segundos, depois enviar" |
| Código diferente para cada tipo de CAPTCHA | Funciona para todos os tipos automaticamente |
A principal descoberta: A extensão do CapSolver roda no navegador conectado. O Hermes se conecta a esse navegador pelo CDP e o controla normalmente. Quando o agente navega para uma página com um CAPTCHA, a extensão — rodando no mesmo Chrome, completamente invisível para o agente — detecta o widget, chama a API do CapSolver e injeta o token de solução na página. Quando o agente clicar em Enviar, o formulário já carrega um token válido.
Você só precisa dar tempo. Em vez de dizer ao agente "resolva o CAPTCHA", você simplesmente diz:
"Vá para essa página, espere 60 segundos, depois clique em Enviar."
Isso é tudo. O agente não precisa saber que o CapSolver existe.
Antes de configurar a integração, certifique-se de ter:
Google Chrome 137+ (lançado no meio de 2025) removeu silenciosamente o suporte para
--load-extensionem builds com marca. Isso significa que extensões do Chrome não podem ser carregadas em sessões automatizadas usando o Google Chrome padrão. Não há erro — o sinalizador é simplesmente ignorado.
Isso afeta o Google Chrome e o Microsoft Edge. Você precisa usar uma das alternativas abaixo:
| Navegador | Carregamento de Extensão | Recomendado? |
|---|---|---|
| Google Chrome 137+ | Não suportado | Não |
| Microsoft Edge | Não suportado | Não |
| Chrome para Testes | Suportado | Sim |
| Chromium (estável) | Suportado | Sim |
| Chromium embutido no Playwright | Suportado | Sim |
Como instalar o Chrome para Testes:
# Opção 1: Via Playwright (recomendado — o Hermes já usa o Playwright internamente)
npx playwright install chromium
# O binário estará em um caminho como:
# ~/.cache/ms-playwright/chromium-XXXX/chrome-linux64/chrome (Linux)
# ~/Library/Caches/ms-playwright/chromium-XXXX/chrome-mac/Chromium.app/Contents/MacOS/Chromium (macOS)
# Opção 2: Via download direto do Chrome para Testes
# Visite: https://googlechromelabs.github.io/chrome-for-testing/
# Baixe a versão compatível com seu SO
Após a instalação, anote o caminho completo para o binário — você precisará dele na próxima etapa.
A integração tem dois componentes trabalhando juntos:
9222).config.yaml do Hermes para informar que ele deve se conectar a essa porta CDP em vez de iniciar seu próprio navegador.Isso é tudo — nenhum código, nenhuma modificação no Hermes.
Baixe a extensão do CapSolver Chrome e extraia-a para um local estável:
CapSolver.Browser.Extension-chrome-vX.X.X.zipmkdir -p ~/.hermes/capsolver-extension
unzip CapSolver.Browser.Extension-chrome-v*.zip -d ~/.hermes/capsolver-extension/
ls ~/.hermes/capsolver-extension/manifest.json
Você deve ver manifest.json — isso confirma que a extensão está no lugar certo.
Dica sobre caminhos: Use um caminho absoluto e resolvido (não
~) ao passar--load-extension=...para o Chrome mais tarde. Alguns builds do Chrome MV3 têm casos especiais onde os workers de extensão falham em se registrar por meio de links simbólicos em diretórios de usuário personalizados. Se você estiver vinculando a extensão de outro local, usereadlink -fpara resolver o caminho real e use esse.
Abra o arquivo de configuração da extensão em ~/.hermes/capsolver-extension/assets/config.js e substitua o valor de apiKey pela sua própria:
export const defaultConfig = {
apiKey: 'CAP-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', // ← sua chave aqui
useCapsolver: true,
enabledForRecaptcha: true,
enabledForRecaptchaV3: true,
// ... restante da configuração
};
Você pode obter sua chave de API no seu painel do CapSolver.
Essa é a etapa crucial. Iniciamos o Chrome uma vez, separadamente do Hermes, com três flags cruciais:
--remote-debugging-port=9222 — expõe o protocolo DevTools para que o Hermes se conecte--load-extension=... — carrega a extensão do CapSolver--user-data-dir=... — usa um perfil dedicado para que não haja conflito com o seu Chrome pessoalO Hermes tem uma convenção interna para o diretório de dados do usuário: ~/.hermes/chrome-debug. Usar esse caminho significa que o comando /browser connect do Hermes também "funciona automaticamente" sem flags adicionais.
/caminho/para/chrome-para-testes/chrome \
--remote-debugging-port=9222 \
--remote-debugging-address=127.0.0.1 \
--user-data-dir="$HOME/.hermes/chrome-debug" \
--load-extension="$HOME/.hermes/capsolver-extension" \
--disable-extensions-except="$HOME/.hermes/capsolver-extension" \
--no-first-run \
--no-default-browser-check \
--no-sandbox
Substitua /caminho/para/chrome-para-testes/chrome pelo seu binário real, por exemplo ~/.cache/ms-playwright/chromium-1200/chrome-linux64/chrome.
Servidores sem tela: Se você estiver executando isso em um servidor Linux sem tela física (um VPS, EC2, etc.), veja a seção Melhores Práticas abaixo para a configuração do
Xvfb. O sistema de extensão do Chrome exige um contexto de tela.
Para qualquer configuração que viva mais do que uma única execução de teste, envolva o lançamento em um pequeno script de shell para que você possa manter o Chrome rodando em segundo plano, reiniciá-lo limpo e supervisioná-lo com qualquer gerenciador de processo que já use (systemd, supervisor, runit, OpenRC, Docker, etc.).
Salve isso como ~/.hermes/chrome-debug.sh e dê permissão de execução:
#!/usr/bin/env bash
# ~/.hermes/chrome-debug.sh
# Inicia o Chrome para Testes com a extensão do CapSolver carregada
# e o CDP exposto em 127.0.0.1:9222.
CHROME_BIN="$HOME/.cache/ms-playwright/chromium-1200/chrome-linux64/chrome"
EXT_DIR="$HOME/.hermes/capsolver-extension"
USER_DATA_DIR="$HOME/.hermes/chrome-debug"
export DISPLAY=:99 # para servidores sem tela — veja as Melhores Práticas
exec "$CHROME_BIN" \
--remote-debugging-port=9222 \
--remote-debugging-address=127.0.0.1 \
--user-data-dir="$USER_DATA_DIR" \
--load-extension="$EXT_DIR" \
--disable-extensions-except="$EXT_DIR" \
--no-first-run \
--no-default-browser-check \
--no-sandbox \
--disable-dev-shm-usage \
--disable-features=Translate
O lançamento mais simples é apenas:
nohup ~/.hermes/chrome-debug.sh > /tmp/chrome-debug.log 2>&1 &
Para produção, supervise o script com o gerenciador de processo de sua preferência. Um serviço systemd mínimo em ~/.config/systemd/user/chrome-debug.service:
[Unit]
Description=Chrome com CapSolver para Hermes Agent
After=network.target
[Service]
ExecStart=%h/.hermes/chrome-debug.sh
Restart=always
RestartSec=5
[Install]
WantedBy=default.target
Então:
systemctl --user daemon-reload
systemctl --user enable --now chrome-debug
Qualquer configuração equivalente (programa do supervisord, serviço do runit, contêiner do Docker, etc.) funciona da mesma forma — a integração só se importa com o fato de que algo mantém o chrome-debug.sh rodando.
Edite sua configuração do Hermes em ~/.hermes/config.yaml. Encontre a seção browser: (geralmente só tem inactivity_timeout) e adicione um cdp_url:
browser:
inactivity_timeout: 120
cdp_url: http://127.0.0.1:9222
Essa única linha diz ao ferramenta browser_cdp do Hermes para redirecionar todas as operações de navegador para o Chrome que você iniciou na Etapa 3, em vez de iniciar o próprio.
Reversibilidade: Essa é a única alteração no Hermes. Para reverter, remova a linha
cdp_url. O Hermes retorna para o fornecedor de navegador padrão que estava usando (Browserbase, Browser Use, etc.) sem outros efeitos colaterais.
Se o Hermes já estiver rodando, reinicie-o para que ele pegue o novo cdp_url:
# Rodando diretamente (modo foreground ou sob seu supervisor):
hermes gateway run
# Ou reinicie via qualquer gerenciador de processo que você use para supervisionar o Hermes —
# a única exigência é que a nova env/config entre em vigor.
O Hermes vem com um comando de diagnóstico interno que verifica todas as partes da integração de uma só vez:
hermes doctor
Você está procurando por esses sinais:
◆ Disponibilidade de Ferramentas
✓ browser-cdp ← CDP está ativo
✓ browser
...
◆ Conectividade de API
Verificando API do OpenRouter... ✓ API do OpenRouter
Se browser-cdp aparecer sob Disponibilidade de Ferramentas, o Hermes detectou seu endpoint CDP e a integração está configurada corretamente. Se estiver ausente, o Hermes desativa silenciosamente a ferramenta (sem erro) — esse é o diagnóstico a ser observado.
Você também pode confirmar que o Chrome está acessível diretamente:
curl -s http://127.0.0.1:9222/json/version
Uma resposta como a seguinte confirma que o CDP está ativo:
{
"Browser": "Chrome/<sua versão>",
"Protocol-Version": "1.3",
"webSocketDebuggerUrl": "ws://127.0.0.1:9222/devtools/browser/..."
}
Sobre a visibilidade do serviço de trabalho do CapSolver: os trabalhadores de serviço do Chrome MV3 entram em inatividade de forma agressiva, e em builds recentes do Chrome,
/json/listpode omiti-los completamente, mesmo que estejam em execução. A ausência em/json/listnão é diagnóstica — confirme que o CapSolver está funcionando carregando uma página real de reCAPTCHA através do agente e observando o resultado do widget na página, não verificando a lista de destino.
Esta é a seção mais importante. Após a configuração estar completa, usar o CapSolver com o Hermes é extremamente simples.
Não mencione CAPTCHAs ou o CapSolver ao agente. Apenas dê tempo antes de enviar os formulários.
O agente não precisa saber sobre CAPTCHAs. A extensão cuida de tudo em segundo plano. Tudo o que você precisa fazer é incluir um tempo de espera nas suas instruções, para que a extensão tenha tempo de resolver o desafio antes do envio do formulário.
O modo de uma única execução do Hermes (hermes -z "...") é ideal para testar a integração. Execute isso a partir de qualquer terminal onde o CLI do hermes esteja disponível:
hermes -z 'Abra https://www.google.com/recaptcha/api2/demo. Espere 60 segundos para que a página seja totalmente renderizada. Em seguida, clique no botão etiquetado como "Enviar!" ou com o id "recaptcha-demo-submit". Após clicar, espere 5 segundos e me informe o texto visível na página.' --yolo
O que acontece em segundo plano:
g-recaptcha-responseEssa string "Verificação bem-sucedida... Hooray!" é uma mensagem de confirmação própria da Google — ela só aparece quando um token válido de reCAPTCHA é enviado com o formulário.
Envie isso a partir de qualquer canal conectado ao gateway do Hermes (Telegram, Discord, Slack, etc.):
Acesse https://example.com/login, preencha o campo de e-mail com
"me@example.com" e o campo de senha com "mypassword123",
em seguida, espere 30 segundos e clique no botão Entrar.
Me informe qual página carrega após fazer login.
O Hermes encaminhará a solicitação para seu agente, se conectará ao mesmo Chrome, preencherá o formulário, dará tempo à extensão resolver qualquer CAPTCHA na página de login, clicará em Entrar e responderá com o que a página após o login disser — tudo sem você mencionar CAPTCHAs alguma vez.
Abra https://example.com/contact e preencha o formulário de contato:
- Nome: "John Doe"
- E-mail: "john@example.com"
- Mensagem: "Olá, tenho uma pergunta sobre seus serviços."
Espere 45 segundos, depois clique em Enviar Mensagem.
Qual confirmação aparece na página?
| Tipo de CAPTCHA | Tempo de Resolução Típico | Tempo de Espera Recomendado |
|---|---|---|
| reCAPTCHA v2 (checkbox) | 5–15 segundos | 30–60 segundos |
| reCAPTCHA v2 (invisível) | 5–15 segundos | 30 segundos |
| reCAPTCHA v3 | 3–10 segundos | 20–30 segundos |
| CAPTCHA do AWS WAF | 5–15 segundos | 30 segundos |
Dica: Quando em dúvida, use 60 segundos. É melhor esperar um pouco mais do que enviar cedo demais. O tempo extra é essencialmente gratuito — sua fatura do CapSolver é por solução, não por segundo.
Aqui estão frasings comprovados que você pode usar em qualquer um dos canais do Hermes:
Evite essas frasings — elas podem confundir o agente e já foram observadas para causar recusas em alguns modelos com ajustes de segurança (notavelmente a família GLM):
Para os curiosos técnicos, aqui está a arquitetura:
Sua mensagem Gateway do Hermes
──────────────────────────────────────────────────────────
"acesse a página, ──► O agente do Hermes recebe a mensagem
espere 60s, envie" │
▼
browser_cdp / ferramentas do navegador
│ (conecta via WebSocket
│ ao ws://127.0.0.1:9222)
▼
┌──────────────────────────────────────┐
│ chrome-debug Chromium (background) │
│ │
│ ┌───────────────────────────────┐ │
│ │ Extensão CapSolver MV3 │ │
│ │ (carregada via --load-extension; │ │
│ │ requer Chrome para Testes │ │
│ │ ou Chromium — o Chrome 137+ │ │
│ │ ignora esta flag) │ │
│ │ │ │
│ │ 1. script de conteúdo detecta CAPTCHA │
│ │ 2. trabalhador de serviço chama API do CapSolver │
│ │ 3. token recebido │ │
│ │ 4. token injetado no campo do formulário │ │
│ └───────────────────────────────┘ │
└──────────────────────────────────────┘
│
▼
O agente do Hermes espera 60 segundos...
│
▼
browser_cdp: clica em Enviar
│
▼
O formulário é enviado COM token válido
│
▼
Página de confirmação após o envio
A camada de ferramentas do navegador do Hermes é construída em torno de cinco provedores intercambiáveis (Browserbase, Browser Use, Firecrawl, Camoufox, Chromium headless). Três desses são em nuvem — você não controla o binário do navegador, então não há lugar para colocar a flag --load-extension. Um (Camoufox) é baseado no Firefox. O quinto — anexar CDP — é a única forma onde um Chromium controlado pelo usuário pode ser conectado.
O equilíbrio é excelente: o Hermes permanece portável para a nuvem por padrão, mas assim que você quiser poderes de navegador (CapSolver, seu próprio bloqueador de anúncios, ferramentas MV3 personalizadas, cookies persistentes, etc.), você inicia o Chrome sozinho e aponta o Hermes para ele. Uma linha de configuração. Total controle.
--load-extension Realmente FazQuando o Chrome é iniciado com --load-extension=/caminho/para/a/extensão, ele trata esse diretório como uma extensão não compactada — o mesmo mecanismo que o modo de desenvolvedor do Chrome usa. A extensão é registrada exatamente como se você tivesse instalado a partir da Chrome Web Store. Não há diferença em termos de sandboxing, nem acesso reduzido às APIs — é uma extensão com privilégios completos.
A extensão do CapSolver então assume o restante:
assets/config.js, envia os detalhes do desafio e verifica o tokenO agente do Hermes não está envolvido — ele vê uma página normal, espera o tempo que você lhe disse e envia. A página simplesmente acontece de ter um token válido nela.
Nota de ambiente: Evite usar
--disable-background-networkingnas flags do Chrome. Ele bloqueia as solicitações XHR/fetch de saída do trabalhador de serviço do CapSolver — então a extensão nunca consegue acessar a API do CapSolver. A receita na Etapa 3 omite deliberadamente essa flag.
~/.hermes/config.yamlA única alteração necessária é adicionar cdp_url sob o bloco browser::
browser:
inactivity_timeout: 120
cdp_url: http://127.0.0.1:9222
--load-extensionO conjunto completo de flags que você deve passar para o Chrome:
| Flag | Propósito |
|---|---|
--remote-debugging-port=9222 |
Expor o CDP na porta TCP 9222 (necessário para o Hermes se conectar) |
--remote-debugging-address=127.0.0.1 |
Vincular o CDP apenas ao loopback (segurança — nunca exponha o CDP publicamente) |
--user-data-dir=$HOME/.hermes/chrome-debug |
Perfil dedicado que não entrará em conflito com seu Chrome pessoal |
--load-extension=/caminho/absoluto/para/a/extensão |
A extensão real a ser carregada |
--disable-extensions-except=/caminho/absoluto/para/a/extensão |
Para garantir — carregar apenas esta extensão |
--no-first-run --no-default-browser-check |
Pular o assistente de configuração do Chrome |
--no-sandbox |
Desativa o sandbox do Chrome. A documentação do Chromium indica que isso é "apenas para testes", mas é a solução padrão para ambientes headless Linux/Docker onde o namespace de usuário / capacidade SYS_ADMIN não está disponível para configurar o sandbox corretamente. |
--disable-dev-shm-usage |
Evitar problemas com /dev/shm em containers |
assets/config.jsA configuração mínima em ~/.hermes/capsolver-extension/assets/config.js:
export const defaultConfig = {
apiKey: 'CAP-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
useCapsolver: true,
enabledForRecaptcha: true,
enabledForRecaptchaV3: true,
// ... veja a documentação do CapSolver para o conjunto completo de alternâncias
};
hermes doctor não lista browser-cdp sob Disponibilidade de FerramentasSintoma: Após reiniciar o Hermes, a ferramenta browser-cdp está ausente na saída do hermes doctor.
Causa: O Hermes apenas registra browser-cdp quando um endpoint CDP é configurado — seja browser.cdp_url definido em config.yaml, a variável de ambiente BROWSER_CDP_URL, ou uma sessão ativa de /browser connect. A verificação é presença de configuração, não de alcançabilidade (veja tools/browser_cdp_tool.py:_browser_cdp_check). A causa mais comum de uma ferramenta browser-cdp ausente é um erro de digitação ou uma chave mal aninhada em config.yaml, não um Chrome inacessível.
Solução:
# 1. Confirme que a chave está corretamente aninhada sob "browser:" (não no nível superior)
grep -A2 '^browser:' ~/.hermes/config.yaml
# saída esperada:
# browser:
# ...
# cdp_url: http://127.0.0.1:9222
# 2. Em seguida, confirme que o Chrome está realmente ativo nesse endpoint
curl -s http://127.0.0.1:9222/json/version
# 3. Se o Chrome estiver inativo, verifique o log do chrome-debug:
tail -n 30 /tmp/chrome-debug.log # ou: journalctl --user -u chrome-debug -n 30
Sintoma: O Chrome inicia limpo, mas os CAPTCHAs nunca são resolvidos — todos os envios falham.
Causa: Você está usando o Chrome Google 137+, que ignora silenciosamente --load-extension.
Solução: Mude para o Chrome para Testes ou Chromium. Verifique seu binário:
/caminho/para/seu/chrome --versão
# Chrome para Testes: "Chromium 143.0.7499.4"
# Chrome Comercial: "Google Chrome 143.0.7499.109" ← não funcionará
Causas possíveis:
--disable-background-networking em seus argumentos do Chrome (ela mata as chamadas de API de saída da extensão)Sintoma: A primeira ação do navegador após uma reinicialização do Hermes tem timeout, mas as ações subsequentes funcionam normalmente.
Causa: O handshake CDP no início pode ocasionalmente exceder o timeout padrão do Hermes. Ações subsequentes reutilizam o WebSocket aquecido e são rápidas.
Solução: Tente novamente o comando. Se persistir, aumente browser.inactivity_timeout em config.yaml.
Sintoma: Após mudar de uma versão do Chrome para outra, o Chrome trava com erros de cache no disco.
Causa: O user-data-dir foi criado por uma versão diferente do Chrome e agora é incompatível.
Solução:
# 1. Pare o processo atual do chrome-debug (como você o supervisiona)
pkill -f "remote-debugging-port=9222"
# 2. Limpe o perfil obsoleto
rm -rf ~/.hermes/chrome-debug
# 3. Reinicie o chrome-debug (via seu gerenciador de processos, ou reinicie o script)
nohup ~/.hermes/chrome-debug.sh > /tmp/chrome-debug.log 2>&1 &
/json/listSintoma: curl http://127.0.0.1:9222/json/list retorna apenas entradas page, sem service_worker.
Causa: Os trabalhadores de serviço do Chrome MV3 entram em inatividade de forma agressiva, e em builds recentes do Chrome, o endpoint /json/list pode não mostrar nenhum deles — mesmo que estejam ativamente lidando com eventos.
Solução: Isso não é diagnóstico. Não dependa de /json/list para confirmar que o CapSolver está carregado. Em vez disso, navegue o agente até uma página real protegida por reCAPTCHA (ex: https://www.google.com/recaptcha/api2/demo) e observe se o envio do formulário é bem-sucedido. Um envio bem-sucedido é a prova de que a extensão está carregada e resolvendo desafios; a ausência de entrada na lista de destino não é um sinal de falha.
Mais tempo de espera é sempre mais seguro. O CAPTCHA geralmente é resolvido em 5–20 segundos, mas a latência da rede, desafios complexos ou tentativas podem adicionar tempo. 30–60 segundos é o ponto ideal.
Em vez de:
"Navegue até a URL, espere pelo solucionador de CAPTCHA, depois envie"
Use:
"Acesse a URL, espere cerca de um minuto, depois envie o formulário"
A frase natural funciona melhor com o agente e tende a ser mais amigável com modelos ajustados para segurança — palavras adversariais em torno de CAPTCHAs foram observadas para causar recusas em alguns modelos da classe GLM.
Cada resolução de CAPTCHA custa créditos. Verifique seu saldo regularmente em capsolver.com/dashboard para evitar interrupções.
Nunca aponte --user-data-dir para seu perfil real do Chrome. Use ~/.hermes/chrome-debug (que o comando /browser connect integrado ao Hermes também usa por padrão). Dessa forma, o navegador do agente fica totalmente isolado do seu navegação pessoal.
--remote-debugging-address=127.0.0.1 é não opcional em produção. O Protocolo de Ferramentas de Desenvolvimento do Chrome fornece controle total do navegador a quem conseguir acessar a porta. Nunca exponha a porta 9222 para uma rede pública.
Xvfb em servidores sem telaExtensões do Chrome exigem um contexto de tela, mesmo que você não queira ver o navegador. Em um servidor Linux sem tela física, execute uma tela virtual:
# Instale o Xvfb (Ubuntu/Debian)
sudo apt-get install xvfb
# Inicie uma tela virtual
Xvfb :99 -screen 0 1920x1080x24 &
# Informe ao Chrome que ele deve usá-la (o launcher chrome-debug.sh já define DISPLAY=:99)
export DISPLAY=:99
Se você estiver usando o launcher chrome-debug.sh da Etapa 3, a linha export DISPLAY=:99 já está definida — certifique-se apenas de que Xvfb :99 esteja rodando no host.
Um chrome & solto morre quando o shell pai termina, quando o Chrome crasha ou quando o servidor reinicia. Envolva a execução com chrome-debug.sh (Etapa 3) e monitore-o com qualquer gerenciador que já use para o restante da sua stack — systemd, supervisord, runit, Docker, etc. A integração é independente do gerenciador de processos; escolha aquele que já roda no servidor.
Como o modelo nunca vê o CAPTCHA — a extensão o resolve de forma invisível — você não precisa de um modelo de ponta para trabalhos com muitos CAPTCHAs. Um modelo barato, com funcionalidades básicas, é suficiente (ex.: defina provider: openrouter e default: z-ai/glm-4.6 no config.yaml). Todo o inteligência está na extensão; o modelo só precisa navegar, digitar e clicar.
A integração Hermes + CapSolver representa uma abordagem fundamentalmente nova para resolução de CAPTCHAs em fluxos de trabalho de agentes. Em vez de escrever código para detectar CAPTCHAs, chamar APIs e injetar tokens, você simplesmente:
--load-extension=/caminho/absoluto/para/capsolver-extension e --remote-debugging-port=9222cdp_url ao bloco browser: em ~/.hermes/config.yaml:
browser:
cdp_url: http://127.0.0.1:9222
cdp_url no nível superior é ignorado silenciosamente)A extensão do CapSolver cuida do restante — detectando CAPTCHAs, resolvendo-os via API do CapSolver e injetando tokens na página. Seu agente nunca precisa saber sobre CAPTCHAs de jeito nenhum.
Este é o aspecto da resolução de CAPTCHA quando você tem um agente de IA autônomo: invisível, automático e sem código.
Pronto para começar? Registre-se no CapSolver e use o código de bônus
hermepara obter bônus na sua primeira recarga!

Não. De fato, você deve evitar mencionar CAPTCHAs ou o CapSolver em suas mensagens. A extensão funciona de forma invisível em segundo plano. Apenas inclua um tempo de espera em suas instruções (ex.: "espere 60 segundos, depois envie") para dar tempo à extensão resolver qualquer CAPTCHA na página.
O Chrome 137+ (lançado no meio de 2025) removeu o suporte ao sinalizador de linha de comando --load-extension nas versões com marca. Isso significa que extensões do Chrome não podem ser carregadas em sessões automatizadas. Você precisa do Chrome para Testes ou do Chromium independente, que ainda suportam esse sinalizador.
Não — provedores de nuvem executam o navegador em infraestrutura de terceiros, então você não pode carregar extensões arbitrárias na sessão. O padrão CDP na esteira é a única forma de combinar o Hermes com uma extensão do Chrome. (Assim que browser.cdp_url for definido no config.yaml, o Hermes roteia o tráfego do navegador pelo Chrome local e os provedores de nuvem ficam inativos até você remover a linha.)
Sim — qualquer navegador baseado em Chromium que ainda suporte --load-extension funciona. Você pode usar:
npx playwright install)A receita de integração é a mesma: aponte --remote-debugging-port=9222 --load-extension=/caminho/para/capsolver-extension para o binário que preferir.
O que não funciona:
--load-extensionSim — o Camoufox é um dos cinco provedores de navegador integrados ao Hermes e é uma excelente opção de stealth com Firefox para tarefas que não envolvam uma extensão do Chrome. O problema é que o Camoufox é baseado em Firefox e a extensão do CapSolver foi construída no formato MV3 do Chrome — então os dois não podem rodar juntos em uma mesma sessão.
Boa notícia: com o Hermes, você não precisa escolher permanentemente. A configuração browser.cdp_url no ~/.hermes/config.yaml é uma única opção — aponte-a para o Chrome com CapSolver quando precisar de resolução de CAPTCHA, e para o Camoufox quando precisar de stealth do Firefox. Uma configuração típica mantém ambos rodando:
# Linha ativa: mude entre perfis comentando/eliminando o comentário
browser:
cdp_url: http://127.0.0.1:9222 # Chrome com CapSolver (este guia)
# cdp_url: http://127.0.0.1:9333 # Ponto de conexão do Camoufox
Em seguida, reinicie o Hermes (hermes gateway run, ou acione uma reinicialização através do que supervisiona o gateway no seu servidor) e a troca ocorre em segundos. O mesmo Hermes, os mesmos canais, as mesmas habilidades — navegador diferente por carga de trabalho.
/browser connect do Hermes funciona com esta configuração?Sim. O comando slash /browser connect integrado ao Hermes (no TUI interativo hermes) aponta para o mesmo diretório de dados de usuário padrão que usamos (~/.hermes/chrome-debug) e para a mesma porta (9222). Assim que você configurar o sidecar chrome-debug, pode usar /browser connect interativamente dentro do Hermes, ou pode deixar browser.cdp_url no config.yaml para conexão permanente — ambos funcionam contra o mesmo Chrome.
A integração é totalmente independente do canal. Assim que browser.cdp_url for definido no config.yaml, todas as ações do navegador — se vierem de hermes -z na CLI, do TUI interativo hermes, ou de uma mensagem do Telegram, Discord, Slack, WhatsApp, Signal ou e-mail — serão roteadas pelo Chrome com CapSolver. A extensão resolve os CAPTCHAs da mesma forma em todos os casos.
Use a página de demonstração apenas como um teste rápido. Na FAQ oficial do reCAPTCHA do Google, eles recomendam criar chaves de site dedicadas para testes automatizados em vez de depender da página de demonstração pública em pipelines de produção.
A extensão do CapSolver resolve automaticamente reCAPTCHA v2 (caixa de seleção e invisível), reCAPTCHA v3, Cloudflare, AWS WAF CAPTCHA e outros widgets amplamente utilizados. O script de conteúdo detecta o tipo de CAPTCHA na página e o resolve de acordo — nenhuma configuração por tipo é necessária por sua parte. (Nota: Cloudflare Turnstile e Cloudflare 5-second Challenge não são resolvidos pela extensão do navegador; estão disponíveis apenas através da API do CapSolver e estão fora do escopo deste guia.)
O CapSolver oferece preços competitivos com base no tipo de CAPTCHA e volume. Visite capsolver.com para os preços atuais.
O Hermes Agent é de código aberto (github.com/NousResearch/hermes-agent) e gratuito para rodar em hardware próprio. Você precisará de chaves de API para o provedor de modelo de IA de sua escolha (OpenRouter é recomendado — o Hermes suporta mais de 200 modelos através dele) e, para resolução de CAPTCHA, uma conta no CapSolver com créditos.
Para a maioria dos CAPTCHAs, 30–60 segundos são suficientes. O tempo real de resolução é normalmente de 5–20 segundos, mas adicionar um buffer extra garante confiabilidade. Quando em dúvida, use 60 segundos.
Sim. Você precisará do Xvfb (X Virtual Framebuffer) para a tela, já que extensões do Chrome exigem contexto de tela. Execute Xvfb :99 -screen 0 1920x1080x24 & no host e certifique-se de que DISPLAY=:99 esteja exportado no launcher chrome-debug.sh (o launcher da Etapa 3 já o faz). Também mantenha --no-sandbox nos argumentos do Chrome, já que a maioria dos kernels de servidor não concede as capacidades que o sandbox do Chrome exige.
Tecnicamente sim, mas você terá que gerenciar a concorrência de abas/sessões sozinho. Para a maioria das cargas de trabalho, uma única instância do Hermes ↔ uma única instância do chrome-debug é a configuração mais limpa. Se você precisar de paralelismo real, execute múltiplos sidecars do chrome-debug em portas diferentes (9222, 9223, …) e aponte cada Hermes para o seu próprio.
Sim. As Skills do Hermes são memórias procedurais — sequências de passos que o agente aprendeu. Uma skill que envolva navegação em sites com CAPTCHA beneficiará automaticamente da integração com o CapSolver da mesma forma que uma mensagem ad-hoc, pois o próprio ferramenta de navegador é que está sendo aprimorado. Nenhuma alteração na skill é necessária.
Um guia orientado para desenvolvedores sobre SDKs nativos de solucionadores de CAPTCHA para agentes de IA, com limites de wrapper, exemplos oficiais, verificações de sessão e tratamento de falhas.

Uma lista de verificação prática para comprador e engenharia para escolher um serviço de resolução de CAPTCHA para automação de agentes em fluxos de trabalho controlados e documentados.
