Skip to content

Construire un chatbot RAG avec MCP Retriever ​

Le RAG permet de rechercher dans vos sources avant de produire une réponse. Avec MCP Retriever, le modèle choisit l’outil de recherche, Studio l’exécute, puis le résultat est ajouté à l’historique pour produire une réponse sourcée.

Configurer un bloc qui utilise vos sources ​

Si le bloc RAG disponible dans votre organisation propose une connexion Sources de données :

  1. Ajoutez ce bloc et reliez-le au parcours depuis Début.
  2. Renseignez ses champs modifiables, notamment les consignes et le modèle de réponse lorsqu’ils sont proposés.
  3. Ajoutez un bloc Sources de données et choisissez le modèle d’embedding puis les sources compatibles.
  4. Dans le panneau du bloc RAG, ouvrez Ports contextuels et utilisez Brancher le bloc pour associer vos sources.
  5. Reliez les sorties proposées, sauvegardez et testez une question couverte par les sources puis une question sans résultat.

Le bloc Sources de données reste détaché du parcours principal. La recherche est réalisée par le bloc qui les utilise. Le guide des connexions détaille les étapes et les cas de sélection vide.

Construire le parcours MCP Retriever bloc par bloc ​

L’exemple suivant utilise les blocs standards pour configurer explicitement la boucle de recherche. Aucun bloc Requête HTTP ni aucune configuration documents ne sont nécessaires pour ce parcours MCP.

Recherche documentaire RAG
100 %
Recherche documentaire RAGLe catalogue alimente l’instruction et la requête. Si le modèle demande un outil, Studio l’exécute puis revient à la même instruction. Sinon, la réponse termine le tour. Début. MCP - Liste d’outils : MCP Retriever. Instruction LLM : Préparer l’instruction. Requête LLM : Répondre ou demander un outil. Condition : Des outils à appeler ? : gt (length chatCompletion-1.genericToolCalls) 0 : Réponse directe. MCP - Appel d’outils : Exécuter les appels. Réponse dans Semantics Chat : content. Message simple : Expliquer le problèmetoolsDébutDébutMCP - Liste d’outils : MCP RetrieverMCP - Liste d’outilsMCP RetrieverInstruction LLM : Préparer l’instructionInstruction LLMPréparer l’instructionRequête LLM : Répondre ou demander un outilRequête LLMRépondre ou demander un outilCondition : Des outils à appeler ?ConditionDes outils à appeler ?Sigt (length chatCompletion-…SinonRéponse directeMCP - Appel d’outils : Exécuter les appelsMCP - Appel d’outilsExécuter les appelsRéponse dans Semantics Chat : contentRéponse dans SemanticsChatcontentMessage simple : Expliquer le problèmeMessage simpleExpliquer le problème

Configuration pas à pas ​

  1. Ajoutez MCP - Liste d'outils comme point d’entrée.
  2. Configurez le serveur MCP Retriever de votre environnement et sélectionnez au minimum retriever_retrieve_information.
  3. Renseignez dans les métadonnées l’identifiant du connecteur LLM utilisé par les sources. Les identifiants d’organisation et de conversation sont transmis automatiquement par la plateforme.
  4. Ajoutez une Instruction LLM avec {{listTools-1.tools}} activé et une consigne expliquant quand utiliser le retriever.
  5. Ajoutez une Requête LLM utilisant {{generatePrompt-1.instruction}} et {{listTools-1.tools}}.
  6. Ajoutez une condition : gt (length chatCompletion-1.genericToolCalls) 0.
  7. Sur la route positive, exécutez MCP - Appel d'outils avec les appels du modèle et le routage du catalogue.
  8. Après l’appel d’outils, revenez vers la même Instruction LLM, puis vers la Requête LLM. L’instruction est reconstruite avec les résultats. Si la condition est fausse, content constitue la réponse finale.
  9. Reliez les branches d’échec à un message clair et non technique.

Serveur MCP Retriever ​

Exemple de configuration d’un serveur dans MCP - Liste d'outils :

json
{
  "name": "Wikit Retriever",
  "url": "<URL_MCP_RETRIEVER>/mcp",
  "allowedTools": [
    "retriever_retrieve_information",
    "retriever_get_table_metadata",
    "retriever_run_sql_query"
  ],
  "meta": {
    "llmConnectorId": "<ID_CONNECTEUR_LLM>"
  }
}

retriever_retrieve_information recherche en parallèle les passages de documents et les sources tabulaires pertinents. Les deux autres outils sont utiles lorsqu’une réponse nécessite d’examiner le schéma d’une table puis d’exécuter une requête SQL en lecture seule.

Vous pouvez limiter allowedTools au seul outil de recherche pour un assistant strictement documentaire. L’URL et les métadonnées exactes dépendent de votre environnement et des sources activées.

Variables à relier ​

RéférenceRôle
{{listTools-1.tools}}Catalogue transmis à l’instruction et à la requête LLM
{{listTools-1.toolServerRouting}}Routage vers le serveur MCP Retriever
{{generatePrompt-1.instruction}}Instruction préparée pour le modèle
{{chatCompletion-1.genericToolCalls}}Appels d’outils demandés par le modèle
{{callTools-1.toolCallResults}}Résultats du retriever, utiles pour le debug et la traçabilité

Le bloc MCP - Appel d'outils ajoute automatiquement ses résultats à conversationHistory. Le retour vers Instruction LLM reconstruit le prompt avec ces résultats. La requête conserve la référence {{generatePrompt-1.instruction}} ; il n’est pas nécessaire de copier toolCallResults dans une configuration documentaire.

Instruction de base ​

txt
Tu réponds à partir des sources internes accessibles avec les outils MCP.

Pour toute question susceptible d'être couverte par ces sources, commence par appeler
retriever_retrieve_information avec une requête de recherche précise.

Si des passages de documents suffisent, réponds à partir de ces passages et cite le nom
du document ainsi que les pages lorsqu'elles sont disponibles.

Si une table est pertinente, appelle d'abord retriever_get_table_metadata avant toute
requête avec retriever_run_sql_query.

Si aucune source pertinente n'est trouvée, indique-le clairement sans inventer.

Pourquoi cette architecture fonctionne ​

  1. Le modèle reformule la question en requête de recherche ciblée.
  2. MCP Retriever renvoie des passages documentaires et, si nécessaire, des métadonnées de tables.
  3. MCP - Appel d'outils place le résultat dans l’historique du tour.
  4. Le modèle peut répondre, affiner sa recherche ou demander un outil tabulaire supplémentaire.
  5. La condition termine la boucle dès qu’aucun nouvel appel d’outil n’est demandé.

Cette boucle permet plusieurs recherches ciblées sans exposer au workflow l’URL HTTP, l’index Elasticsearch, le modèle d’embedding ou le format brut de la requête de retrieval.

Vérifications ​

  • le bloc liste d'outils contient retriever_retrieve_information ;
  • les métadonnées du serveur contiennent le bon llmConnectorId ;
  • l’instruction et la requête LLM reçoivent {{listTools-1.tools}} ;
  • la condition teste la longueur de genericToolCalls sans entourer toute l’expression d’accolades ;
  • MCP - Appel d'outils reçoit les appels et le routage provenant des bons blocs ;
  • après l’appel d’outils, le parcours revient vers la même instruction, qui conserve les outils, puis vers la requête LLM ;
  • un résultat vide produit une réponse honnête ;
  • la boucle possède une sortie et les anciens résultats d’outils expirent après un nombre de tours adapté.