Glossaire
Tool-RAG / Tool retrieval
Le tool-RAG (ou tool retrieval) est l'application des principes RAG (Retrieval-Augmented Generation) à la sélection dynamique d'outils pour un agent IA : embedder le catalogue d'outils dans une base vectorielle, puis retrouver les k plus pertinents pour chaque tour conversationnel au lieu de tous les exposer au modèle.
Aussi appelé
- tool-RAG
- tool retrieval
- récupération d'outils
Quand un agent dispose de centaines d'outils (chatsocial.fr branche 206 outils MCP Brandyze), exposer la totalité au modèle à chaque tour est contre-productif : (1) coût token explose, (2) latence augmente, (3) le modèle se trompe plus souvent en confondant des outils similaires. Le tool-RAG résout ces 3 problèmes en n'exposant que les outils sémantiquement pertinents pour l'intention de l'utilisateur.
Architecture typique : un index vectoriel (pgvector, Qdrant) sur les descriptions d'outils + un re-ranker léger (BM25 keyword + boost des composites). Pour chaque tour, on embed la requête, on retrouve les top-k (généralement 10-20), on union avec un set Tier-1 toujours-on (les outils stratégiques par défaut), puis on passe ce sous-ensemble au modèle.
Le tool-RAG a une **subtilité de sécurité** : la directive `activeTools` du Vercel AI SDK est purement de visibilité — le SDK peut quand même exécuter un tool-call hors-liste si l'historique de conversation en contient un. Il faut donc doubler avec un guard côté serveur qui re-valide chaque exécution contre la même allow-list.
Dans le produit chatsocial.fr
chatsocial.fr utilise un tool-RAG hybride pgvector cosine + BM25 sur 206 outils MCP Brandyze. À chaque tour : top-k=12 plus l'union TIER1 (composites brandyze_* always-on). Le guard serveur dans lib/mcp/client.ts re-valide chaque execute() avant de transmettre au MCP.
Questions fréquentes
À partir de combien d'outils faut-il faire du tool-RAG ?
Au-delà de ~30 outils, la qualité de routage du modèle commence à se dégrader visiblement. À partir de 100, le tool-RAG devient quasi obligatoire.
Quelle taille de top-k retenir ?
Entre 8 et 20 selon la diversité des intentions. 12 est un bon point de départ. Le signal d'optimisation : ratio retrieved-vs-called (combien d'outils retrouvés ont été réellement appelés). Idéal 30-50 %.