
Harness Router
Protocol Lattice · Programação · Produtividade
Harness Router escolhe a próxima ferramenta dentro do harness de um agente que você já usa, com decisões em cache, roteamento Jev e MCTS opcional. A execução continua no seu loop.

Sobre Harness Router
What Is Harness Router
Harness Router é um pacote Python de código aberto para o harness de agentes de IA. Ele toma uma decisão dentro do loop: qual ferramenta deve rodar agora. Ele recebe o objetivo, a observação atual, a última ação quando existe e a lista de ferramentas disponíveis. Devolve o nome de uma ferramenta, uma pontuação de confiança e um indicador que diz se a escolha deve voltar para o planejador.
Essa divisão importa. O harness já monta argumentos, confere permissões, pede aprovação, repete tentativas e executa a chamada. Harness Router não mexe em nada disso. Ele fica num ponto do ciclo que o anfitrião expõe, como um hook de prompt ou um retorno de resultado, e dá uma indicação no momento em que o próximo passo é escolhido. A Protocol Lattice publica o projeto sob licença MIT, e a versão atual está marcada como alfa.
É uma peça pequena para um problema específico. A seleção de ferramentas do agente fica mais difícil conforme o catálogo cresce, porque várias ferramentas parecem razoáveis diante da mesma observação. Um roteador que aponta uma ferramenta com confiança dá ao harness algo concreto para aceitar ou recusar. Ele não escreve o seu código, não roda os seus testes e não decide o que significa terminar uma tarefa.
Vale ler o benchmark do próprio projeto antes de instalar. Na integração com o Codex que eles testaram, o consumo de tokens e o tempo de execução aumentaram, e a maior parte das decisões caiu no planejador. Roteamento não é ganho de velocidade automático, e os autores dizem isso com todas as letras.
Getting Started
- Instale a CLI com uv em Python 3.11 ou superior:
uv tool install --force --with 'mcp>=2,<3' 'git+https://github.com/Protocol-Lattice/harness-router.git@main'. O pacote expõehar,harness-routereharness-router-mcp. - Exporte
OPENROUTER_API_KEYno ambiente que o processo do harness vai usar. O modelo padrão é otypesafe/jev-1.13, e sem a chave a chamada devolve um fallback para o planejador. - Rode o instalador de hooks do provedor escolhido e copie os dois adaptadores que ele deixa de fora. Codex e Claude Code precisam de
pre_decision.pyestop.pyna pasta de hooks, e o instalador faz backup dos ajustes que altera. - Abra uma sessão nova. O hook de início descobre o catálogo, os retornos de prompt e de resultado calculam a escolha com antecedência, e o hook de validação confere a decisão guardada sem fazer outra chamada ao modelo.
Informações do produto
Uma visão rápida dos preços, das plataformas compatíveis e do desempenho de Harness Router.
Ideal para
Os usuários, tarefas e cenários em que esta ferramenta se encaixa melhor.
Usuários
- Quem programa com Codex ou Claude Code em tarefas longas
- Times cujo registro de ferramentas MCP passou de duas dúzias
- Quem monta o próprio loop de agente
Tarefas
- Escolher entre ferramentas de leitura parecidas
- Retomar o rumo depois de um teste que falhou
- Comparar o roteamento com um planejador comum
Cenários
- Uma sessão de depuração com estados repetidos
- Um catálogo de ferramentas que não para de crescer
- Um primeiro experimento com roteamento de ferramentas de IA
Principais recursos
Uma decisão da próxima ferramenta com confiança
Cada chamada devolve o nome da ferramenta, a categoria, um valor de confiança e um indicador de fallback. O anfitrião compara essa pontuação com dois limites: 0,85 para aceitar a escolha de imediato e 0,60 abaixo do qual o pedido volta ao planejador. Assim o harness tem uma regra clara para confiar no roteador ou ignorá-lo.
Três modos conforme o nível de confiança
O modo hybrid aceita escolhas seguras e recorre ao planejador quando há dúvida ou erro tratado do provedor. jev_only aceita tudo que passar do limite de fallback e deixa os erros aparecerem. planner_only pula a chamada ao modelo. Dá para trocar de modo a cada pedido sem mexer no código do harness.
Decisões em cache antes de qualquer chamada ao modelo
A ponte de hooks monta uma chave de estado com o objetivo, a observação, a última ação e um catálogo compacto de ferramentas. Estado igual reaproveita a escolha guardada, e o cache padrão guarda 512 entradas por sessão durante 300 segundos. A biblioteca tem ainda um cache menor para escolhas muito confiáveis com o mesmo objetivo e o mesmo conjunto de ferramentas, que você desliga com obvious_cache_size=0.
Roteamento Jev via OpenRouter
O Jev é um modelo de decisão, não de conversa. Ele recebe um estado e uma lista fechada de opções e devolve probabilidades em vez de texto, o que cai bem em tarefas de classificação como escolher ferramenta. O modelo padrão é o typesafe/jev-1.13, chamado pelo OpenRouter com a sua chave. Quando o catálogo passa de 24 ferramentas, o roteador pode escolher uma categoria primeiro e a ferramenta dentro dela depois.
Busca de ferramentas com MCTS opcional
A busca Monte Carlo ajuda quando a melhor primeira jogada depende do que vem depois. Você fornece um grafo de estados e transições previstos, com orçamento de simulação entre 1 e 4.096 e profundidade de até 8. A busca trabalha sobre resultados simulados, nunca sobre ferramentas reais, e devolve a primeira ação junto com uma variação principal. Sem simulador, a escolha volta ao planejador.
Adaptadores para cinco harnesses
Codex, Claude Code, ohmypi, Antigravity e DeepSeek Harness têm um adaptador feito sob medida para os retornos que cada anfitrião expõe. Codex e Claude Code usam hooks de início de sessão, prompt, resultado de ferramenta e validação prévia. O ohmypi lê o registro ao vivo e troca o conjunto ativo. O Antigravity usa retornos de invocação e de resultado. Um hook Stop compartilhado pode pedir outro passo quando ainda existe uma decisão recente e segura.
Prós e contras
Prós
- Licença MIT, sem conta, assinatura ou serviço hospedado dentro do loop, então o código completo fica disponível para auditar e alterar.
- O fallback é o resultado padrão. Pouca confiança, chave ausente ou erro do provedor devolvem o controle ao planejador em vez de forçar a ferramenta errada.
- Uma camada de decisão cobre cinco harnesses, além da API Python, da CLI e de um servidor MCP, o que evita reescrever o mesmo seletor para cada anfitrião.
- O benchmark publicado mostra um resultado negativo em uma das integrações, algo raro o bastante para deixar o resto da documentação mais confiável.
- Cache e roteamento por categoria atacam os dois casos em que um roteador se paga: estados repetidos e catálogos grandes demais.
Contras
- No teste com Codex, o roteamento elevou os tokens do modelo principal em 105,9% e levou o tempo médio de 115,8 para 228,9 segundos, com 54 de 58 decisões caindo no planejador. Meça antes de ativar num projeto em produção.
- Cada chamada envia objetivo, observação e descrições de ferramentas para o OpenRouter, e os arquivos de sessão guardam esse texto em `.harness-router/`. Credenciais e segredos não devem aparecer nessas entradas.
- O projeto é alfa, ainda não tem versões marcadas e o instalador de hooks exige copiar à mão os adaptadores de Codex e Claude Code.
- O MCTS só funciona se você fornecer um simulador sem efeitos colaterais. A maioria dos times vai usar o cache e o caminho do Jev e nunca chegar à camada de busca.
Perguntas frequentes
Escolhe a próxima ferramenta dentro do loop de um agente. Você passa um objetivo, a observação atual e as ferramentas disponíveis, e ele devolve um nome de ferramenta com confiança ou um fallback para o planejador. O harness continua montando argumentos e executando a chamada.
Conteúdo relacionado
Explore ferramentas, skills e artigos relacionados a Harness Router.
Alternativas a Harness Router
Base Code
Base44 (Wix) · Programação · ProdutividadeO Base Code é um ambiente de desenvolvimento em nuvem compartilhado da Base44. O time descreve mudanças em um repositório do GitHub pelo chat, confere tudo na prévia e envia o resultado como pull request.
Google EmbeddingGemma 2
Google DeepMind · Escrita · Imagem · ProgramaçãoGoogle EmbeddingGemma 2 é um modelo aberto de 740 milhões de parâmetros que transforma texto, código, imagens, áudio e quadros de vídeo em vetores de um único espaço de 768 dimensões, rodando em celulares e notebooks.
GitGlow
GitGlow · Programação · ProdutividadeO GitGlow é um cliente Git de desktop que coloca seu código e as mudanças dos seus agentes de IA na mesma revisão, para você saber o que vai sair da máquina antes de publicar.
