Harness Router

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.

Prévia da interface de Harness Router

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

  1. 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õe har, harness-router e harness-router-mcp.
  2. Exporte OPENROUTER_API_KEY no ambiente que o processo do harness vai usar. O modelo padrão é o typesafe/jev-1.13, e sem a chave a chamada devolve um fallback para o planejador.
  3. 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.py e stop.py na pasta de hooks, e o instalador faz backup dos ajustes que altera.
  4. 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.

Plano gratuitoSim
Planos pagos$0 (MIT) plus Jev usage billed through OpenRouter
PlataformaPython 3.11+ (CLI, MCP server, library); hook adapters for Codex, Claude Code, ohmypi, Antigravity, DeepSeek Harness
DesenvolvedorProtocol Lattice
CategoriaProgramação · Produtividade
Data de lançamentoSep 2026
Última atualizaçãoSep 2026
Visitas ao siteN/A
Ranking global do siteN/A
Disponibilidade da APISim

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.