Documentação oficial desta página · v0.20.6
Mistura de Agentes
Mistura de Agentes
A Mistura de Agentes (Mixture of Agents, ou MoA) é um provedor de modelos virtual. Cada preset de MoA nomeado aparece como um modelo selecionável dentro do provedor moa.
Quando você seleciona um preset de MoA, o agregador do preset é o modelo que atua. É ele que escreve a resposta do assistente e emite as chamadas de ferramenta. Os modelos de referência rodam antes e fornecem análise para o agregador usar.
Use MoA quando uma tarefa difícil se beneficia de várias perspectivas de modelo mas ainda precisa do laço de agente normal do Hermes: chamadas de ferramenta, iterações de acompanhamento, interrupções, persistência de transcrição e o mesmo contexto de sessão de qualquer outra mensagem.
Selecione um preset de MoA como seu modelo
Você pode selecionar um preset pelas superfícies normais de escolha de modelo:
/model default --provider moa
/model review --provider moa
Presets de MoA são selecionáveis em todas as superfícies do Hermes, porque MoA é um provedor normal no sistema de modelos:
/modelna CLI, no gateway e na TUI —/model <preset> --provider moa, ou/model --provider moapara o preset padrão. Um/model <preset>sem mais nada também funciona quando o nome corresponde exatamente a um preset configurado.hermes modele o seletor de modelo do painel — aparece uma linha de provedorMixture of Agentscom os nomes dos seus presets como modelos.- Aplicativo de desktop — o menu de modelos mostra uma seção
MoA presets; escolher um deles (MoA: <preset>) troca o modelo ativo para esse preset. O painel de configurações do desktop também cria e edita presets.
Ou seja, os presets configurados aparecem em todo lugar onde você escolheria qualquer outro modelo.
Atalho por comando de barra
O /moa é açúcar de conveniência para uma única vez. Ele roda um único prompt pelo preset de MoA padrão e depois restaura o modelo em que você estava:
/moa projete e implemente um plano de migração para este cluster de testes instáveis
O Hermes troca temporariamente para o preset de MoA padrão naquele único turno, envia o prompt e, depois, restaura o seu modelo anterior. O argumento inteiro é o prompt — o /moa não o interpreta mais como nome de preset.
/moa
Um /moa sozinho (sem prompt) apenas imprime as instruções de uso.
Para trocar para um preset de MoA pelo resto da sessão, selecione-o no seletor de modelo — presets de MoA aparecem sob um provedor Mixture of Agents em toda superfície de seleção de modelo (veja acima). O /moa deliberadamente não é uma troca de modelo, para que um prompt comum nunca mude o seu modelo por acidente.
Como funciona no laço do agente
Para cada chamada ao modelo principal quando o provedor moa está selecionado, o Hermes:
- resolve o preset selecionado pelo nome;
- roda os modelos de referência configurados sem schemas de ferramenta (eles recebem só o texto de usuário/assistente da conversa — não o prompt de sistema do Hermes nem a transcrição de chamadas de ferramenta — para que as chamadas de referência fiquem baratas e evitem rejeições de provedores rigorosos);
- anexa as saídas de referência como contexto privado para o agregador;
- chama o agregador configurado com o schema normal de ferramentas do Hermes;
- trata a resposta do agregador como a resposta real do modelo;
- se o agregador chama ferramentas, o Hermes executa essas ferramentas normalmente;
- na iteração seguinte do modelo, o mesmo processo de MoA roda de novo sobre a conversa atualizada, incluindo os resultados das ferramentas.
Como MoA é selecionado pelo sistema normal de modelos, ele se combina automaticamente com /goal, sessões de gateway, sessões de TUI e o chat do desktop.
Configure os presets
Você pode configurar presets de MoA nomeados a partir de:
- Painel → Models → Model Settings → Mixture of Agents
- Aplicativo de desktop → Settings → Model → Mixture of Agents
hermes moa configure [nome]config.yaml
A configuração guarda pares explícitos de provedor/modelo, então você pode misturar provedores e usar vários modelos do mesmo provedor:
moa:
default_preset: default
presets:
default:
reference_models:
- provider: openai-codex
model: gpt-5.5
- provider: openrouter
model: deepseek/deepseek-v4-pro
aggregator:
provider: openrouter
model: anthropic/claude-opus-4.8
# Opcional: fixe as temperaturas de amostragem. Quando omitidas (o padrão),
# a temperatura NÃO é enviada e cada modelo usa o padrão do seu provedor —
# o mesmo comportamento de um agente Hermes de modelo único.
# reference_temperature: 0.6
# aggregator_temperature: 0.4
max_tokens: 4096
enabled: true
Preset padrão:
- referência:
openai-codex:gpt-5.5 - referência:
openrouter:deepseek/deepseek-v4-pro - agregador / modelo que atua:
openrouter:anthropic/claude-opus-4.8
Ajustar a velocidade dos consultores com reference_max_tokens
A cada turno, o MoA roda os modelos de referência (os consultores) em paralelo e
depois o agregador atua. A geração dos consultores é a latência dominante do
turno — o tempo total do turno tem forte correlação com quantos tokens os
consultores emitem, porque o turno espera o consultor mais lento terminar de
escrever. Por padrão, os consultores são ilimitados
(reference_max_tokens sem valor), então podem escrever conselhos longos, do
tamanho de um ensaio.
Defina reference_max_tokens num preset para limitar a saída dos consultores e
receber conselhos concisos. O agregador só precisa da essência do julgamento de
cada consultor, então um limite (por exemplo, 600) reduz de forma mensurável o
tempo total do turno com pouco impacto na qualidade. O limite vale só para os
consultores — a saída do agregador que atua (a resposta visível ao usuário)
nunca é limitada.
moa:
presets:
fast:
reference_models:
- provider: openrouter
model: anthropic/claude-opus-4.8
- provider: openrouter
model: openai/gpt-5.5
aggregator:
provider: openrouter
model: anthropic/claude-opus-4.8
reference_max_tokens: 600 # conselho conciso → turnos mais rápidos
Deixe sem valor (ou 0/vazio) para manter o comportamento ilimitado anterior.
Cadência dos consultores com fanout
Por padrão, os consultores rodam uma vez por turno do usuário
(fanout: user_turn) — eles sintetizam conselhos no nível do plano na primeira
mensagem do turno e, depois, o agregador que atua percorre sozinho o resto do
laço de ferramentas. Essa é a cadência mais barata: o custo dos consultores não
se multiplica com o número de chamadas de ferramenta do turno. Duas cadências
alternativas trocam custo por conselho mais atual:
fanout: per_iteration— os consultores rodam de novo em toda iteração de ferramenta, então o conselho sempre acompanha os resultados mais recentes — ao custo de multiplicar a latência e o gasto dos consultores pelo número de chamadas de ferramenta do turno.fanout: every_n:3— o meio do caminho: os consultores rodam na primeira iteração de cada turno do usuário e depois a cada 3ª iteração de ferramenta (qualquerN >= 2funciona). As iterações intermediárias reusam a orientação em cache da última rodada de consultores, então o agregador continua recebendo conselho em cada passo — só que atualizado a cada N passos em vez de a cada passo. O contador é zerado a cada nova mensagem do usuário, então todo turno começa com conselho novo. A forma de mapafanout: {mode: every_n, n: 3}também é aceita e normalizada para a forma em texto.
moa:
presets:
fresh:
reference_models:
- provider: openrouter
model: anthropic/claude-opus-4.8
aggregator:
provider: openrouter
model: openai/gpt-5.5
fanout: per_iteration # consultores se atualizam em toda iteração de ferramenta
Valores desconhecidos ou malformados voltam para user_turn.
Antes de julho de 2026, a cadência padrão era per_iteration. Agora o padrão é
user_turn — a cadência mais barata e de menor impacto — até que benchmarks por
modo justifiquem um padrão mais caro. Presets que queiram o conselho a cada
passo de volta definem fanout: per_iteration explicitamente.
Filtro de privacidade para as saídas dos consultores
As saídas dos consultores podem repetir dados sensíveis da conversa — e-mails,
números de telefone formatados, chaves de API, JWTs — nos blocos de referência
exibidos na interface, nos traços de MoA salvos e no prompt do agregador. O
moa.privacy_filter (desligado por padrão) censura essas superfícies:
moa:
privacy_filter: display # ou: full
display— censura apenas as superfícies visíveis ao usuário: os blocos de referência rotulados que aparecem na interface e os registros escritos porsave_traces. O agregador continua recebendo o texto cru dos consultores, então a qualidade da resposta não é afetada.full— censura também o texto dos consultores injetado no prompt do agregador (e a entrada de síntese do/moade uma única vez).
Formatos de credencial (prefixos de chave de API, JWTs, chaves privadas, strings
de conexão de banco) são mascarados pelo redator central de segredos do Hermes;
o filtro do MoA acrescenta a censura de e-mails e de números de telefone
claramente formatados. Os padrões são deliberadamente conservadores para
conselhos de revisão de código: sequências soltas de dígitos, números de linha,
marcas de tempo, SHAs de git e endereços IP nunca são tocados — só casam
formatos de telefone delimitados, como (555) 123-4567 ou 555-123-4567.
Esforço de raciocínio por posição
As posições de referência e de agregador também podem definir
reasoning_effort. Use isso quando quiser que o mesmo modelo contribua em
profundidades diferentes, ou quando o agregador deve pensar mais que as
referências consultivas. Os valores válidos são os mesmos dos controles normais
de raciocínio do Hermes: none, minimal, low, medium, high, xhigh,
max e ultra.
moa:
presets:
deep_review:
reference_models:
- provider: openai-codex
model: gpt-5.6-sol
reasoning_effort: low
- provider: openai-codex
model: gpt-5.6-sol
reasoning_effort: xhigh
- provider: xai-oauth
model: grok-4.5
aggregator:
provider: openai-codex
model: gpt-5.6-sol
reasoning_effort: high
Omita reasoning_effort para usar o padrão do provedor ou do Hermes naquela posição.
Gerenciar presets no terminal
hermes moa list
hermes moa configure # atualiza o preset padrão
hermes moa configure review # cria ou atualiza um preset nomeado
hermes moa delete review
Benchmarks
No HermesBench, um preset de MoA com dois modelos — claude-opus-4.8 agregando sobre uma referência gpt-5.5 — pontua mais que cada um dos modelos rodando sozinho:
| Modelo | Pontuação no HermesBench |
|---|---|
| Agregador Opus (opus-4.8 + referência gpt-5.5) — MoA | 0,8202 |
anthropic/claude-opus-4.8 | 0,7607 |
openai/gpt-5.5 | 0,7412 |
A configuração de MoA supera o seu componente mais forte (opus-4.8) em cerca de 6 pontos, confirmando que agregar uma segunda perspectiva eleva a qualidade em tarefas difíceis, em vez de só tirar a média das duas.
Cache de prompt
O MoA foi construído para que o cache de prompt da conversa principal nunca seja quebrado. Selecionar um preset de MoA é uma seleção normal de modelo: não altera o contexto passado, não troca conjuntos de ferramentas nem reconstrói o prompt de sistema no meio da conversa. O seu histórico de conversa, o prompt de sistema e o schema de ferramentas continuam estáveis byte a byte, então o prefixo em cache do qual todo outro modelo depende é preservado exatamente como seria com um modelo comum. Entrar ou sair de um preset de MoA custa a mesma invalidação de cache que qualquer outra troca de /model — nada além disso.
Os dois tipos internos de chamada usam cache normalmente:
- Modelos de referência recebem uma visão enxuta e determinística da conversa (sem o prompt de sistema e sem a transcrição de ferramentas — veja o laço acima). Como essa visão é uma função estável do histórico estável, o prefixo do prompt de um modelo de referência se repete entre iterações e vai para o cache normalmente. As referências são chamadas consultivas curtas, sem ferramentas.
- O agregador é o modelo que atua. As saídas de referência são anexadas ao fim do último turno do usuário, como orientação privada. Como esse texto fica na cauda — abaixo de todo o prefixo estável (prompt de sistema + histórico anterior) — ele não invalida nenhum prefixo em cache: o agregador acerta o cache em tudo o que está acima da injeção, e só a cauda recém-anexada é nova. É exatamente assim que todo turno normal se comporta, em que cada nova mensagem do usuário também é uma cauda de tokens fora do cache.
Portanto, o MoA não sacrifica o cache de prompt em nenhum dos dois tipos de chamada. O seu único custo real são as chamadas extras de referência por iteração — você paga por várias perspectivas de modelo, não por caches quebrados. O prefixo de conversa de vida longa, compartilhado com o resto do Hermes, fica totalmente intacto.
Observações
- O MoA não aparece mais na lista de
hermes tools; não existe um conjunto de ferramentasmoapara habilitar. - Definir
enabled: falsenum preset desativa o leque de referências daquele preset: o agregador atua sozinho, exatamente como se você o tivesse selecionado como modelo comum. Esse é o interruptor por preset exposto no painel e nas configurações do desktop. - O agregador de um preset não pode ser outro preset de MoA. Árvores recursivas de MoA são bloqueadas de propósito.
- Falhas de credencial em um dos modelos de referência não abortam o turno. O Hermes inclui a falha no contexto de referência e segue com os modelos que responderam.
- O MoA aumenta a quantidade de chamadas ao modelo. Uma única iteração de modelo pode envolver várias chamadas de referência mais a chamada do agregador.