Vue d’ensemble

03Projet 03 sur 3

MRS Studio, un assistant multi-agents auto-hébergé

Un assistant conçu pour une petite entreprise : chat et voix en entrée, workflows planifiés, outils métier. Il tourne sur mon propre serveur ; Claude est une option, choisie par conversation.

A

Vue d’ensemble

Recherche webMémoireE-mailAgendaAssistant
principal
DocumentsMédiasWorkflowsRéglages
Une porte par domaine. L’assistant principal ne fait que router ; chaque spécialiste travaille dans son propre contexte et rend une synthèse avec ses sources.
EntréesChat web · réponse en directVoix · Parakeet / KokoroWorkflows planifiés
Hub · NestJSAssistant principal8 spécialistesMoteur de workflows
Outils · MCPMémoire RAG hybrideWeb · SearXNG auto-hébergéIBM iE-mail · agendaDocuments · OCR
InférencePasserelle · API OpenAIGPU 0 · Qwen MoE et Flash Next, partagé avec ComfyUIGPU 1 · Qwen denseClaude · Agent SDK
Tout tourne sur mon propre serveur, sauf les modèles cloud de Claude. Claude (en orange) se choisit par conversation. Claude Code, le moteur derrière lui, peut travailler soit avec les modèles d’Anthropic dans le cloud, soit avec les modèles du serveur. Chaque modèle est un fournisseur réglable dans l’app, derrière une API compatible OpenAI : changer de modèle ne touche pas au code de l’assistant.
B

Comment l’assistant délègue

Assistant principal
« Résume les dernières nouveautés de vLLM »
Modèledécide : répondre lui-même ou déléguer
Outils simples, sans logique métierdate · fichiers · espaces de travail
Spécialiste · recherche web
Sa propre consigne et sa méthode
Modèleboucle sur plusieurs tours, contexte séparé
search_web · fetch_pageSearXNG, puis lecture des pages
L’assistant principal n’a aucun outil métier. Il ne reçoit que la synthèse et les sources de chaque spécialiste : son contexte reste court. Les workflows planifiés passent par les mêmes spécialistes.

Chaque spécialiste a sa méthode

Un spécialiste a ses propres consignes, ses propres outils et un périmètre déclaré.

C

Comment il retrouve l’information

Question
Par le sensEmbeddingGemma-300M
Par les mots exactsBM25
FusionRRF
Rerankercross-encoderretrie 8 candidats par résultat gardé, 40 au minimum
Contexteles meilleurs résultats + notes liées
Deux recherches complémentaires, fusionnées, puis triées par un modèle plus précis. La recherche par le sens trouve « préfère le café noir » quand on demande « boissons préférées » ; une recherche par mots-clés (BM25) rattrape les noms exacts (un programme, une table). Le reranker est multilingue.
D

Inférence sur mon propre matériel

Chat et voix
Workflows
Spécialistes
Workers de code (projet 01)
PasserelleAPI compatible OpenAI
  • un modèle à la fois par GPU
  • chaque appel journalisé
GPU 0 · MoEQwen 3.6 35B-A3B · NVFP4
  • volume : résumer, inventorier
  • partagé avec Flash Next et ComfyUI
GPU 1 · denseQwen 3.8 27B · NVFP4 · NInfer
  • jugement : citer ses sources, relire
  • toujours chargé
ClaudeAgent SDK · option
Deux sortes de modèles locaux. Dans un modèle à mélange d’experts (MoE), seule une petite partie du modèle travaille sur chaque mot, ce qui le rend rapide ; un modèle dense travaille en entier sur chaque mot : plus lent, mais plus fiable.

Une passerelle compatible OpenAI

Tous les modèles sont derrière cette seule passerelle, qui charge chacun sur sa carte au besoin et journalise chaque appel. Le MoE sert le volume, le modèle dense le jugement, et Flash Next les sessions de code locales.

Un modèle à mélange d’experts sur une seule carte

Flash Next, un modèle à mélange d’experts (MoE) de Qwen, tourne sur une seule RTX 5090 avec Strata, un moteur dérivé de llama.cpp qui garde les experts en mémoire vive et les plus utilisés sur la carte : 176 à 193 jetons par seconde.

