Harness Router

Harness Router

Protocol Lattice · Programmation · Productivité

Harness Router choisit le prochain outil dans le harness d'un agent que vous utilisez déjà, avec des décisions en cache, le routage Jev et un MCTS optionnel. L'exécution reste dans votre boucle.

Aperçu de l'interface de Harness Router

À propos de Harness Router

What Is Harness Router

Harness Router est un paquet Python open source pour un harness d'agents IA : il prend une décision dans la boucle, quel outil lancer maintenant. Il reçoit l'objectif, l'observation courante, la dernière action quand elle existe et la liste des outils disponibles. Il renvoie le nom d'un outil, un score de confiance et un indicateur qui signale si le choix doit repartir vers le planificateur.

Ce partage des rôles compte. Le harness se charge déjà des arguments, des permissions, des approbations, des nouvelles tentatives et de l'appel lui-même. Harness Router n'y touche pas. Il se branche sur un point du cycle exposé par l'hôte, un hook de prompt ou un retour de résultat par exemple, et apporte une indication au moment où le prochain pas se décide. Protocol Lattice le publie sous licence MIT, et la version actuelle est étiquetée alpha.

C'est une brique étroite pour un problème précis. La sélection d'outils de l'agent se complique à mesure que le catalogue grossit, parce que plusieurs outils paraissent crédibles face à la même observation. Un routeur qui nomme un outil avec un score de confiance donne au harness quelque chose de concret à accepter ou à refuser. Il n'écrit pas votre code, ne lance pas vos tests et ne décide pas ce que terminer veut dire.

Lisez le benchmark du projet avant d'installer quoi que ce soit. Sur l'intégration Codex testée, la consommation de tokens et le temps d'exécution ont augmenté, et la majorité des décisions sont retombées sur le planificateur. Le routage n'apporte pas de gain de vitesse automatique, et les auteurs le disent clairement.

Getting Started

  1. Installez la CLI avec uv sur Python 3.11 ou plus récent : uv tool install --force --with 'mcp>=2,<3' 'git+https://github.com/Protocol-Lattice/harness-router.git@main'. Le paquet expose har, harness-router et harness-router-mcp.
  2. Exportez OPENROUTER_API_KEY dans l'environnement qu'utilisera le processus du harness. Le modèle par défaut est typesafe/jev-1.13, et sans clé l'appel renvoie un repli vers le planificateur.
  3. Lancez l'installeur de hooks du fournisseur choisi, puis copiez les deux adaptateurs qu'il laisse de côté. Codex et Claude Code ont besoin de pre_decision.py et stop.py dans leur dossier de hooks, et l'installeur sauvegarde les réglages qu'il modifie.
  4. Ouvrez une nouvelle session. Le hook de démarrage découvre le catalogue, les retours de prompt et de résultat préparent un choix à l'avance, et le hook de validation vérifie cette décision sans refaire d'appel au modèle.

Informations sur le produit

Aperçu des tarifs, des plateformes compatibles et des performances de Harness Router.

Offre gratuiteOui
Offres payantes$0 (MIT) plus Jev usage billed through OpenRouter
PlateformePython 3.11+ (CLI, MCP server, library); hook adapters for Codex, Claude Code, ohmypi, Antigravity, DeepSeek Harness
DéveloppeurProtocol Lattice
CatégorieProgrammation · Productivité
Date de lancementSep 2026
Dernière mise à jourSep 2026
Visites du siteN/A
Classement mondial du siteN/A
Disponibilité de l’APIOui

Idéal pour

Les utilisateurs, tâches et cas d'usage où cet outil convient le mieux.

Utilisateurs

  • Les développeurs qui travaillent avec Codex ou Claude Code sur des tâches longues
  • Les équipes dont le registre d'outils MCP dépasse la vingtaine d'entrées
  • Ceux qui construisent leur propre boucle d'agent

Tâches

  • Choisir entre des outils de lecture proches
  • Repartir après un test en échec
  • Comparer le routage à un planificateur classique

Cas d'usage

  • Une session de débogage avec des états répétés
  • Un catalogue d'outils qui ne cesse de grossir
  • Une première expérience avec le routage d'outils IA

Fonctionnalités clés

Une décision du prochain outil avec un score de confiance

