Aller au contenu
Cercle IA Tech · RAG Un site du réseau Cercle IA Tech

Guide

RAG agentique : quand l'IA décide de ses recherches

RAG agentique : le modèle décide quand chercher, juge les résultats et reformule. Schéma LangGraph, apports, coûts, quand s'en passer.

Mis à jour le

Un RAG agentique confie au modèle de langage la conduite de la recherche : il décide s'il faut chercher, avec quelle requête, juge si les passages ramenés suffisent, et recommence autrement si ce n'est pas le cas. Le RAG classique, lui, suit un chemin fixé dans le code : une recherche, puis une réponse. L'agentique aide sur les questions qui demandent plusieurs recherches ; il coûte plus cher et répond plus lentement.

Flux de travail ou agent : la distinction d'Anthropic

Dans son article du 19/12/2024 « Building effective agents », Anthropic distingue :

  • les flux de travail (workflows), où modèles et outils sont orchestrés par des chemins de code définis à l'avance ;
  • les agents, où le modèle dirige lui-même son processus et l'usage de ses outils.

La brique de base des deux est le « modèle augmenté » : un modèle doté de récupération, d'outils et de mémoire, capable de générer ses propres requêtes de recherche. Un RAG classique est un flux de travail ; un RAG agentique est un agent dont l'un des outils est la recherche dans vos documents. Cercle IA Tech détaille ce choix en dehors du RAG dans agent ou workflow.

Le schéma du tutoriel LangGraph

Le tutoriel « Agentic RAG » de LangGraph, documenté avec LangChain, décrit l'agent comme un graphe d'étapes reliées par des branchements. Il en compte cinq :

Étape Rôle
generate_query_or_respond le modèle répond directement (une salutation) ou décide d'appeler l'outil de recherche
retrieve exécute la recherche dans l'index
grade_documents (branchement) un modèle juge si les passages sont pertinents (« oui » ou « non »)
rewrite_question si non, reformule la question et relance la recherche
generate_answer si oui, rédige la réponse à partir des passages

Les branchements, d'après la documentation :

workflow.add_conditional_edges("retrieve", grade_documents)
workflow.add_edge("rewrite_question", "generate_query_or_respond")
workflow.add_edge("generate_answer", END)

Ce qui change par rapport au RAG classique tient en deux décisions : ne pas chercher quand c'est inutile, et ne pas répondre à partir de passages jugés mauvais.

Ce que l'agentique apporte

  • Les questions en plusieurs temps. « Quel fournisseur a livré la pièce défectueuse signalée dans le rapport qualité de mars, et quel est son délai contractuel ? » demande deux recherches successives, la seconde dépendant de la première.
  • Les questions mal formulées. La reformulation rattrape une première recherche infructueuse.
  • Plusieurs sources. L'agent peut choisir entre plusieurs outils : index documentaire, base de données, annuaire.

Le tutoriel RAG de LangChain pousse plus loin avec Deep Agents : liste de tâches de recherche, sous-agents qui lisent et résument en parallèle, évaluateur qui fait réviser la réponse selon une grille (voir RAG avec LangChain).

Ce qu'il coûte

Anthropic le résume : les systèmes agentiques échangent souvent de la latence et du coût contre de meilleures performances. Chaque décision de l'agent (chercher, juger, reformuler) est un appel au modèle. Une question qui coûtait un appel dans un RAG classique peut en coûter plusieurs. Les réponses sont aussi moins prévisibles : deux fois la même question peuvent suivre deux chemins différents, ce qui complique les tests.

Quand s'en passer

Anthropic recommande de chercher la solution la plus simple possible et de n'ajouter de la complexité que lorsque c'est nécessaire, ce qui peut vouloir dire ne pas construire d'agent du tout. En pratique :

  1. Commencez par un RAG classique bien réglé : recherche hybride, retri, citations.
  2. Mesurez sur un jeu de questions réelles (voir Évaluer un RAG).
  3. Isolez les questions qui échouent parce qu'elles demandent plusieurs recherches.
  4. Si elles pèsent assez dans l'usage réel, ajoutez l'agentique, en commençant par la seule étape de jugement et de reformulation.

Points de vigilance

  • Plafonner les boucles. Un agent qui reformule sans fin coûte sans rien rendre : fixez un nombre maximal de recherches par question.
  • Garder les droits. Chaque recherche lancée par l'agent doit appliquer les mêmes filtres d'accès que la recherche classique (voir Droits d'accès).
  • Tracer. Gardez le journal des recherches faites par l'agent : c'est la seule façon de comprendre une mauvaise réponse.

Pour les questions qui portent sur l'ensemble d'un corpus plutôt que sur quelques passages, une autre voie existe : GraphRAG.

Questions fréquentes

Quelle différence entre un RAG classique et un RAG agentique ?

Dans un RAG classique, le code décide : une recherche, puis une réponse. Dans un RAG agentique, le modèle décide s'il faut chercher, juge si les résultats suffisent, et peut reformuler et chercher à nouveau.

Faut-il commencer par un RAG agentique ?

Non. Anthropic recommande de chercher la solution la plus simple possible et de n'ajouter de la complexité que si nécessaire, les agents échangeant souvent de la latence et du coût contre de meilleures performances.

Sources

Pages consultées pour écrire cet article :

  1. https://www.anthropic.com/engineering/building-effective-agents
  2. https://docs.langchain.com/oss/python/langgraph/agentic-rag
  3. https://docs.langchain.com/oss/python/langchain/rag

À lire aussi