Le modèle dense : huit conversations à la fois

Depuis le 13 octobre 2026, le modèle dense tourne sur NInfer, un jeune moteur d’inférence open source, dans une quantification 4 bits (NVFP4) faite maison. Son cache KV, la mémoire qu’occupe sur la carte le contexte de chaque conversation, contient désormais 604 224 jetons, contre 330 107 sous vLLM, le moteur d’avant : de quoi tenir huit conversations de 75 000 jetons chacune. Avec huit conversations à la fois, il écrit environ 1 000 jetons par seconde au total sur des prompts courts, et environ 790 avec 32 000 jetons de contexte chacune (banc du 13 octobre 2026).

E

Comment il génère images et vidéos

Spécialiste médiassur un modèle qui voit les images
Passerelledécharge le MoE pendant le rendu
ComfyUI · GPU 0ImageRetoucheVidéoAgrandissement 4K

Regarde le résultat avant de répondre

Le spécialiste regarde ce qu’il a produit avant de répondre. D’où la règle : la génération est réservée aux modèles qui voient. Sur un modèle aveugle, une demande d’image produisait un récit avec des liens vers des images jamais créées. La génération tourne sur le GPU 0, la carte la mieux reliée au reste de la machine, parce que c’est elle qui charge et décharge le plus souvent des modèles.
F

Comment c’est évalué

Recherche

Un jeu de questions dont on connaît la réponse, rejoué à chaque changement de la recherche : combien de fois la bonne note revient parmi les premiers résultats (recall@k).

Consignes

Un changement de consigne est rejoué sur de vraies demandes du chat et jugé par un second modèle ; il ne compte comme fini qu’après un test statistique adapté aux petits échantillons.

G

Choix de conception

Pourquoi pas LangGraph ou LangChain ?

Évalué deux fois, en juin puis en août sur les versions 2026 de Deep Agents. Mon moteur de workflows couvre déjà ce que propose LangGraph (étapes, état persistant, pause et reprise, planification) sans ajouter de dépendance. Les versions du framework ont introduit trois ruptures en quatre mois, et son interface par défaut de l’époque ne fonctionnait pas avec le serveur d’inférence utilisé ici (vLLM). Un framework aurait du sens pour un produit vendu à des clients qui modifient l’orchestration, isolé derrière MCP, l’interface standard des outils.

Décision du 23 juin, revue le 24 août 2026

Pourquoi des modèles locaux ?

Les données sensibles restent sur la machine, sauf si Claude est choisi pour une conversation. Le coût est fixe au lieu d’être payé au jeton. Et c’est beaucoup plus fun comme ça.

Que veut dire « multi-agents », concrètement ?

Les spécialistes ci-dessus sont des agents, chacun avec son contexte. Le développement suit le même principe : Claude orchestre, et des modèles Qwen locaux font les grosses lectures en parallèle (projet 01).

Comment je limite les hallucinations et les pannes muettes ?

Une réponse doit venir d’une source. Le spécialiste web répondait de la mémoire du modèle dans 17 essais de test sur 24 ; depuis que sa première règle exige une recherche avant toute réponse, c’est tombé à 0 sur 60, et un tour où aucune recherche n’a abouti se déclare en échec au lieu de transmettre une réponse sans source. Chaque résultat de recherche dit aussi au modèle ce qu’il n’a pas vu : combien de résultats sont montrés, combien d’autres ont été trouvés, ce qui a été coupé, si une source est en panne. Chaque outil de recherche dit ce qu’il couvre et quel outil détient le reste : l’assistant a un jour présenté 9 fichiers comme « tout » dans un espace qui contenait 28 documents, parce qu’il avait interrogé le mauvais outil. Enfin, rien n’échoue en silence : une erreur s’affiche et se journalise, et quand un outil refuse, le modèle reçoit une phrase : ce qu’il a tenté et pourquoi.

17 sans recherche sur 24, puis 0 sur 60 · août 2026

H

Limites