DCI peut-il battre le RAG ? Retour d'expérience sur l'agent bash en LCB-FT
Un papier récent défend l'idée qu'un agent avec accès terminal direct au corpus bat les RAG classiques. Nous l'avons testé sur notre corpus AML français. Résultats, surprises et choix produit.
Par Tom Zielinger
Le 3 mai 2026, une équipe de Texas A&M, UCSD et Waterloo publie « Beyond Semantic Similarity: Rethinking Retrieval for Agentic Search via Direct Corpus Interaction » (arXiv 2605.05242). La thèse est provocante : pour les agents capables de raisonner, le retriever sémantique (embeddings + top-K) est devenu un goulet d'étranglement. En remplaçant l'index vectoriel par un simple accès bash au corpus brut, les auteurs gagnent +11 points d'accuracy sur BrowseComp-Plus tout en réduisant le coût de 29 %.
Le pattern qu'ils nomment Direct Corpus Interaction (DCI) est désarmant de simplicité : l'agent reçoit la question + un outil bash, et c'est tout. Il fait grep, find, head, cat jusqu'à trouver. Pas d'embeddings, pas d'index, pas de retriever conventionnel.
Le profil d'un corpus AML/LCB-FT français colle à la thèse du papier : texte structuré par articles numérotés (L.561-15 CMF, Art. 23 AMLR), vocabulaire dense en références exactes (Tracfin, ERMES, COSI, MiCA), taille modérée. Le sweet spot DCI. Donc on a testé. Voici ce qu'on a trouvé.
Le premier test : DCI 40 %, RAG 94 %
10 questions du pilote CASP/VASP d'AML-Bench-FR, comparaison entre notre RAG actuel (Mistral Large + reranker) et un agent DCI sur Haiku 4.5 — l'équivalent du « DCI-Agent-Lite » du papier qui utilise GPT-5.4-nano.
| Métrique | RAG (Mistral) | DCI (Haiku) |
|---|---|---|
| Score global | 94,4 % | 40,0 % |
| MCQ | 100 % | 25 % |
| short_answer / numeric | 100 % | 100 % |
| open_short | 72 % | 70 % |
| Latence p50 | 25 s | 64 s |
| Erreurs API | 0 | 4 |
Verdict apparent : RAG écrase DCI. Mais en regardant le détail des prédictions DCI, on découvre quatre réponses tronquées à cinq caractères et quatre erreurs API non récupérées. Quelque chose cloche, et ce n'est pas DCI lui-même.
Trois biais d'implémentation, pas une faiblesse du paradigme
L'analyse fine des prédictions révèle trois biais qui expliquent l'essentiel de l'écart, indépendamment de la qualité de DCI :
D'abord, le budget de génération est calibré pour un LLM, pas pour un agent. Sur une question MCQ, on alloue 50 tokens — suffisant pour une lettre, mortel pour un agent qui doit raisonner avant d'appeler un outil. Le modèle commence sa phrase « Je vais chercher l'article L.561… » et se fait couper avant le moindre tool call. Score 0 sur quatre questions.
Ensuite, le sandbox bash est trop strict. Plusieurs commandes légitimes se font rejeter parce que les patterns de sécurité matchent à l'intérieur des arguments. Sur une question particulière, 50 tentatives consécutives sont refusées et l'agent épuise son budget sans avoir pu chercher.
Enfin, l'extracteur de réponse est conçu pour les LLM laconiques, pas pour un agent verbeux. Le grader cherche la lettre [A-E] dans la réponse ; l'agent écrit « Après analyse, la bonne réponse est C » et le grader chope le A de « analyse ». Solution : un marqueur de sortie obligatoire et un extracteur qui le priorise.
Ces trois fixes ramènent le score MCQ vers la parité. Le constat important : ce n'est pas DCI qui sous-performe, c'est l'intégration dans notre pipeline qui présupposait un LLM direct.
Le second test : DCI sur Mistral, et les murs du rate limit
Une fois les fixes appliqués, on a relancé sur Mistral (Magistral pour les capacités reasoning, plus adapté au profil multi-tool-use). Nouveau problème : les agents DCI font typiquement 15-30 appels modèle par question. Sur Mistral free tier (60 req/min), un seul agent DCI sature le quota en moins d'une minute. Erreurs 429 sur 4 questions sur 5 du run.
La leçon est moins technique que philosophique : DCI déplace le centre de gravité du coût. RAG c'est un appel modèle riche en contexte ; DCI c'est beaucoup de petits appels modèle pauvres en contexte mais qui composent. Le quota d'appels devient le bottleneck, pas le nombre de tokens.
Solution implémentée : un rate limiter avec retry exponentiel sur 429 (3 s / 8 s / 15 s) et un cap conservatif côté client. Le bench DCI tourne maintenant sans erreur sur Mistral, simplement plus lentement (45-90 s par question).
Où DCI gagne, où il perd
Sur les short_answer numériques (« Quel délai de transmission DS à Tracfin ? », « Quel seuil COSI ? »), DCI atteint la parité avec RAG (100 %). C'est cohérent avec la thèse du papier : grep sur des termes précis trouve les références exactes (R.561-31, 8 000 €) sans bruit sémantique.
Sur les open_short, DCI est à -2 pp de RAG sur cet échantillon. Pas de gap significatif. Le papier prédisait une parité ou un léger avantage RAG sur les questions de synthèse multi-articles ; la direction est cohérente.
Sur les MCQ, le gap apparent est dû aux biais d'implémentation décrits plus haut, pas à une faiblesse intrinsèque de DCI.
L'intuition produit qu'on retient : DCI est probablement intéressant sur les questions à référence exacte (article précis, seuil, date) et probablement à parité sur les questions de synthèse. La latence et le coût supplémentaires ne se justifient que sur le premier segment.
La trace d'audit, là où DCI surprend agréablement
Une question qu'on n'avait pas anticipée : qu'est-ce qu'on montre à l'auditeur sur une réponse DCI ? Sur un RAG, la trace expose les chunks (référence, snippet, score reranker). Sur DCI, il n'y a pas de chunks au sens du retrieval — il y a une trajectoire de commandes.
On expose donc deux niveaux : la liste détaillée des commandes bash exécutées (chaque grep, cat, head avec son timing) et les fichiers du corpus que l'agent a réellement touchés (extraits par regex sur les chemins). C'est, paradoxalement, plus transparent qu'un RAG classique où le top-K est filtré silencieusement par le reranker. Un MLRO qui audite une réponse DCI voit exactement les recherches que l'agent a faites, dans l'ordre, avec les résultats.
C'est un argument d'audit non négligeable pour un secteur où le contrôle ACPR-Tracfin attend de pouvoir reconstituer pas à pas le raisonnement.
Le choix produit : 5 niveaux d'analyse plutôt qu'un
Notre conviction après ces deux semaines : DCI n'est pas un remplacement de RAG, c'est un complément pour des cas d'usage spécifiques. Sur les questions factuelles à référence exacte avec un budget temps confortable, DCI peut apporter une précision et une traçabilité supérieures. Sur les questions courantes, RAG reste imbattable en coût et latence.
D'où le choix de l'exposer comme niveau d'analyse premium, pas comme stack par défaut. Sur le chat connecté, l'utilisateur peut choisir parmi cinq niveaux :
| Niveau | Stack | Latence type |
|---|---|---|
| AML-1 (défaut) | Mistral Large · RAG hybride · LLM-judge rerank | ~20 s |
| AML-2 | Mistral Large · Cohere rerank production | ~15 s |
| AML-3 Beta · Premium | Magistral · DCI · sovereign EU | ~60-120 s |
| AML-4 Beta · Premium | Claude Haiku 4.5 · DCI | ~30-60 s |
| AML-5 Beta · Premium | Claude Sonnet 4.6 · DCI | ~60-180 s |
AML-1 et AML-2 sont disponibles sur le chat guest sans création de compte. AML-3, AML-4 et AML-5 sont réservés aux comptes payants, en bêta.
Ce qu'on a appris
DCI déplace le travail. Au lieu d'optimiser un retriever pour donner les bons chunks au modèle, on donne au modèle les bons outils pour chercher lui-même. Pour un MLRO, cette différence se voit dans deux dimensions concrètes : la traçabilité (DCI expose les recherches, RAG expose les chunks) et le profil temps-coût (DCI plus lent et plus cher mais potentiellement plus précis sur le factuel exact).
Le papier ne dit pas que DCI est universellement meilleur ; il dit que dans certaines configurations, sur certains types de questions, avec certains modèles, DCI apporte une amélioration mesurable. Nos tests préliminaires sur 10 questions confirment cette direction sans permettre de chiffrer l'avantage.
Le test grandeur nature suit. La méthodologie est publique, les scripts d'export et de bench restent ouverts, et chaque trajectoire est observable post-hoc. L'objectif n'est pas de prouver que DCI gagne, mais de mesurer où et à quel coût il gagne. C'est cette mesure qui permet à un MLRO de choisir le bon niveau d'analyse pour la bonne question.
Le papier original : Li et al., « Beyond Semantic Similarity: Rethinking Retrieval for Agentic Search via Direct Corpus Interaction », arXiv 2605.05242, 3 mai 2026.