Chaque appel renvoie le nom de l'outil, sa catégorie, une valeur de confiance et un indicateur de repli. L'hôte compare ce score à deux seuils : 0,85 pour accepter le choix directement, 0,60 en dessous duquel la requête repart vers le planificateur. Le harness dispose ainsi d'une règle claire pour faire confiance au routeur ou l'ignorer.

Trois modes selon le degré de confiance

Le mode hybrid accepte les choix sûrs et bascule sur le planificateur en cas de doute ou d'erreur fournisseur gérée. jev_only accepte tout ce qui dépasse le seuil de repli et laisse remonter les erreurs. planner_only saute l'appel au modèle. Vous changez de mode à chaque requête sans toucher au code du harness.

Des décisions en cache avant tout appel au modèle

Le pont de hooks construit une clé d'état à partir de l'objectif, de l'observation, de la dernière action et d'un catalogue compact d'outils. Un état identique réutilise le choix stocké, et le cache par défaut garde 512 entrées par session pendant 300 secondes. La bibliothèque entretient aussi un cache plus petit pour les choix très sûrs à objectif et outils inchangés, que vous désactivez avec obvious_cache_size=0.

Routage Jev via OpenRouter

Jev est un modèle de décision, pas de conversation. Il reçoit un état et une liste fermée d'options, puis renvoie des probabilités au lieu de texte, ce qui convient aux tâches de classification comme le choix d'outil. Le modèle par défaut est typesafe/jev-1.13, appelé via OpenRouter avec votre clé. Au-delà de 24 outils, le routeur peut choisir une catégorie d'abord, puis un outil à l'intérieur.

Recherche d'outils avec MCTS en option

La recherche arborescente de Monte-Carlo aide quand le meilleur premier coup dépend de la suite. Vous fournissez un graphe d'états et de transitions prévus, avec un budget de simulation entre 1 et 4 096 et une profondeur allant jusqu'à 8. La recherche travaille sur des résultats simulés, jamais sur de vrais outils, puis renvoie la première action et une variante principale. Sans simulateur, le choix repart vers le planificateur.

Des adaptateurs pour cinq harness

Codex, Claude Code, ohmypi, Antigravity et DeepSeek Harness disposent chacun d'un adaptateur calé sur les retours exposés par l'hôte. Codex et Claude Code utilisent les hooks de démarrage de session, de prompt, de résultat d'outil et de validation préalable. ohmypi lit le registre en direct et remplace l'ensemble d'outils actif. Antigravity s'appuie sur les retours d'invocation et de résultat. Un hook Stop partagé peut demander une étape supplémentaire quand une décision récente et sûre reste valable.

Avantages et inconvénients

Avantages

  • Licence MIT, sans compte, abonnement ni service hébergé dans la boucle, donc tout le code reste disponible pour audit et modification.
  • Le repli est l'issue par défaut. Confiance faible, clé absente ou erreur fournisseur rendent la main au planificateur au lieu de forcer un mauvais appel d'outil.
  • Une seule couche de décision couvre cinq harness, plus une API Python, une CLI et un serveur MCP, ce qui évite de réécrire le même sélecteur pour chaque hôte.
  • Le benchmark publié assume un résultat négatif sur une intégration, ce qui est assez rare pour rendre le reste de la documentation crédible.
  • Le cache et le routage par catégorie visent les deux cas où un routeur se justifie : états répétés et catalogues trop grands.

Inconvénients

  • Sur le test Codex, le routage a fait grimper les tokens du modèle principal de 105,9 % et le temps moyen de 115,8 à 228,9 secondes, avec 54 décisions sur 58 retombées sur le planificateur. Mesurez avant de l'activer sur un projet en cours.
  • Chaque appel envoie l'objectif, l'observation et les descriptions d'outils à OpenRouter, et les fichiers de session stockent ce texte dans `.harness-router/`. Les identifiants et secrets ne doivent pas figurer dans ces entrées.
  • Le projet est en alpha, n'a pas encore de version étiquetée, et l'installeur de hooks impose une copie manuelle des adaptateurs Codex et Claude Code.
  • Le MCTS ne fonctionne que si vous fournissez un simulateur sans effet de bord. La plupart des équipes utiliseront le cache et la voie Jev sans jamais toucher à la couche de recherche.

Questions fréquentes

Il choisit le prochain outil dans la boucle d'un agent. Vous lui donnez un objectif, l'observation courante et les outils disponibles, et il renvoie un nom d'outil avec un score de confiance ou un repli vers le planificateur. Le harness continue de construire les arguments et d'exécuter l'appel.