API Fusion d’OpenRouter
(openrouter.ai)- Le point de départ est le constat que la synthèse (synthesize) des résultats de plusieurs modèles peut largement dépasser les performances d’un modèle isolé
- Une approche de délibération multi‑modèle (multi-model deliberation) dans laquelle plusieurs modèles experts analysent en parallèle un même prompt, puis un modèle juge (judge model) synthétise leurs résultats pour rédiger la réponse finale
- Les modèles du panel effectuent une analyse parallèle avec recherche web et récupération web activées, tandis que le modèle juge organise l’analyse sous forme structurée autour du consensus, des contradictions, des correspondances partielles, des insights uniques et des angles morts
- La valeur par défaut est le preset Quality ; il est possible de passer au preset Budget pour utiliser des modèles moins coûteux, ou de redéfinir entièrement le panel et le juge via les champs du plugin fusion
- Adapté à des cas comme la recherche ou la relecture experte, lorsqu’un modèle unique ne suffit pas et que le coût d’une mauvaise réponse dépasse le surcoût de génération
- Comme l’appel exécute tous les membres du panel ainsi que le juge, le coût d’une requête est facturé comme la somme des completions individuelles, et non comme un modèle unique
Fonctionnement
- Transforme un prompt unique en une petite délibération multi‑modèle
- Un panel de modèles experts analyse le prompt en parallèle avec web search et web fetch activés
- Le modèle juge synthétise les réponses du panel et produit une analyse structurée en consensus, contradictions, couverture partielle, insights uniques et angles morts
- Sur la base de cette analyse structurée, le modèle juge rédige la réponse finale
Composition et configuration du panel
- Le panel par défaut utilise le preset Quality
- Pour des membres moins coûteux, il est possible de passer au preset Budget
- Les champs
analysis_modelsetmodeldu plugin fusion permettent de redéfinir complètement le panel et le juge
- Recommandé lorsqu’un modèle unique ne suffit pas
- Convient à la recherche, à la relecture experte, ou aux domaines où le coût d’une erreur dépasse le coût supplémentaire des completions
Tarification et limites
- Comme l’appel exécute tous les membres du panel ainsi que le juge, le coût d’une requête est calculé non pas sur la base d’un modèle unique, mais comme la somme des completions individuelles
- Il est possible de vérifier quels modèles ont réellement été exécutés sur la page Activity
- La limite de contexte varie selon les modèles choisis
Les presets utilisent 6 modèles
- Qualité maximale : Claude Opus, OpenAI GPT, Google Gemini Pro
- Coût minimal : Google Gemini Flash, DeepSeek V4 Flash, MoonshotAI Kimi
Annonce associée : "Dépasser les performances de pointe avec Fusion"
- Un outil qui synthétise les résultats de plusieurs modèles pour dépasser les performances d’un modèle isolé, avec la possibilité de choisir directement un panel de modèles participants et un modèle judge chargé de fusionner les résultats, puis de l’appeler comme s’il s’agissait d’un modèle unique
- Sur 100 tâches de recherche approfondie du benchmark DRACO, le panel surpasse systématiquement les modèles pris individuellement
- La fusion Fable 5 + GPT-5.5 atteint 69,0 %, dépassant tous les modèles individuels, y compris Fable 5 seul (65,3 %)
- Un panel à bas coût (Gemini 3 Flash + Kimi K2.6 + DeepSeek V4 Pro) obtient un score à moins de 1 % de celui de Fable 5 pour 50 % du coût, tout en dépassant GPT-5.5 et Opus 4.8
- Le prompt est envoyé en parallèle aux modèles du panel ; le judge analyse les points d’accord, les contradictions, les insights uniques et les angles morts, puis le modèle appelé rédige la réponse finale sur cette base
- L’ensemble du pipeline s’exécute côté serveur (server-side), ce qui permet de l’utiliser de la même manière qu’un appel de modèle individuel
- Même lorsqu’Opus 4.8 est fusionné avec lui-même, il atteint 65,5 % contre 58,8 % seul, soit un gain de 6,7 points, ce qui confirme l’effet propre de l’étape de synthèse
- Un risque de contamination a été identifié lorsque les modèles du panel trouvent en ligne la grille d’évaluation ; il peut être bloqué en configurant en une ligne une liste d’exclusion pour web search et web fetch
- Quatre modes d’utilisation : Chatroom (sans code), Model slug (remplacement de chaîne), Server tool (contrôle maximal), Plugin (spécification du panel)
- Ce n’est pas un remplaçant direct de Fable ; les tâches à long horizon où Fable excelle ne sont pas incluses, et en programmation il est utilisé comme outil d’appel sélectif
1 commentaires
Commentaires Hacker News
Il y a quelques mois, j’ai essayé de créer Fusion avec un MCP utilisant OpenRouter. L’idée était de proposer un « panel d’experts » vers lequel se tourner quand Claude était bloqué
Après beaucoup de tests et de benchmarks, j’ai constaté que faire évaluer la réponse d’un modèle par d’autres modèles ne produisait pas réellement de meilleure réponse. Au fond, on leur demande simplement « dans quelle mesure cette réponse ressemble-t-elle à celle que toi tu aurais donnée ? », et les tours supplémentaires ou les solutions « évidentes » qui émergent revenaient en pratique à augmenter la température. J’ai bien trouvé une solution, mais le coût est absurdement élevé. Si cette approche attire davantage l’attention, je publierai peut-être aussi la mienne
De mon côté, je leur demande explicitement de chercher des problèmes selon leur gravité, puis je fais passer ces problèmes devant un panel de modèles juges, et je ne fais corriger la réponse d’origine que pour ceux qui dépassent un certain seuil. Ce qui a vraiment amélioré les résultats, c’est de demander au modèle juge d’évaluer séparément la véracité et l’axe « utilité / faut-il corriger ». Sinon, si on force la recherche de problèmes, on finit par obtenir du pinaillage sur des détails. L’axe de véracité s’est aussi révélé meilleur pour évaluer un modèle de détection de problèmes adapté à mon usage. J’applique une partie de cela à la génération d’explications comme ici : https://hanzirama.com/character/%E6%9D%A5#explain — aujourd’hui, ce site est devenu une sorte de petit sous-produit de mon dispositif d’évaluation de LLM. Si l’on veut la meilleure qualité, il faut probablement verrouiller le fournisseur sur OpenRouter.
:exactoseul ne suffit pas, surtout avec les modèles à poids ouverts, pour obtenir de bons résultats reproductiblesJe me demande si d’autres ont eu le sentiment qu’on pouvait amener un LLM à se comporter assez mal si on le trompait pour le mettre en mode « je me sens supérieur »
Le paysage a complètement changé par rapport à il y a deux ans, donc cela vaut la peine d’y rejeter un œil. [0] https://github.com/Ceroxylon/konsensis
J’ai testé deux modèles juges dans mon application. Le premier servait de modèle juge pour un modèle d’adaptation de CV : il comparait le CV final au CV d’origine et à l’offre d’emploi, puis notait l’adéquation et l’honnêteté sur 10 ; cela a bien fonctionné et s’est révélé utile. Le second était un modèle de revue pour une plateforme de bots de trading pilotés par LLM, chargé d’examiner les décisions du modèle principal. Là, comme le bot gère de l’ambiguïté, cela peut au contraire devenir nuisible, sauf s’il détecte des erreurs manifestes comme juger à partir d’un mauvais prix de chandelier ou faire un BUY alors qu’il faudrait un SELL. D’abord, cela ajoute de la latence : avec Gemma 4 31B, une décision passe de 30 à 60 secondes environ. Ensuite, comme le modèle de revue ne tourne que sur les décisions BUY/SELL et pas sur HOLD, la latence et le coût peuvent rendre le bot excessivement prudent au lieu d’augmenter le nombre de transactions. Donc si la réponse n’est pas facile à vérifier, je pense qu’il vaut mieux tout traiter d’un coup avec un meilleur modèle plutôt qu’avec un modèle de revue. Dans ce cas, on peut aussi se demander à quoi sert vraiment le modèle juge, et pourquoi ne pas laisser le même agent s’auto-relire. D’autant plus que, quand on lit le texte de raisonnement de modèles comme Gemma 4, on voit qu’ils se relisent déjà eux-mêmes. Ils font déjà de leur mieux, donc une relecture supplémentaire n’apporte pas énormément d’information. C’est une expérience intéressante, mais il faut l’évaluer au cas par cas
J’avais un prompt de ce genre que j’utilisais uniquement avec Claude Code
Examinons un problème d’architecture. Lance 10 agents, fais-leur créer chacun une persona, puis demande-leur de relire
_api.goet d’écrire une revue dansreviews/-review.md. Demande ensuite à chaque agent de lire les résumés en tête de chaque revue, de répondre en round-robin aux 3 revues de son choix et d’écrire dansresponse/--response.md. Puis fais-leur écrire des contre-arguments aux réponses dansrebuttals/-rebuttal.md. Enfin, fais relancer à chaque agent un agent chargé d’examiner sa propre revue, ses réponses et ses contre-arguments, puis de résumer le résultat dansfindings/-findings.md. Pour finir, un autre agent fusionne les résultats dansreview-findings.mdet doit y proposer une version concise. Cette approche a bien marché aussi bien avec des modèles de pointe qu’avec des modèles hébergés en local. Le dernier que j’ai utilisé était Qwen 3.5Est-ce que tu relis tous les fichiers générés pour vérifier l’absence d’hallucinations, ou est-ce que tu ne regardes que le fichier final concis ? Je me demande aussi si l’idée est qu’en faisant passer la sortie par plusieurs agents, les hallucinations finissent par s’annuler pour qu’il ne reste que la vérité. J’aimerais aussi savoir si tu as déjà vu du contenu gravement faux dans la version finale. Le coût m’inquiétait, mais avec des modèles hébergés en local, ce point semble moins problématique. En revanche, les modèles hébergés en local ont-ils toujours des difficultés avec l’exécution de commandes locales ou l’accès à Internet ? Si oui, est-ce que cela fonctionne uniquement avec le contexte de ce fichier précis, sans référence au reste du projet ?
Le contexte est ici : Surpassing Frontier Performance with Fusion
https://news.ycombinator.com/item?id=48525392
L’UI un peu meilleure est sur https://openrouter.ai/fusion. La Fusion API d’OpenRouter envoie les requêtes à plusieurs modèles en parallèle, puis un modèle juge fusionne les réponses pour produire la réponse finale. Cela prend plus de temps, mais améliorerait nettement les performances. En tout cas, c’était le cas sur le benchmark de deep research qu’ils ont testé. Le preset Budget est composé de 3 modèles moins chers et, sur ce benchmark, il est à peu près comparable à Fable pour un coût réduit de moitié. Le preset Quality est composé de 3 modèles coûteux, bat Fable, mais coûte deux fois plus cher que Fable. Graphe de Pareto : https://openrouter.ai/blog/images/blog/fusion-benchmark-cost.... Fait intéressant, même fusionner un modèle avec lui-même améliorait les performances. 2xOpus4.8 est à peu près comparable à Fable sur le benchmark, mais coûte deux fois plus cher. Mélanger des modèles différents apporte un léger gain supplémentaire. Le principal bénéfice semble venir du calcul supplémentaire au moment du test. J’aimerais voir davantage de recherches centrées sur la fusion de modèles récents et bon marché, par exemple DSV4 avec lui-même ou avec Mimo, ainsi que les compromis entre la fusion comme calcul parallèle au moment du test et l’augmentation du budget d’inférence ou du nombre de tours
En pratique, cela revient à échantillonner davantage dans l’espace des sorties possibles. Si un modèle a 60 % de chances de réussir une tâche, on peut tirer 5 à 10 échantillons et implémenter quelque chose comme un vote majoritaire. Cela est devenu moins utilisé à mesure que la précision des modèles a augmenté sur les problèmes où combiner les résultats est facile, mais avec un juge plus complexe, c’est-à-dire un LLM compétent, on peut encore améliorer les performances simplement en échantillonnant davantage l’espace des sorties et en sélectionnant les bonnes parties
Pour moi, cela suggère que Gemini est plus faible sur cette tâche, mais meilleur pour convaincre le modèle juge avec sa propre solution. Et le fait qu’un panel de deux Opus 4.8 soit presque exactement au niveau d’un seul Fable 5 laisse aussi une impression suspecte. Est-ce qu’on sait si Anthropic ne fait pas simplement déjà ce genre de chose en coulisses ?
J’ai fait une évaluation rapide pour voir la différence qualitative avec un appel direct à Opus 4.7 ou GPT 5.5
Comme prévu, Fusion était 7 fois plus lent et 4 fois plus cher. Ce n’est pas pour critiquer : à mon avis, Fusion entre dans la catégorie des outils « à n’utiliser que lorsque nécessaire ». https://3fpi5avcqq.evvl.io/
L’idée clé semble être d’utiliser Fusion avec des modèles plus simples et moins chers
Je me demande comment leur version tiendra en usage réel
J’ai beaucoup réfléchi à ce problème et, pour simplifier, je le comprends comme si chaque modèle était une distribution en cloche au-dessus de la connaissance humaine, avec une distribution différente pour chaque modèle
Utiliser plusieurs modèles permet de déplacer la distribution d’un autre modèle avec du texte qui était en dehors de sa courbe initiale. Mais en y repensant, je me demande si le SFP et le reinforcement learning modifient déjà suffisamment la distribution textuelle d’origine pour que les sorties combinées des modèles deviennent quelque chose de meilleur, ou si cela ne produit qu’une chambre d’écho. Je n’ai pas encore de moyen de le prouver, mais je crois que non
Comme résultat anecdotique sur Fusion, j’ai soumis à OpenRouter Fusion la même requête que j’avais utilisée avec Fable, et le résultat était moins bon
Fable semblait capter un certain niveau de profondeur de connaissance/intelligence, et ne se contentait pas de donner une réponse plausible : il proposait aussi des priorités dans les points à traiter et suggérait d’en abandonner certains, ce qui me paraissait assez pertinent. À l’inverse, Fusion donnait l’impression de légèrement diversifier le même type de réponses produites par les modèles state of the art d’avant Fable, et, dans les tests très limités que j’ai pu faire lorsque j’avais accès à Fable, il n’atteignait pas la même profondeur que Fable
Inspiré ce week-end par le nouveau modèle OpenRouter Fusion, j’ai travaillé pour voir si je pouvais faire tourner cela dans Claude Code et le rendre assez simple pour que d’autres puissent l’essayer facilement
J’ai créé claude-fusion-launcher — cela exécute Claude Code sur un panel de modèles plutôt que sur un modèle unique. Le coût est aussi affiché. https://github.com/smorinlabs/claude-fusion-launcher
Je me demande si régénérer plusieurs fois le même prompt avec le même modèle, à température plus élevée, est équivalent à faire tourner plusieurs modèles différents
Je soupçonne qu’une bonne partie de la variabilité observée entre les différents modèles de pointe vient simplement du caractère aléatoire à température non nulle. Les modèles semblent entraînés à renvoyer des nombres d’éléments bien ronds, comme 5, 10 ou 15. Cela peut aussi venir d’interférences dues à l’apprentissage sur des contenus marketing. En plus, le taux de rappel dans un grand contexte est loin d’être de 100 %. Donc, s’il y a 27 bugs dans un code, que l’on utilise plusieurs modèles ou qu’on appelle plusieurs fois le même modèle, chaque exécution peut trouver 10 problèmes différents parmi les 27
Je me demande s’il existe des recherches formelles dans ce domaine. J’ai moi aussi essayé des variantes de cette approche, mais il m’est difficile d’affirmer avec assurance que les résultats étaient meilleurs.
Je crains que ce soit un peu comme demander à 2 ou 3 consultants quelle est la meilleure stratégie pour une entreprise. Je ne sais pas vraiment si le fait de fusionner les réponses produit concrètement quelque chose de meilleur.
J’ai aussi lancé une fonctionnalité similaire dans mon TrustedRouter en open source, avec même un chiffrement de bout en bout : https://trustedrouter.com/