Hermes encontra o Perplexity Search: uma API key turbina a busca na web e a extração de páginas


Alguma vez a busca na web do seu agente deixou você na mão? Você pergunta “qual é a versão estável mais recente deste framework em 2026” e ele devolve tutoriais de três anos atrás — ou o canal gratuito de busca estoura o limite de requisições no meio da tarefa e só resta tentar de novo. Quando isso acontece, o primeiro impulso da maioria é trocar de modelo, mas a alavanca mais inteligente é o backend de busca — as ferramentas web do Hermes são plugáveis e você escolhe o fornecedor separadamente. Em 4 de setembro, a Search API da Perplexity chegou ao repositório oficial, juntando-se à Exa, Parallel, Tavily, Firecrawl e Keenable como mais um backend com chave própria: com uma única API key, tanto web_search quanto web_extract podem rodar em um motor novo. Este post explica por que trocar, como configurar e a única pegadinha que costuma enganar as pessoas.

Primeiro, o modelo mental: duas ferramentas, um backend intercambiável

O Hermes divide o acesso à web em duas ferramentas:

  • web_search — recebe sua pergunta, encontra páginas candidatas e devolve títulos, URLs e descrições curtas;
  • web_extract — recebe URLs concretas, lê e destila o conteúdo da página.

Qual fornecedor atende cada ferramenta é controlado por web.search_backend e web.extract_backend (ou por web.backend, que define os dois de uma vez). Se você nunca configurou um backend, está coberto: o Hermes traz um mecanismo gratuito de rotação sem configuração que funciona de imediato — veja 5 canais de busca gratuitos: busca na web sem drama de API key. Este post trata do caminho pago: quando a qualidade ou a estabilidade dos canais gratuitos não basta, aponte o backend para uma API de busca comercial em que você confia.

O que é a Perplexity e por que vale a pena experimentar

A Perplexity é o produto de busca com IA que muita gente já usa diariamente, construído sobre o próprio índice web. Esse índice agora está aberto ao Hermes por meio da Search API:

  • Resultados ranqueados e com data do índice próprio da Perplexity — para consultas do tipo “versão mais recente” ou “acontecimentos recentes”, a chance de empurrar páginas velhas para o topo é muito menor do que nos canais gratuitos baseados em scraping;
  • As requisições de web_search usam search_context_size: low, mantendo o snippet de cada resultado no tamanho de uma descrição — suficiente para o modelo decidir se vale abrir a página, sem entupir sua janela de contexto com kilobytes de texto de página;
  • web_extract usa o mesmo endpoint de “snippets relevantes à consulta” que o CLI oficial pplx — você recebe os trechos de cada página que importam para a consulta, não a página inteira (mais sobre isso abaixo — é a pegadinha fácil de deixar passar).

Uma ressalva honesta: a Perplexity não tem camada gratuita anônima. É um fornecedor pago, cobrado por requisição, então não entra no anel de rotação gratuita sem configuração do Hermes — se você quer busca totalmente gratuita, fique com os canais do post linkado acima; se quer qualidade confiável, esta é a opção a considerar.

Configuração em três passos

Passo 1 — consiga uma key. Gere uma em https://www.perplexity.ai/account/api.

Passo 2 — coloque a key no seu ambiente. Adicione uma linha ao ~/.hermes/.env:

PERPLEXITY_API_KEY=pplx-your-key

Ou defina com um comando (mesmo efeito):

hermes config set env.PERPLEXITY_API_KEY pplx-your-key

Se sua rede exige um proxy, ou você quer apontar para um gateway self-hosted, existe um PERPLEXITY_BASE_URL opcional que substitui o padrão https://api.perplexity.ai.

Passo 3 — troque o backend para a Perplexity. Qualquer um dos dois jeitos funciona:

# Option A: pick Perplexity in the interactive selector
hermes tools

# Option B: write the config directly
hermes config set web.backend perplexity

Para um controle mais fino, você pode trocar apenas uma capacidade — por exemplo, buscar via Perplexity mantendo a extração de página inteira na Firecrawl:

hermes config set web.search_backend perplexity
hermes config set web.extract_backend firecrawl

web.backend, web.search_backend e web.extract_backend são campos reais da seção de config web; confira com hermes config get web.backend ou hermes status. Um detalhe de conveniência: se você só definir a key e nunca escolher um backend explicitamente, a estratégia “provedores pagos primeiro” do Hermes adota a Perplexity automaticamente — ela fica depois da Tavily e antes da Exa na ordem de preferência; por outro lado, se você já tiver outra key paga configurada, sua configuração atual não é deslocada.

O que acontece por baixo dos panos

A implementação (plugins/web/perplexity/provider.py) é direta:

  • web_search chama POST https://api.perplexity.ai/search e mapeia o snippet de cada resultado para o campo de descrição; uma única chamada devolve no máximo 20 resultados (o teto rígido da Perplexity);
  • web_extract chama POST /sdk/content/snippets — a mesma rota por trás do comando oficial pplx content snippets. Um detalhe de design que vale saber: web_extract não carrega consulta, então o Hermes deriva uma consulta de relevância a partir das palavras no caminho da URL — buscar example.com/docs/bloom-filter na prática consulta “bloom filter”;
  • Cada requisição tem timeout de 60 segundos; quando uma página não produz snippet, essa URL volta com um campo error em vez de derrubar a chamada inteira (então um HTTP 200 não significa que todas as páginas deram certo).

A pegadinha: snippets não são a página inteira

A extração da Perplexity devolve os trechos relevantes à consulta, com cortes marcados por reticências (…), e não um despejo verbatim da página inteira. Se você precisa do texto completo — digamos, puxar um documento inteiro para o modelo resumir — aponte web.extract_backend de volta para a Firecrawl, a Exa ou a Parallel, que suportam extração de página inteira. Os snippets da Perplexity brilham quando você quer avaliar rápido sobre o que é uma página e se ela merece uma leitura mais profunda; combine as duas abordagens e você fica com o melhor dos dois mundos.

Como obter

O backend foi mesclado ao repositório oficial em 4 de setembro (PR #102055, commit f1ccf436a2) — depois da última release, a v0.21.0, publicada em 31 de agosto, então ele ainda não está em nenhuma release. Hoje vive apenas na main; uma release estável o incorpora na próxima. Para experimentar agora, rode a partir da branch main; caso contrário, espere o hermes update avisar sobre uma nova versão (você pode acompanhar a linha do tempo nas notas da release v0.21.0).

Resumo

  • Se a qualidade da busca decepciona, troque o backend antes de trocar o modelo;
  • Uma única key da Perplexity acende tanto web_search (resultados ranqueados e com data) quanto web_extract (snippets relevantes à consulta) — mas é paga e não faz parte do anel de rotação gratuita;
  • Configure com PERPLEXITY_API_KEY, troque com web.backend e divida com web.search_backend / web.extract_backend;
  • Para páginas integrais verbatim, mantenha a extração na Firecrawl / Exa / Parallel — a Perplexity devolve apenas os trechos relevantes;
  • Atualmente só na main; a próxima release oficializa.

Também quer manter sob controle o custo de contexto das pesquisas na web? Veja cache de resultados de busca na web para consultas repetidas pararem de queimar tokens e a referência do comando hermes config.