Pular para o conteúdo principal

Documentação oficial desta página · v0.20.6

Roteamento de provedores

Usando o OpenRouter ou o Nous Portal como provedor de LLM, o Hermes Agent oferece roteamento de provedores — controle fino de quais provedores por baixo atendem suas requisições e em que ordem.

O OpenRouter distribui as requisições entre muitos provedores (Anthropic, Google, AWS Bedrock, Together AI e outros). O roteamento deixa você otimizar por custo, velocidade ou qualidade, ou impor exigências específicas.

dica

O tráfego que passa pelo Nous Portal respeita as mesmas preferências — e assinantes do Portal têm 10% de desconto nos provedores cobrados por token.

Configuração​

Acrescente uma seção provider_routing ao ~/.hermes/config.yaml:

provider_routing:
sort: "price" # como ordenar os provedores
only: [] # lista de permissão: só usa estes
ignore: [] # lista de bloqueio: nunca usa estes
order: [] # ordem explícita de prioridade
require_parameters: false # só usa provedores que suportam todos os parâmetros
data_collection: null # controla a coleta de dados ("allow" ou "deny")
informação

O roteamento só vale com OpenRouter ou Nous Portal. Não tem efeito em conexões diretas com um provedor (ligando na API da Anthropic, por exemplo).

Opções​

sort​

Controla como o OpenRouter ordena os provedores disponíveis para a sua requisição.

ValorDescrição
"price"O mais barato primeiro
"throughput"O de mais tokens por segundo primeiro
"latency"O de menor tempo até o primeiro token primeiro
provider_routing:
sort: "price"

only​

Lista de permissão com os identificadores dos provedores. Quando definida, só eles são usados; o resto é excluído. Use o identificador em minúsculas que o OpenRouter mostra.

provider_routing:
only:
- "anthropic"
- "google"

ignore​

Lista de bloqueio. Estes provedores nunca são usados, mesmo se forem o mais barato ou o mais rápido.

provider_routing:
ignore:
- "together"
- "deepinfra"

order​

Ordem explícita de prioridade. Os primeiros da lista são preferidos. Os não listados servem de reserva.

provider_routing:
order:
- "anthropic"
- "google"
- "amazon-bedrock"

require_parameters​

Com true, o OpenRouter só roteia para provedores que suportam todos os parâmetros da sua requisição (como temperature, top_p, tools). Isso evita que parâmetros sejam descartados em silêncio.

provider_routing:
require_parameters: true

data_collection​

Controla se os provedores podem usar seus prompts para treino. As opções são "allow" e "deny".

provider_routing:
data_collection: "deny"

Exemplos práticos​

Otimizar por custo​

Vai para o mais barato disponível. Bom para volume alto e desenvolvimento:

provider_routing:
sort: "price"

Otimizar por resposta rápida​

Prioriza provedores de baixa latência, para uso interativo:

provider_routing:
sort: "latency"

Otimizar por vazão​

Melhor para geração de texto longo, onde os tokens por segundo pesam:

provider_routing:
sort: "throughput"

Travar em provedores específicos​

Garante que todas as requisições passem por um provedor, por consistência:

provider_routing:
only:
- "anthropic"

Evitar provedores específicos​

Exclui provedores que você não quer usar (por privacidade de dados, por exemplo):

provider_routing:
ignore:
- "together"
- "lepton"
data_collection: "deny"

Ordem preferida com reservas​

Tenta os preferidos primeiro e cai nos outros se não houver:

provider_routing:
order:
- "anthropic"
- "google"
require_parameters: true

Como funciona​

As preferências são passadas ao OpenRouter ou ao Nous Portal nas requisições de conversa e nos resumos de limite de iteração, pelo campo extra_body.provider. (O extra_body é o argumento do SDK Python da OpenAI; ele vira o objeto provider no topo da requisição JSON.) Tarefas auxiliares, como compressão e geração de título, são configuradas à parte, em auxiliary.<tarefa>.extra_body.

  • Modo CLI — configurado em ~/.hermes/config.yaml, carregado na inicialização
  • Modo gateway — mesmo arquivo, carregado quando o gateway sobe

A configuração é lida do config.yaml e passada como parâmetro na criação do AIAgent:

providers_allowed ← de provider_routing.only
providers_ignored ← de provider_routing.ignore
providers_order ← de provider_routing.order
provider_sort ← de provider_routing.sort
provider_require_parameters ← de provider_routing.require_parameters
provider_data_collection ← de provider_routing.data_collection
dica

Dá para combinar várias opções. Por exemplo, ordenar por preço, excluir certos provedores e exigir suporte a parâmetros:

provider_routing:
sort: "price"
ignore: ["together"]
require_parameters: true
data_collection: "deny"

Comportamento padrão​

Sem a seção provider_routing (o padrão), o agregador usa a lógica de roteamento dele, que costuma equilibrar custo e disponibilidade sozinho.

Roteamento ou provedores de reserva?

O roteamento controla quais provedores por baixo do OpenRouter ou do Nous Portal atendem suas requisições. Para troca automática por um provedor totalmente diferente quando o modelo principal falha, veja Provedores de Reserva.