[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portal-settings:stajic:fr":3,"public-menus:all":38,"post:rag-failed-but-which-layer-actually-failed-a-diagnostic-method:fr":205,"related:post:rag-failed-but-which-layer-actually-failed-a-diagnostic-method:fr:1":1684},{"statusCode":4,"data":5,"message":37},200,{"tenantId":6,"lang":7,"defaultLang":8,"siteUrl":9,"contactEmail":10,"brandName":11,"logoUrl":12,"siteName":11,"siteDescription":13,"ogImage":10,"robotsIndex":14,"socialLinks":10,"reservedSlugs":10,"seoPolicy":15},"stajic","fr","de","https:\u002F\u002Fstajic.de",null,"Stajic Platform","\u002FLogo_Planet.svg","Stajic Portal",true,{"branding":16,"relatedContent":17,"crossDomainLinks":18},{"logoUrl":12},{"enabled":14},[19,22,25,28,31,34],{"url":20,"label":21,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Ffigure.rocks","figure.rocks",{"url":23,"label":24,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Floving.rocks","loving.rocks",{"url":26,"label":27,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.com","bazify.com",{"url":29,"label":30,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.de","bazify.de",{"url":32,"label":33,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.at","bazify.at",{"url":35,"label":36,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.ba","bazify.ba","Portal settings resolved",[39,45],{"id":40,"name":41,"location":42,"isActive":14,"isDefault":43,"items":44},1,"main-navigation","header",false,[],{"id":46,"name":47,"location":48,"isActive":14,"isDefault":14,"items":49},4,"main-menu","sidebar",[50,66,79,93,103,118,133],{"id":51,"title":52,"url":60,"target":61,"icon":62,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":64,"portfolioId":10,"children":65},"item-18",{"de":53,"en":54,"es":55,"fr":56,"it":54,"ru":57,"sr":58,"zh":59},"Startseite","Home","Inicio","Accueil","Главная","Почетна","首页","\u002Ffull-stack-web-developer-munich-performance-seo-and-maintainable-builds","_self","i-lucide-home","page",111,[],{"id":67,"title":68,"url":75,"target":61,"icon":76,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":77,"portfolioId":10,"children":78},"item-22",{"de":69,"en":69,"es":70,"fr":69,"it":71,"ru":72,"sr":73,"zh":74},"Vision","Visión","Visione","Видение","Визија","想象","\u002Fueber-uns-webdesign-muenchen-webaplikation","i-lucide-eye",113,[],{"id":80,"title":81,"url":89,"target":61,"icon":90,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":91,"portfolioId":10,"children":92},"item-19",{"de":82,"en":83,"es":84,"fr":83,"it":85,"ru":86,"sr":87,"zh":88},"Leistungen","Services","Servicios","Servizi","Услуги","Услуге","服务","\u002Fservices-dienstleistungen-muenchen","i-lucide-wrench",116,[],{"id":94,"title":95,"url":99,"target":61,"icon":100,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":101,"portfolioId":10,"children":102},"item-23",{"de":96,"en":96,"es":96,"fr":96,"it":96,"ru":97,"sr":97,"zh":98},"Blog","Блог","博客","\u002Fblog","i-lucide-book-open",112,[],{"id":104,"title":105,"url":114,"target":61,"icon":115,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":116,"portfolioId":10,"children":117},"item-32",{"de":106,"en":107,"es":108,"fr":109,"it":110,"ru":111,"sr":112,"zh":113},"Neue Technologien","New Technologies","Nuevas tecnologías","Nouvelles technologies","Nuove tecnologie","Новые технологии","Нове технологије","新技术！","\u002Fneue-webtechnologien","i-lucide-sparkles",122,[],{"id":119,"title":120,"url":129,"target":61,"icon":130,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":131,"portfolioId":10,"children":132},"item-20",{"de":121,"en":122,"es":123,"fr":124,"it":125,"ru":126,"sr":127,"zh":128},"Kontakt","Contact us!","Contacto","Contact","Contatto","Контакт","Контактирајте нас","联系我们！","\u002Fcontact","i-lucide-mail",115,[],{"id":134,"title":135,"url":144,"target":61,"icon":145,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":146,"portfolioId":10,"children":147},"item-21",{"de":136,"en":137,"es":138,"fr":139,"it":140,"ru":141,"sr":142,"zh":143},"Unsere Arbeit","Our Work","Nuestro trabajo","Nos réalisations","I nostri lavori","Наши работы","Наши радови","文件夹","\u002Fportfolio","i-lucide-briefcase",114,[148,161,175,181,193],{"id":149,"title":150,"url":144,"target":61,"icon":159,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":146,"portfolioId":10,"children":160},"item-24",{"de":151,"en":152,"es":153,"fr":154,"it":155,"ru":156,"sr":157,"zh":158},"Alle Projekte","All Projects","Todos los proyectos","Tous les projets","Tutti i progetti","Все проекты","Сви пројекти","所有项目","i-lucide-grid-3x3",[],{"id":162,"title":163,"url":171,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":174},"item-29",{"de":164,"en":165,"es":166,"fr":167,"it":168,"ru":169,"sr":170,"zh":143},"Local Roots, Global Reach","Local Roots - Global Reach","Empresa local ","Entreprise locale","Azienda locale","Местная компания","Локално предузеће глобално тржиште","\u002Fportfolio\u002Flocal-roots-global-reach-communication-media-systems-for-modern-business","i-lucide-folder","custom",[],{"id":176,"title":177,"url":179,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":180},"item-28",{"de":178,"en":178,"es":178,"fr":178,"it":178,"ru":178,"sr":178,"zh":178},"Solr Suggester","\u002Fportfolio\u002Fsolr-fuzzy-suggester-und-solr-infix-suggester-abfrage-ueber-ajax-und-filterung",[],{"id":182,"title":183,"url":191,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":192},"item-27",{"de":184,"en":185,"es":186,"fr":187,"it":188,"ru":189,"sr":190,"zh":185},"Firmenwebseite SEO","Company Website SEO","Sitio web corporativo SEO","Site web d’entreprise SEO","Sito web aziendale SEO","Корпоративный сайт SEO","Пословна веб-страница SEO","\u002Fportfolio\u002Fseo-sem-branding-mobile-webseite-muenchen",[],{"id":194,"title":195,"url":203,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":204},"item-31",{"de":196,"en":197,"es":198,"fr":199,"it":200,"ru":201,"sr":202,"zh":197},"Digitalisierungsportal","Digitalization Portal","Portal de digitalización","Portail de numérisation","Portale di digitalizzazione","Портал цифровизации","Портал за дигитализацију","\u002Fportfolio\u002Fdigitalisierungsportal-archiv-museum-bibliothek-ead-lido-mets-mods",[],{"statusCode":4,"data":206,"message":1683},{"id":207,"title":208,"slug":209,"content":210,"contentJson":211,"excerpt":835,"featuredImage":836,"featuredImageAlt":837,"featuredImageCaption":10,"featuredImageTitle":10,"featuredImageCopyright":10,"featuredImageAuthor":10,"featuredImageSourceUrl":10,"featuredImageLicense":10,"featuredImageIsAiGenerated":43,"status":838,"publishedAt":839,"createdAt":840,"updatedAt":841,"seoLocalePaths":842,"categories":851,"author":864,"translations":869},"469","Échec du RAG — mais quelle couche a réellement échoué ? Une méthode de diagnostic","rag-failed-but-which-layer-actually-failed-a-diagnostic-method","{\"time\":1790369150504,\"blocks\":[{\"id\":\"intro\",\"type\":\"paragraph\",\"data\":{\"text\":\"Un système RAG renvoie une réponse faible, erronée, incomplète ou non étayée. Le diagnostic habituel est « la récupération a échoué » ou « le modèle a halluciné ». Ces deux étiquettes sont trop larges pour être utiles. Un pipeline RAG en production peut échouer avant la récupération, pendant la récupération, lors du classement, lors de l'assemblage du contexte, pendant la génération, ou après la génération lorsque les preuves et la validité sont vérifiées.\"},\"tunes\":{}},{\"id\":\"direct\",\"type\":\"callout\",\"data\":{\"variant\":\"info\",\"title\":\"Réponse directe\",\"body\":\"\u003Cstrong>Ne déboguez pas le RAG comme un seul composant.\u003C\u002Fstrong> Diagnostiquez-le comme une chaîne de couches testables indépendamment. Déterminez d'abord si la preuve requise existe dans une source faisant autorité. Testez ensuite la construction de la requête, la récupération des candidats, le classement, l'assemblage du contexte, la génération, l'attribution des preuves et la fraîcheur. La technique d'isolation la plus rapide est un \u003Cstrong>test de contexte oracle\u003C\u002Fstrong> : fournissez manuellement la preuve correcte au générateur. Si la réponse devient correcte, la défaillance dominante se situe en amont de la génération. Si elle reste erronée, la récupération n'est pas le problème principal.\"},\"tunes\":{}},{\"id\":\"model-note\",\"type\":\"callout\",\"data\":{\"variant\":\"note\",\"title\":\"À propos du modèle de diagnostic\",\"body\":\"La pile de défaillances RAG présentée dans cet article est un modèle de diagnostic pratique, et non une norme industrielle formelle. Les plateformes existantes séparent déjà les métriques de récupération seule des métriques de récupération et génération ; ce modèle étend cette séparation en une méthode de débogage de production étape par étape.\"},\"tunes\":{}},{\"id\":\"toc\",\"type\":\"tableOfContents\",\"data\":{\"title\":\"Sommaire\",\"minLevel\":2,\"maxLevel\":3},\"tunes\":{}},{\"id\":\"h-not-diagnosis\",\"type\":\"header\",\"data\":{\"text\":\"Pourquoi « le RAG a échoué » n'est pas un diagnostic\",\"level\":2},\"tunes\":{}},{\"id\":\"p-not-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"La génération augmentée par récupération combine plusieurs mécanismes : une requête utilisateur est interprétée, une ou plusieurs recherches sont construites, le matériel candidat est récupéré, les résultats sont filtrés ou reclassés, les preuves sélectionnées sont insérées dans un contexte de modèle, et un modèle génère une réponse. Les systèmes de production peuvent ajouter des autorisations, des filtres de métadonnées, des règles de fraîcheur, des citations, la réécriture de requêtes, la recherche hybride, des appels d'outils, de la mémoire et un état externe.\"},\"tunes\":{}},{\"id\":\"p-not-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Une réponse finale erronée ne vous indique donc pas quel composant a échoué. Le modèle a peut-être reçu les mauvaises preuves. Il a peut-être reçu les bonnes preuves mélangées à trop de bruit. Les preuves peuvent être correctes mais obsolètes. La source n'a peut-être jamais contenu la réponse. Ou le modèle a peut-être ignoré un contexte parfaitement adéquat.\"},\"tunes\":{}},{\"id\":\"p-not-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Les recommandations d'OpenAI sur le RAG établissent déjà une distinction fondamentale entre l'échec de récupération et l'échec du modèle : un système peut fournir le mauvais contexte, ou fournir le bon contexte et néanmoins générer une réponse erronée. AWS sépare de même l'évaluation de la récupération seule de l'évaluation de la récupération et génération. Pour le diagnostic en production, cette distinction doit être poussée plus loin.\"},\"tunes\":{}},{\"id\":\"h-stack\",\"type\":\"header\",\"data\":{\"text\":\"La pile de défaillances RAG\",\"level\":2},\"tunes\":{}},{\"id\":\"table-stack\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Couche\",\"Question\",\"Défaillance typique\"],[\"1. Couverture des sources\",\"La preuve requise existe-t-elle dans une source faisant autorité et autorisée ?\",\"Le corpus ne peut pas du tout répondre à la question\"],[\"2. Construction de la requête\",\"Le système a-t-il cherché la bonne chose ?\",\"L'intention, les entités, les filtres, la langue ou les contraintes temporelles sont perdus\"],[\"3. Récupération des candidats\",\"La preuve pertinente est-elle entrée dans l'ensemble des candidats ?\",\"Faible rappel ; le bon fragment n'est jamais récupéré\"],[\"4. Classement et filtrage\",\"La bonne preuve a-t-elle survécu et s'est-elle classée assez haut ?\",\"La preuve pertinente est enfouie, filtrée ou surpassée par un texte superficiellement similaire\"],[\"5. Assemblage du contexte\",\"Le modèle a-t-il reçu des preuves utilisables ?\",\"Troncature, mauvaises limites de fragments, doublons, passages contradictoires ou surcharge de contexte\"],[\"6. Génération\",\"Le modèle a-t-il utilisé correctement les preuves fournies ?\",\"Inférence non étayée, échec d'instruction, erreur de raisonnement ou inadéquation de refus\"],[\"7. Attribution des preuves\",\"La réponse peut-elle être retracée jusqu'aux preuves qu'elle prétend utiliser ?\",\"Citations manquantes, faibles ou incorrectes ; les affirmations dépassent le support récupéré\"],[\"8. Validité et fraîcheur\",\"La preuve est-elle encore valide pour cette question maintenant ?\",\"Une preuve historique correcte est réutilisée en dehors de sa période de validité, de sa version, de sa juridiction ou de son état\"]]},\"tunes\":{}},{\"id\":\"h-source\",\"type\":\"header\",\"data\":{\"text\":\"Couche 1 — Couverture des sources : le système peut-il répondre à cela du tout ?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-source-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Avant de régler les embeddings, les rerankers ou les prompts, vérifiez que la réponse existe dans l'espace de connaissances que le système est autorisé à utiliser. Cela semble évident, mais de nombreux échecs RAG sont en réalité des échecs de corpus. Le fait demandé peut être absent, caché dans une pièce jointe non indexée, disponible uniquement dans un document plus récent, stocké dans un système extérieur au corpus RAG, ou bloqué par des autorisations.\"},\"tunes\":{}},{\"id\":\"p-source-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Une métrique de récupération ne peut pas récupérer une information qui n'a jamais été indexée. Un top-k plus grand ne peut pas récupérer un document que le pipeline ne contient pas. Si le test de couverture des sources échoue, la correction appropriée est l'ingestion, la sélection des sources, les autorisations, ou un comportement explicite de « non répondable à partir des preuves disponibles ».\"},\"tunes\":{}},{\"id\":\"source-warning\",\"type\":\"callout\",\"data\":{\"variant\":\"warning\",\"title\":\"Schéma de défaillance\",\"body\":\"Les équipes ajustent souvent la récupération sur des questions auxquelles le corpus ne peut pas réellement répondre. Cela peut rendre le récupérateur meilleur pour trouver du texte connexe tout en laissant la lacune d'information sous-jacente intacte.\"},\"tunes\":{}},{\"id\":\"h-query\",\"type\":\"header\",\"data\":{\"text\":\"Couche 2 — Construction de la requête : le système a-t-il posé la bonne question au corpus ?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-query-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"La requête utilisateur n'est pas toujours la requête de récupération. Les systèmes de production réécrivent les questions, résolvent les pronoms, extraient les entités, traduisent les langues, ajoutent des contraintes de métadonnées, divisent les questions complexes ou génèrent plusieurs recherches. Chaque transformation peut améliorer la récupération, mais chaque transformation peut aussi détruire de l'information.\"},\"tunes\":{}},{\"id\":\"p-query-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Une demande telle que « La politique s'applique-t-elle encore aux sous-traitants en Allemagne après la mise à jour de septembre ? » contient au moins une entité, une population, une juridiction et une limite temporelle. Une requête réécrite qui devient « politique des sous-traitants » peut récupérer un texte sémantiquement connexe tout en perdant les variables qui déterminent si la réponse est valide.\"},\"tunes\":{}},{\"id\":\"h-retrieval\",\"type\":\"header\",\"data\":{\"text\":\"Couche 3 — Récupération des candidats : les preuves pertinentes ont-elles été incluses dans l'ensemble ?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-ret-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"La récupération des candidats est avant tout un problème de rappel. La question diagnostique n'est pas encore de savoir si le meilleur résultat est classé premier ; il s'agit de savoir si des preuves pertinentes apparaissent quelque part dans le pool de candidats. Si la source correcte connue n'apparaît pas, examinez l'indexation, le découpage, les embeddings, la correspondance lexicale, les métadonnées, la recherche hybride, la gestion des langues, les synonymes et l'expansion des requêtes.\"},\"tunes\":{}},{\"id\":\"p-ret-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"C'est là que l'évaluation de la récupération seule est précieuse. AWS expose la pertinence du contexte et la couverture du contexte pour l'évaluation RAG en récupération seule. L'habitude de production importante est d'évaluer la récupération avant la génération afin qu'une réponse finale soignée ne puisse pas masquer un ensemble de candidats faible.\"},\"tunes\":{}},{\"id\":\"h-ranking\",\"type\":\"header\",\"data\":{\"text\":\"Couche 4 — Classement et filtrage : les bonnes preuves ont-elles été écartées ou enfouies ?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-rank-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Un système peut avoir un bon rappel et échouer quand même parce que les preuves pertinentes se classent en dessous de matériel bruité mais sémantiquement similaire. Les rerankers, les boosts de récence, les pondérations d'autorité, les préférences linguistiques, les filtres de locataires, les contrôles d'accès, les filtres de statut de produit et la déduplication modifient tous ce qui survit dans le contexte final.\"},\"tunes\":{}},{\"id\":\"p-rank-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Le débogage doit donc conserver la liste complète des candidats, pas seulement le top-k final. Si la preuve de référence a été récupérée au rang 18 et qu'un reranker l'a supprimée, le correctif n'est pas le même qu'un échec de récupération.\"},\"tunes\":{}},{\"id\":\"h-context\",\"type\":\"header\",\"data\":{\"text\":\"Couche 5 — Assemblage du contexte : des preuves utiles sont-elles devenues un contexte utilisable ?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-ctx-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Le succès de la récupération ne garantit pas le succès du contexte. Les segments pertinents peuvent être tronqués, séparés de leurs qualificatifs, dupliqués jusqu'à dominer le prompt, mélangés avec des versions contradictoires, ou entourés de suffisamment de texte non pertinent pour que le passage décisif perde sa saillance.\"},\"tunes\":{}},{\"id\":\"p-ctx-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Les limites des segments sont particulièrement importantes. Une phrase peut contenir la règle tandis que la phrase suivante contient l'exception. Si elles sont indexées séparément et que seule la première est récupérée, le récupérateur peut sembler pertinent alors que le contexte assemblé devient trompeur.\"},\"tunes\":{}},{\"id\":\"h-generation\",\"type\":\"header\",\"data\":{\"text\":\"Couche 6 — Génération : le modèle peut-il utiliser correctement des preuves correctes ?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-gen-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Une fois que le système a démontré qu'il fournissait des preuves suffisantes, la génération devient testable indépendamment. Le modèle peut généraliser à l'excès, combiner des passages incompatibles, ignorer une déclaration négative, ne pas suivre le format de réponse demandé, inventer un pont entre des faits, ou répondre à partir de sa mémoire paramétrique au lieu des preuves récupérées.\"},\"tunes\":{}},{\"id\":\"p-gen-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"C'est pourquoi la seule exactitude de bout en bout est insuffisante pour le diagnostic. OpenAI recommande l'évaluation comme un moyen structuré de comprendre le comportement d'une application, tandis que les conseils d'Anthropic sur l'évaluation des agents mettent l'accent sur les essais multiples, les évaluateurs, les traces et les cas d'échec réalistes. Pour le RAG, le générateur doit être testé à la fois avec une récupération normale et avec un contexte de référence contrôlé.\"},\"tunes\":{}},{\"id\":\"h-evidence\",\"type\":\"header\",\"data\":{\"text\":\"Couche 7 — Attribution des preuves : la réponse est-elle réellement étayée ?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-evidence-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Une réponse plausible avec des citations peut encore être faiblement fondée. Le document cité peut être pertinent pour le sujet mais ne pas étayer l'affirmation spécifique. Une phrase peut être étayée tandis qu'une autre est inférée. Une citation peut pointer vers une source qui contredit la réponse une fois ses conditions lues.\"},\"tunes\":{}},{\"id\":\"p-evidence-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"L'évaluation des citations intervient donc après la génération. AWS distingue la précision des citations de la couverture des citations : si les passages cités sont correctement cités et si la réponse est suffisamment étayée par des citations. En production, le soutien au niveau des affirmations est plus utile que de traiter la présence d'une citation quelconque comme une preuve de qualité.\"},\"tunes\":{}},{\"id\":\"h-validity\",\"type\":\"header\",\"data\":{\"text\":\"Couche 8 — Validité et fraîcheur : les preuves étaient-elles correctes pour cette version de la réalité ?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-valid-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Le RAG peut récupérer une source parfaitement authentique, hautement pertinente et fidèlement citée et produire néanmoins une réponse erronée si la source n'est plus valide pour la question actuelle. Les politiques changent. Les API sont dépréciées. Les prix évoluent. Le comportement des logiciels change entre les versions. L'inventaire des produits change. Les permissions changent. Les correctifs de jeu modifient les mécaniques.\"},\"tunes\":{}},{\"id\":\"p-valid-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Il s'agit d'une classe d'échec distincte de l'hallucination. La preuve est réelle ; son applicabilité est erronée. Un système robuste a donc besoin d'horodatages, de métadonnées de version ou de juridiction lorsque cela est pertinent, d'autorité de la source, de règles de remplacement et d'un mécanisme explicite pour décider quand les preuves plus anciennes doivent être restreintes ou abandonnées.\"},\"tunes\":{}},{\"id\":\"h-oracle\",\"type\":\"header\",\"data\":{\"text\":\"La méthode d'isolation la plus rapide : le test du contexte oracle\",\"level\":2},\"tunes\":{}},{\"id\":\"p-oracle-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"La première séparation la plus utile est simple : fournissez manuellement au générateur un petit ensemble de preuves que vous savez suffisantes pour répondre à la question. Gardez la tâche et la réponse attendue inchangées.\"},\"tunes\":{}},{\"id\":\"oracle-comparison\",\"type\":\"comparison\",\"data\":{\"title\":\"Test du contexte oracle\",\"layout\":\"table\",\"columns\":[{\"id\":\"result\",\"label\":\"Résultat\"},{\"id\":\"meaning\",\"label\":\"Interprétation probable\"},{\"id\":\"next\",\"label\":\"Prochaine étape de diagnostic\"}],\"rows\":[{\"id\":\"oracle-pass\",\"label\":\"La réponse devient correcte\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"oracle-fail\",\"label\":\"La réponse reste incorrecte\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"oracle-partial\",\"label\":\"La réponse s'améliore mais reste incomplète\",\"values\":[\"\",\"\",\"\"]}]},\"tunes\":{}},{\"id\":\"oracle-tip\",\"type\":\"callout\",\"data\":{\"variant\":\"tip\",\"title\":\"Pourquoi ce test est puissant\",\"body\":\"Le test du contexte oracle retire la majeure partie du pipeline de récupération de l'expérience. Il ne prouve pas que la génération est parfaite, mais il fournit un contrefactuel rapide : \u003Cstrong>que ferait le modèle si la récupération avait déjà réussi ?\u003C\u002Fstrong>\"},\"tunes\":{}},{\"id\":\"h-sequence\",\"type\":\"header\",\"data\":{\"text\":\"Une séquence de diagnostic en production\",\"level\":2},\"tunes\":{}},{\"id\":\"diag-flow\",\"type\":\"processFlow\",\"data\":{\"title\":\"Diagnostiquer la défaillance depuis les preuves jusqu'à la réponse\",\"orientation\":\"auto\",\"steps\":[{\"label\":\"1. Définir l'affirmation attendue\",\"description\":\"Écrivez la réponse attendue, l'incertitude autorisée et les preuves qui la justifieraient.\"},{\"label\":\"2. Vérifier la couverture des sources\",\"description\":\"Confirmez que des preuves faisant autorité et autorisées existent dans l'ensemble des sources indexées ou accessibles.\"},{\"label\":\"3. Exécuter le test du contexte oracle\",\"description\":\"Fournissez directement des preuves de référence suffisantes au générateur et observez si la réponse devient correcte.\"},{\"label\":\"4. Inspecter la requête de récupération\",\"description\":\"Vérifiez les réécritures, les entités, les filtres, la langue, les contraintes temporelles, la décomposition et les hypothèses cachées.\"},{\"label\":\"5. Inspecter les candidats avant le reclassement\",\"description\":\"Déterminez si les preuves pertinentes ont été récupérées et enregistrez leur rang.\"},{\"label\":\"6. Inspecter le classement et l'assemblage du contexte\",\"description\":\"Vérifiez le reclassement, les filtres de métadonnées, la troncature, les limites de segments, les doublons, les conflits et la composition du top-k.\"},{\"label\":\"7. Évaluer séparément la génération et les citations\",\"description\":\"Mesurez l'exactitude de la réponse, l'exhaustivité, la fidélité et le support des preuves au niveau des affirmations.\"},{\"label\":\"8. Tester les limites de validité\",\"description\":\"Vérifiez si la version, la date, l'état, la juridiction, les autorisations ou des preuves remplaçantes modifient la réponse.\"}]},\"tunes\":{}},{\"id\":\"h-one-change\",\"type\":\"header\",\"data\":{\"text\":\"Ne changez pas trois couches à la fois\",\"level\":2},\"tunes\":{}},{\"id\":\"p-one-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Une erreur de débogage courante consiste à modifier les embeddings, les tailles de segments, le top-k, les prompts et le modèle en une seule itération. Si le score s'améliore, vous ne savez pas pourquoi. S'il se dégrade, vous ne savez pas quel changement a causé la régression.\"},\"tunes\":{}},{\"id\":\"p-one-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Traitez le débogage RAG comme un diagnostic expérimental : maintenez autant de constantes que possible dans le pipeline et remplacez un composant incertain par une entrée contrôlée. Les documents de référence isolent la récupération. Les segments de référence isolent la sélection des segments. Un contexte fixe isole la génération. Un modèle fixe isole les changements de récupération. Un corpus fixe isole les changements d'ingestion et d'indexation.\"},\"tunes\":{}},{\"id\":\"h-matrix\",\"type\":\"header\",\"data\":{\"text\":\"Une matrice de défaillance pour les symptômes RAG courants\",\"level\":2},\"tunes\":{}},{\"id\":\"symptom-matrix\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Symptôme\",\"Couches les plus probables à tester en premier\",\"Test discriminant\"],[\"Aucune source pertinente n'apparaît\",\"Couverture des sources → Requête → Récupération des candidats\",\"Recherchez manuellement dans le corpus, puis inspectez la requête réécrite et les candidats non filtrés\"],[\"Une source pertinente apparaît mais la réponse est incorrecte\",\"Assemblage du contexte → Génération\",\"Test du contexte oracle avec la même source réduite aux passages décisifs\"],[\"La réponse est parfois correcte, parfois incorrecte\",\"Classement → Assemblage du contexte → Variabilité de la génération\",\"Répétez les essais en enregistrant l'ensemble récupéré, le rang, le contexte du prompt et la sortie du modèle\"],[\"La réponse cite le bon document mais le surestime\",\"Génération → Attribution des preuves → Validité\",\"Évaluez chaque affirmation par rapport au passage cité exact\"],[\"Les informations anciennes continuent de gagner\",\"Classement → Validité\u002Ffraîcheur\",\"Comparez avec les règles de récence\u002Fremplacement et inspectez les métadonnées\"],[\"La réponse manque une exception\",\"Segmentation → Assemblage du contexte\",\"Vérifiez si la règle et l'exception ont été séparées ou tronquées\"],[\"Ajouter plus de top-k dégrade la qualité\",\"Classement → Surcharge du contexte\",\"Supprimez les segments de faible valeur et comparez avec un ensemble de preuves minimal\"],[\"Changer le modèle corrige la réponse\",\"Génération, mais pas nécessairement la récupération\",\"Répétez avec un contexte récupéré identique pour tous les modèles\"],[\"Changer les embeddings corrige la réponse\",\"Récupération\u002Fclassement\",\"Gardez le générateur et le modèle de contexte constants tout en comparant le rappel des candidats\"]]},\"tunes\":{}},{\"id\":\"h-metrics\",\"type\":\"header\",\"data\":{\"text\":\"Mesurez chaque couche avec la métrique qu'elle peut réellement influencer\",\"level\":2},\"tunes\":{}},{\"id\":\"metrics-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Couche\",\"Mesures utiles\",\"Ce qu'il ne faut pas en déduire\"],[\"Couverture des sources\",\"Taux de questions auxquelles on peut répondre, couverture du corpus, exhaustivité de l'ingestion\",\"Ne blâmez pas les embeddings pour des sources manquantes\"],[\"Récupération des candidats\",\"Rappel@k, taux de succès, couverture du contexte\",\"Un rappel élevé ne prouve pas la qualité du classement\"],[\"Classement\",\"MRR, NDCG, rang de référence, précision@k\",\"Un bon classement ne prouve pas que le générateur a utilisé les preuves\"],[\"Assemblage du contexte\",\"Rétention des preuves, duplication, taux de contradiction, utilisation des tokens\",\"Un grand contexte ne signifie pas un contexte utile\"],[\"Génération\",\"Exactitude, exhaustivité, réussite de la tâche, fidélité\",\"L'exactitude seule ne prouve pas l'ancrage\"],[\"Attribution des preuves\",\"Précision des citations, couverture des citations, support des affirmations\",\"Un nombre de citations n'est pas une qualité de preuve\"],[\"Validité\",\"Fraîcheur, exactitude du remplacement, correspondance version\u002Fjuridiction\",\"Une preuve pertinente n'est pas automatiquement une preuve applicable\"]]},\"tunes\":{}},{\"id\":\"h-correct-answer\",\"type\":\"header\",\"data\":{\"text\":\"Une réponse correcte peut encore masquer un défaut RAG\",\"level\":2},\"tunes\":{}},{\"id\":\"p-correct-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Le problème inverse compte aussi. Un système RAG peut produire la réponse correcte alors que la récupération est défaillante. Le modèle peut déjà connaître la réponse grâce à l'entraînement, l'inférer à partir de preuves faibles ou deviner correctement. Si l'évaluation ne regarde que la réponse finale, le système peut sembler sain jusqu'à ce que la question atteigne des informations qui n'existent que dans le corpus privé.\"},\"tunes\":{}},{\"id\":\"p-correct-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"C'est le même problème de fiabilité qui apparaît plus largement dans les systèmes d'agents : l'exactitude du résultat ne suffit pas à prouver que le chemin d'exécution était fiable. Pour le RAG, les traces doivent conserver au moins la requête de récupération, l'ensemble des candidats, le classement, le contexte final, la réponse, les citations, la version du modèle, la version du corpus\u002Findex et les filtres pertinents.\"},\"tunes\":{}},{\"id\":\"internal-reliability\",\"type\":\"referralArticle\",\"data\":{\"url\":\"https:\u002F\u002Fstajic.de\u002Ffr\u002Fblog\u002Fai-agent-reliability-why-the-final-answer-is-not-enough\",\"title\":\"Fiabilité des agents IA : pourquoi la réponse finale ne suffit pas\",\"excerpt\":\"Une sortie correcte ne prouve pas un raisonnement correct, une exécution sûre ou un système digne de confiance. Cet article étend ce principe du diagnostic RAG aux trajectoires d'agents et à l'assurance opérationnelle.\",\"ctaLabel\":\"Lire l'article associé\"},\"tunes\":{}},{\"id\":\"h-hypotheses\",\"type\":\"header\",\"data\":{\"text\":\"Utilisez des hypothèses concurrentes, pas une explication favorite\",\"level\":2},\"tunes\":{}},{\"id\":\"p-hyp-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Si une mauvaise réponse devient immédiatement « un problème d'embedding », l'enquête est déjà biaisée. Une méthode de débogage plus solide consiste à écrire les hypothèses concurrentes avant de modifier le système : source manquante, mauvaise réécriture de requête, faible rappel de récupération, mauvais reranking, troncature du contexte, versions contradictoires, échec de génération, échec de citation ou preuves obsolètes.\"},\"tunes\":{}},{\"id\":\"p-hyp-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Choisissez ensuite un test qui permettrait de départager ces hypothèses. C'est plus efficace que de collecter davantage d'exemples qui confortent la première explication. Le même principe s'applique au raisonnement technique assisté par IA en général : un diagnostic utile est celui qui survit à des tests discriminants, pas celui qui semble simplement plausible.\"},\"tunes\":{}},{\"id\":\"internal-reasoning\",\"type\":\"referralArticle\",\"data\":{\"url\":\"https:\u002F\u002Fstajic.de\u002Ffr\u002Fblog\u002Ffrom-research-protocol-to-a-general-ai-reasoning-framework\",\"title\":\"Du protocole de recherche à un cadre général de raisonnement IA\",\"excerpt\":\"Une méthode de raisonnement indépendante du domaine pour séparer les preuves des hypothèses, tester des hypothèses concurrentes et utiliser des validateurs spécifiques au domaine.\",\"ctaLabel\":\"Lire le cadre de raisonnement\"},\"tunes\":{}},{\"id\":\"h-change\",\"type\":\"header\",\"data\":{\"text\":\"Qu'est-ce qui changerait cette réponse ?\",\"level\":2},\"tunes\":{}},{\"id\":\"p-change-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Les couches de diagnostic exactes changent avec l'architecture. Une application RAG simple à document unique peut ne pas avoir de réécriture de requête, de reranker ou de couche de citation. Un système de récupération agentique peut ajouter de la planification, des recherches multiples, la sélection d'outils, la mémoire, les permissions et la collecte itérative de preuves. Une recherche dans une base de données structurée peut ne pas utiliser du tout de chunks ni d'embeddings.\"},\"tunes\":{}},{\"id\":\"p-change-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"La méthode fondamentale tient toujours : identifier les composants qui peuvent modifier indépendamment le résultat, construire des tests contrôlés qui remplacent les composants incertains par des entrées fiables, et mesurer chaque composant à l'aide de preuves appropriées à cette couche.\"},\"tunes\":{}},{\"id\":\"h-limitations\",\"type\":\"header\",\"data\":{\"text\":\"Limites\",\"level\":2},\"tunes\":{}},{\"id\":\"p-limit-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Les défaillances réelles sont souvent couplées. Une requête faible peut réduire le rappel, ce qui modifie le reranking, ce qui modifie le contexte, ce qui augmente la variance de génération. Le test du contexte oracle est un raccourci de diagnostic, pas la preuve qu'un composant est seul responsable. Les jeux de données d'évaluation peuvent aussi être non représentatifs, et les évaluateurs basés sur des modèles peuvent introduire leurs propres erreurs.\"},\"tunes\":{}},{\"id\":\"p-limit-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"La pile proposée est donc mieux utilisée comme une structure d'enquête : journaliser le pipeline, isoler les variables, reproduire les défaillances, tester des explications concurrentes et maintenir une évaluation de bout en bout après les corrections au niveau des couches.\"},\"tunes\":{}},{\"id\":\"h-conclusion\",\"type\":\"header\",\"data\":{\"text\":\"Conclusion\",\"level\":2},\"tunes\":{}},{\"id\":\"p-conclusion-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"« Le RAG a échoué » devrait être le début de l'enquête, pas la conclusion. Un diagnostic utile identifie si le système manquait de preuves, a mal cherché, n'a pas réussi à les récupérer, les a mal classées, a assemblé un contexte inutilisable, a généré incorrectement, a mal attribué les affirmations ou a appliqué des preuves en dehors de leur limite de validité.\"},\"tunes\":{}},{\"id\":\"p-conclusion-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"La règle pratique est simple : remplacer l'incertitude par des preuves contrôlées, une couche à la fois. Commencez par le test du contexte oracle. Séparez l'évaluation de la récupération seule de l'évaluation de la génération. Conservez la trace complète. Corrigez ensuite le composant qui a réellement échoué au lieu de régler toute la pile RAG à l'intuition.\"},\"tunes\":{}},{\"id\":\"h-faq\",\"type\":\"header\",\"data\":{\"text\":\"FAQ\",\"level\":2},\"tunes\":{}},{\"id\":\"faq\",\"type\":\"faq\",\"data\":{\"title\":\"Diagnostic des défaillances RAG\",\"items\":[{\"id\":\"faq1\",\"question\":\"Comment puis-je savoir si c'est la récupération RAG ou le LLM qui a échoué ?\",\"answer\":\"Fournissez manuellement au modèle un petit ensemble de preuves correctes connues. Si la réponse devient correcte, examinez la couverture des sources, la construction de la requête, la récupération, le classement et l'assemblage du contexte. Si le modèle échoue encore avec des preuves suffisantes, la récupération n'est pas le problème principal.\"},{\"id\":\"faq2\",\"question\":\"Le RAG peut-il échouer même lorsque le bon document a été récupéré ?\",\"answer\":\"Oui. Le passage pertinent peut être classé trop bas, tronqué, séparé d'une exception, mélangé à des preuves contradictoires, submergé par un contexte non pertinent ou utilisé incorrectement par le générateur.\"},{\"id\":\"faq3\",\"question\":\"L'exactitude de la réponse suffit-elle pour évaluer un système RAG ?\",\"answer\":\"Non. Un modèle peut produire une réponse correcte malgré une récupération faible en s'appuyant sur ses connaissances préalables ou par hasard. Évaluez la récupération et le soutien des preuves séparément de l'exactitude de la réponse finale.\"},{\"id\":\"faq4\",\"question\":\"Que dois-je journaliser lors du débogage d'un RAG ?\",\"answer\":\"Au minimum, journalisez la requête de l'utilisateur, la requête de récupération transformée, les filtres, les documents candidats et leurs rangs, le contexte final sélectionné, la version du modèle et du prompt, la réponse, les citations, la version du corpus\u002Findex et les métadonnées de timing ou de version pertinentes pour la fraîcheur.\"},{\"id\":\"faq5\",\"question\":\"Augmenter le top-k corrige-t-il généralement le RAG ?\",\"answer\":\"Pas de manière fiable. Un ensemble de candidats ou de contextes plus grand peut améliorer le rappel, mais il peut aussi ajouter du bruit, des contradictions, des doublons et une surcharge de contexte. Testez si les preuves pertinentes sont manquantes avant d'augmenter le top-k.\"}]},\"tunes\":{}},{\"id\":\"h-glossary\",\"type\":\"header\",\"data\":{\"text\":\"Glossaire\",\"level\":2},\"tunes\":{}},{\"id\":\"glossary\",\"type\":\"glossary\",\"data\":{\"title\":\"Termes clés de diagnostic\",\"entries\":[{\"term\":\"Test du contexte oracle\",\"definition\":\"Un test contrôlé dans lequel le générateur reçoit directement des preuves connues comme suffisantes afin de déterminer si la défaillance dominante se situe en amont de la génération.\",\"anchor\":\"oracle-context-test\"},{\"term\":\"Récupération de candidats\",\"definition\":\"L'étape qui sélectionne un ensemble initial de documents, chunks, enregistrements ou passages potentiellement pertinents avant le classement final ou l'assemblage du contexte.\",\"anchor\":\"candidate-retrieval\"},{\"term\":\"Assemblage du contexte\",\"definition\":\"Le processus de conversion des preuves récupérées en entrée réelle du modèle, incluant l'ordonnancement, la troncature, la déduplication, le formatage et les décisions de budget de tokens.\",\"anchor\":\"context-assembly\"},{\"term\":\"Fidélité\",\"definition\":\"Le degré auquel les affirmations générées restent soutenues par les preuves récupérées ou fournies plutôt que d'introduire du contenu non étayé.\",\"anchor\":\"faithfulness\"},{\"term\":\"Couverture du contexte\",\"definition\":\"Une mesure orientée récupération indiquant si les preuves sélectionnées couvrent les informations nécessaires pour répondre à la question.\",\"anchor\":\"context-coverage\"},{\"term\":\"Limite de validité\",\"definition\":\"Les conditions dans lesquelles une affirmation ou une réponse reste applicable, telles que le temps, la version, la juridiction, l'état, la population, les permissions ou les hypothèses de source.\",\"anchor\":\"validity-boundary\"}]},\"tunes\":{}},{\"id\":\"h-sources\",\"type\":\"header\",\"data\":{\"text\":\"Sources primaires et lectures complémentaires\",\"level\":2},\"tunes\":{}},{\"id\":\"src-openai-rag\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Foptimizing-llm-accuracy\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI — Optimiser la précision des LLM\",\"description\":\"Recommandations d'OpenAI distinguant les défaillances de récupération des défaillances du LLM dans les applications RAG.\"}},\"tunes\":{}},{\"id\":\"src-openai-evals\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fevaluation-best-practices\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI — Bonnes pratiques d'évaluation\",\"description\":\"Conseils sur l'évaluation structurée pour les systèmes d'IA variables et la conception de tests orientés production.\"}},\"tunes\":{}},{\"id\":\"src-aws-rag\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fknowledge-base-evaluation-metrics.html\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Amazon Bedrock — Métriques d'évaluation RAG\",\"description\":\"Documentation séparant les métriques de récupération seule des métriques de récupération et génération, incluant la pertinence du contexte, la couverture, la fidélité et les mesures de citation.\"}},\"tunes\":{}},{\"id\":\"src-anthropic-evals\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fdemystifying-evals-for-ai-agents\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Anthropic — Démystifier les évaluations pour les agents IA\",\"description\":\"Conseils pratiques d'évaluation sur les tâches, les essais, les évaluateurs, les traces, les régressions et le comportement en production.\"}},\"tunes\":{}},{\"id\":\"src-google-rag\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fcloud.google.com\u002Fuse-cases\u002Fretrieval-augmented-generation\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Google Cloud — Génération augmentée par récupération\",\"description\":\"Aperçu de l'architecture RAG et de l'importance d'une récupération pertinente et d'une génération fondée.\"}},\"tunes\":{}}],\"version\":\"2.31.6\"}",{"time":212,"blocks":213,"version":834},1790369150504,[214,220,228,235,243,248,253,258,263,268,310,315,320,325,332,337,342,347,352,357,362,367,372,377,382,387,392,397,402,407,412,417,422,427,432,437,442,447,477,484,489,521,526,531,536,541,586,591,627,632,637,642,651,656,661,666,674,679,684,689,694,699,704,709,714,719,724,750,755,783,788,798,807,816,825],{"id":215,"data":216,"type":218,"tunes":219},"intro",{"text":217},"Un système RAG renvoie une réponse faible, erronée, incomplète ou non étayée. Le diagnostic habituel est « la récupération a échoué » ou « le modèle a halluciné ». Ces deux étiquettes sont trop larges pour être utiles. Un pipeline RAG en production peut échouer avant la récupération, pendant la récupération, lors du classement, lors de l'assemblage du contexte, pendant la génération, ou après la génération lorsque les preuves et la validité sont vérifiées.","paragraph",{},{"id":221,"data":222,"type":226,"tunes":227},"direct",{"body":223,"title":224,"variant":225},"\u003Cstrong>Ne déboguez pas le RAG comme un seul composant.\u003C\u002Fstrong> Diagnostiquez-le comme une chaîne de couches testables indépendamment. Déterminez d'abord si la preuve requise existe dans une source faisant autorité. Testez ensuite la construction de la requête, la récupération des candidats, le classement, l'assemblage du contexte, la génération, l'attribution des preuves et la fraîcheur. La technique d'isolation la plus rapide est un \u003Cstrong>test de contexte oracle\u003C\u002Fstrong> : fournissez manuellement la preuve correcte au générateur. Si la réponse devient correcte, la défaillance dominante se situe en amont de la génération. Si elle reste erronée, la récupération n'est pas le problème principal.","Réponse directe","info","callout",{},{"id":229,"data":230,"type":226,"tunes":234},"model-note",{"body":231,"title":232,"variant":233},"La pile de défaillances RAG présentée dans cet article est un modèle de diagnostic pratique, et non une norme industrielle formelle. Les plateformes existantes séparent déjà les métriques de récupération seule des métriques de récupération et génération ; ce modèle étend cette séparation en une méthode de débogage de production étape par étape.","À propos du modèle de diagnostic","note",{},{"id":236,"data":237,"type":241,"tunes":242},"toc",{"title":238,"maxLevel":239,"minLevel":240},"Sommaire",3,2,"tableOfContents",{},{"id":244,"data":245,"type":42,"tunes":247},"h-not-diagnosis",{"text":246,"level":240},"Pourquoi « le RAG a échoué » n'est pas un diagnostic",{},{"id":249,"data":250,"type":218,"tunes":252},"p-not-1",{"text":251},"La génération augmentée par récupération combine plusieurs mécanismes : une requête utilisateur est interprétée, une ou plusieurs recherches sont construites, le matériel candidat est récupéré, les résultats sont filtrés ou reclassés, les preuves sélectionnées sont insérées dans un contexte de modèle, et un modèle génère une réponse. Les systèmes de production peuvent ajouter des autorisations, des filtres de métadonnées, des règles de fraîcheur, des citations, la réécriture de requêtes, la recherche hybride, des appels d'outils, de la mémoire et un état externe.",{},{"id":254,"data":255,"type":218,"tunes":257},"p-not-2",{"text":256},"Une réponse finale erronée ne vous indique donc pas quel composant a échoué. Le modèle a peut-être reçu les mauvaises preuves. Il a peut-être reçu les bonnes preuves mélangées à trop de bruit. Les preuves peuvent être correctes mais obsolètes. La source n'a peut-être jamais contenu la réponse. Ou le modèle a peut-être ignoré un contexte parfaitement adéquat.",{},{"id":259,"data":260,"type":218,"tunes":262},"p-not-3",{"text":261},"Les recommandations d'OpenAI sur le RAG établissent déjà une distinction fondamentale entre l'échec de récupération et l'échec du modèle : un système peut fournir le mauvais contexte, ou fournir le bon contexte et néanmoins générer une réponse erronée. AWS sépare de même l'évaluation de la récupération seule de l'évaluation de la récupération et génération. Pour le diagnostic en production, cette distinction doit être poussée plus loin.",{},{"id":264,"data":265,"type":42,"tunes":267},"h-stack",{"text":266,"level":240},"La pile de défaillances RAG",{},{"id":269,"data":270,"type":308,"tunes":309},"table-stack",{"content":271,"stretched":43,"withHeadings":14},[272,276,280,284,288,292,296,300,304],[273,274,275],"Couche","Question","Défaillance typique",[277,278,279],"1. Couverture des sources","La preuve requise existe-t-elle dans une source faisant autorité et autorisée ?","Le corpus ne peut pas du tout répondre à la question",[281,282,283],"2. Construction de la requête","Le système a-t-il cherché la bonne chose ?","L'intention, les entités, les filtres, la langue ou les contraintes temporelles sont perdus",[285,286,287],"3. Récupération des candidats","La preuve pertinente est-elle entrée dans l'ensemble des candidats ?","Faible rappel ; le bon fragment n'est jamais récupéré",[289,290,291],"4. Classement et filtrage","La bonne preuve a-t-elle survécu et s'est-elle classée assez haut ?","La preuve pertinente est enfouie, filtrée ou surpassée par un texte superficiellement similaire",[293,294,295],"5. Assemblage du contexte","Le modèle a-t-il reçu des preuves utilisables ?","Troncature, mauvaises limites de fragments, doublons, passages contradictoires ou surcharge de contexte",[297,298,299],"6. Génération","Le modèle a-t-il utilisé correctement les preuves fournies ?","Inférence non étayée, échec d'instruction, erreur de raisonnement ou inadéquation de refus",[301,302,303],"7. Attribution des preuves","La réponse peut-elle être retracée jusqu'aux preuves qu'elle prétend utiliser ?","Citations manquantes, faibles ou incorrectes ; les affirmations dépassent le support récupéré",[305,306,307],"8. Validité et fraîcheur","La preuve est-elle encore valide pour cette question maintenant ?","Une preuve historique correcte est réutilisée en dehors de sa période de validité, de sa version, de sa juridiction ou de son état","table",{},{"id":311,"data":312,"type":42,"tunes":314},"h-source",{"text":313,"level":239},"Couche 1 — Couverture des sources : le système peut-il répondre à cela du tout ?",{},{"id":316,"data":317,"type":218,"tunes":319},"p-source-1",{"text":318},"Avant de régler les embeddings, les rerankers ou les prompts, vérifiez que la réponse existe dans l'espace de connaissances que le système est autorisé à utiliser. Cela semble évident, mais de nombreux échecs RAG sont en réalité des échecs de corpus. Le fait demandé peut être absent, caché dans une pièce jointe non indexée, disponible uniquement dans un document plus récent, stocké dans un système extérieur au corpus RAG, ou bloqué par des autorisations.",{},{"id":321,"data":322,"type":218,"tunes":324},"p-source-2",{"text":323},"Une métrique de récupération ne peut pas récupérer une information qui n'a jamais été indexée. Un top-k plus grand ne peut pas récupérer un document que le pipeline ne contient pas. Si le test de couverture des sources échoue, la correction appropriée est l'ingestion, la sélection des sources, les autorisations, ou un comportement explicite de « non répondable à partir des preuves disponibles ».",{},{"id":326,"data":327,"type":226,"tunes":331},"source-warning",{"body":328,"title":329,"variant":330},"Les équipes ajustent souvent la récupération sur des questions auxquelles le corpus ne peut pas réellement répondre. Cela peut rendre le récupérateur meilleur pour trouver du texte connexe tout en laissant la lacune d'information sous-jacente intacte.","Schéma de défaillance","warning",{},{"id":333,"data":334,"type":42,"tunes":336},"h-query",{"text":335,"level":239},"Couche 2 — Construction de la requête : le système a-t-il posé la bonne question au corpus ?",{},{"id":338,"data":339,"type":218,"tunes":341},"p-query-1",{"text":340},"La requête utilisateur n'est pas toujours la requête de récupération. Les systèmes de production réécrivent les questions, résolvent les pronoms, extraient les entités, traduisent les langues, ajoutent des contraintes de métadonnées, divisent les questions complexes ou génèrent plusieurs recherches. Chaque transformation peut améliorer la récupération, mais chaque transformation peut aussi détruire de l'information.",{},{"id":343,"data":344,"type":218,"tunes":346},"p-query-2",{"text":345},"Une demande telle que « La politique s'applique-t-elle encore aux sous-traitants en Allemagne après la mise à jour de septembre ? » contient au moins une entité, une population, une juridiction et une limite temporelle. Une requête réécrite qui devient « politique des sous-traitants » peut récupérer un texte sémantiquement connexe tout en perdant les variables qui déterminent si la réponse est valide.",{},{"id":348,"data":349,"type":42,"tunes":351},"h-retrieval",{"text":350,"level":239},"Couche 3 — Récupération des candidats : les preuves pertinentes ont-elles été incluses dans l'ensemble ?",{},{"id":353,"data":354,"type":218,"tunes":356},"p-ret-1",{"text":355},"La récupération des candidats est avant tout un problème de rappel. La question diagnostique n'est pas encore de savoir si le meilleur résultat est classé premier ; il s'agit de savoir si des preuves pertinentes apparaissent quelque part dans le pool de candidats. Si la source correcte connue n'apparaît pas, examinez l'indexation, le découpage, les embeddings, la correspondance lexicale, les métadonnées, la recherche hybride, la gestion des langues, les synonymes et l'expansion des requêtes.",{},{"id":358,"data":359,"type":218,"tunes":361},"p-ret-2",{"text":360},"C'est là que l'évaluation de la récupération seule est précieuse. AWS expose la pertinence du contexte et la couverture du contexte pour l'évaluation RAG en récupération seule. L'habitude de production importante est d'évaluer la récupération avant la génération afin qu'une réponse finale soignée ne puisse pas masquer un ensemble de candidats faible.",{},{"id":363,"data":364,"type":42,"tunes":366},"h-ranking",{"text":365,"level":239},"Couche 4 — Classement et filtrage : les bonnes preuves ont-elles été écartées ou enfouies ?",{},{"id":368,"data":369,"type":218,"tunes":371},"p-rank-1",{"text":370},"Un système peut avoir un bon rappel et échouer quand même parce que les preuves pertinentes se classent en dessous de matériel bruité mais sémantiquement similaire. Les rerankers, les boosts de récence, les pondérations d'autorité, les préférences linguistiques, les filtres de locataires, les contrôles d'accès, les filtres de statut de produit et la déduplication modifient tous ce qui survit dans le contexte final.",{},{"id":373,"data":374,"type":218,"tunes":376},"p-rank-2",{"text":375},"Le débogage doit donc conserver la liste complète des candidats, pas seulement le top-k final. Si la preuve de référence a été récupérée au rang 18 et qu'un reranker l'a supprimée, le correctif n'est pas le même qu'un échec de récupération.",{},{"id":378,"data":379,"type":42,"tunes":381},"h-context",{"text":380,"level":239},"Couche 5 — Assemblage du contexte : des preuves utiles sont-elles devenues un contexte utilisable ?",{},{"id":383,"data":384,"type":218,"tunes":386},"p-ctx-1",{"text":385},"Le succès de la récupération ne garantit pas le succès du contexte. Les segments pertinents peuvent être tronqués, séparés de leurs qualificatifs, dupliqués jusqu'à dominer le prompt, mélangés avec des versions contradictoires, ou entourés de suffisamment de texte non pertinent pour que le passage décisif perde sa saillance.",{},{"id":388,"data":389,"type":218,"tunes":391},"p-ctx-2",{"text":390},"Les limites des segments sont particulièrement importantes. Une phrase peut contenir la règle tandis que la phrase suivante contient l'exception. Si elles sont indexées séparément et que seule la première est récupérée, le récupérateur peut sembler pertinent alors que le contexte assemblé devient trompeur.",{},{"id":393,"data":394,"type":42,"tunes":396},"h-generation",{"text":395,"level":239},"Couche 6 — Génération : le modèle peut-il utiliser correctement des preuves correctes ?",{},{"id":398,"data":399,"type":218,"tunes":401},"p-gen-1",{"text":400},"Une fois que le système a démontré qu'il fournissait des preuves suffisantes, la génération devient testable indépendamment. Le modèle peut généraliser à l'excès, combiner des passages incompatibles, ignorer une déclaration négative, ne pas suivre le format de réponse demandé, inventer un pont entre des faits, ou répondre à partir de sa mémoire paramétrique au lieu des preuves récupérées.",{},{"id":403,"data":404,"type":218,"tunes":406},"p-gen-2",{"text":405},"C'est pourquoi la seule exactitude de bout en bout est insuffisante pour le diagnostic. OpenAI recommande l'évaluation comme un moyen structuré de comprendre le comportement d'une application, tandis que les conseils d'Anthropic sur l'évaluation des agents mettent l'accent sur les essais multiples, les évaluateurs, les traces et les cas d'échec réalistes. Pour le RAG, le générateur doit être testé à la fois avec une récupération normale et avec un contexte de référence contrôlé.",{},{"id":408,"data":409,"type":42,"tunes":411},"h-evidence",{"text":410,"level":239},"Couche 7 — Attribution des preuves : la réponse est-elle réellement étayée ?",{},{"id":413,"data":414,"type":218,"tunes":416},"p-evidence-1",{"text":415},"Une réponse plausible avec des citations peut encore être faiblement fondée. Le document cité peut être pertinent pour le sujet mais ne pas étayer l'affirmation spécifique. Une phrase peut être étayée tandis qu'une autre est inférée. Une citation peut pointer vers une source qui contredit la réponse une fois ses conditions lues.",{},{"id":418,"data":419,"type":218,"tunes":421},"p-evidence-2",{"text":420},"L'évaluation des citations intervient donc après la génération. AWS distingue la précision des citations de la couverture des citations : si les passages cités sont correctement cités et si la réponse est suffisamment étayée par des citations. En production, le soutien au niveau des affirmations est plus utile que de traiter la présence d'une citation quelconque comme une preuve de qualité.",{},{"id":423,"data":424,"type":42,"tunes":426},"h-validity",{"text":425,"level":239},"Couche 8 — Validité et fraîcheur : les preuves étaient-elles correctes pour cette version de la réalité ?",{},{"id":428,"data":429,"type":218,"tunes":431},"p-valid-1",{"text":430},"Le RAG peut récupérer une source parfaitement authentique, hautement pertinente et fidèlement citée et produire néanmoins une réponse erronée si la source n'est plus valide pour la question actuelle. Les politiques changent. Les API sont dépréciées. Les prix évoluent. Le comportement des logiciels change entre les versions. L'inventaire des produits change. Les permissions changent. Les correctifs de jeu modifient les mécaniques.",{},{"id":433,"data":434,"type":218,"tunes":436},"p-valid-2",{"text":435},"Il s'agit d'une classe d'échec distincte de l'hallucination. La preuve est réelle ; son applicabilité est erronée. Un système robuste a donc besoin d'horodatages, de métadonnées de version ou de juridiction lorsque cela est pertinent, d'autorité de la source, de règles de remplacement et d'un mécanisme explicite pour décider quand les preuves plus anciennes doivent être restreintes ou abandonnées.",{},{"id":438,"data":439,"type":42,"tunes":441},"h-oracle",{"text":440,"level":240},"La méthode d'isolation la plus rapide : le test du contexte oracle",{},{"id":443,"data":444,"type":218,"tunes":446},"p-oracle-1",{"text":445},"La première séparation la plus utile est simple : fournissez manuellement au générateur un petit ensemble de preuves que vous savez suffisantes pour répondre à la question. Gardez la tâche et la réponse attendue inchangées.",{},{"id":448,"data":449,"type":475,"tunes":476},"oracle-comparison",{"rows":450,"title":464,"layout":308,"columns":465},[451,456,460],{"id":452,"label":453,"values":454},"oracle-pass","La réponse devient correcte",[455,455,455],"",{"id":457,"label":458,"values":459},"oracle-fail","La réponse reste incorrecte",[455,455,455],{"id":461,"label":462,"values":463},"oracle-partial","La réponse s'améliore mais reste incomplète",[455,455,455],"Test du contexte oracle",[466,469,472],{"id":467,"label":468},"result","Résultat",{"id":470,"label":471},"meaning","Interprétation probable",{"id":473,"label":474},"next","Prochaine étape de diagnostic","comparison",{},{"id":478,"data":479,"type":226,"tunes":483},"oracle-tip",{"body":480,"title":481,"variant":482},"Le test du contexte oracle retire la majeure partie du pipeline de récupération de l'expérience. Il ne prouve pas que la génération est parfaite, mais il fournit un contrefactuel rapide : \u003Cstrong>que ferait le modèle si la récupération avait déjà réussi ?\u003C\u002Fstrong>","Pourquoi ce test est puissant","tip",{},{"id":485,"data":486,"type":42,"tunes":488},"h-sequence",{"text":487,"level":240},"Une séquence de diagnostic en production",{},{"id":490,"data":491,"type":519,"tunes":520},"diag-flow",{"steps":492,"title":517,"orientation":518},[493,496,499,502,505,508,511,514],{"label":494,"description":495},"1. Définir l'affirmation attendue","Écrivez la réponse attendue, l'incertitude autorisée et les preuves qui la justifieraient.",{"label":497,"description":498},"2. Vérifier la couverture des sources","Confirmez que des preuves faisant autorité et autorisées existent dans l'ensemble des sources indexées ou accessibles.",{"label":500,"description":501},"3. Exécuter le test du contexte oracle","Fournissez directement des preuves de référence suffisantes au générateur et observez si la réponse devient correcte.",{"label":503,"description":504},"4. Inspecter la requête de récupération","Vérifiez les réécritures, les entités, les filtres, la langue, les contraintes temporelles, la décomposition et les hypothèses cachées.",{"label":506,"description":507},"5. Inspecter les candidats avant le reclassement","Déterminez si les preuves pertinentes ont été récupérées et enregistrez leur rang.",{"label":509,"description":510},"6. Inspecter le classement et l'assemblage du contexte","Vérifiez le reclassement, les filtres de métadonnées, la troncature, les limites de segments, les doublons, les conflits et la composition du top-k.",{"label":512,"description":513},"7. Évaluer séparément la génération et les citations","Mesurez l'exactitude de la réponse, l'exhaustivité, la fidélité et le support des preuves au niveau des affirmations.",{"label":515,"description":516},"8. Tester les limites de validité","Vérifiez si la version, la date, l'état, la juridiction, les autorisations ou des preuves remplaçantes modifient la réponse.","Diagnostiquer la défaillance depuis les preuves jusqu'à la réponse","auto","processFlow",{},{"id":522,"data":523,"type":42,"tunes":525},"h-one-change",{"text":524,"level":240},"Ne changez pas trois couches à la fois",{},{"id":527,"data":528,"type":218,"tunes":530},"p-one-1",{"text":529},"Une erreur de débogage courante consiste à modifier les embeddings, les tailles de segments, le top-k, les prompts et le modèle en une seule itération. Si le score s'améliore, vous ne savez pas pourquoi. S'il se dégrade, vous ne savez pas quel changement a causé la régression.",{},{"id":532,"data":533,"type":218,"tunes":535},"p-one-2",{"text":534},"Traitez le débogage RAG comme un diagnostic expérimental : maintenez autant de constantes que possible dans le pipeline et remplacez un composant incertain par une entrée contrôlée. Les documents de référence isolent la récupération. Les segments de référence isolent la sélection des segments. Un contexte fixe isole la génération. Un modèle fixe isole les changements de récupération. Un corpus fixe isole les changements d'ingestion et d'indexation.",{},{"id":537,"data":538,"type":42,"tunes":540},"h-matrix",{"text":539,"level":240},"Une matrice de défaillance pour les symptômes RAG courants",{},{"id":542,"data":543,"type":308,"tunes":585},"symptom-matrix",{"content":544,"stretched":43,"withHeadings":14},[545,549,553,557,561,565,569,573,577,581],[546,547,548],"Symptôme","Couches les plus probables à tester en premier","Test discriminant",[550,551,552],"Aucune source pertinente n'apparaît","Couverture des sources → Requête → Récupération des candidats","Recherchez manuellement dans le corpus, puis inspectez la requête réécrite et les candidats non filtrés",[554,555,556],"Une source pertinente apparaît mais la réponse est incorrecte","Assemblage du contexte → Génération","Test du contexte oracle avec la même source réduite aux passages décisifs",[558,559,560],"La réponse est parfois correcte, parfois incorrecte","Classement → Assemblage du contexte → Variabilité de la génération","Répétez les essais en enregistrant l'ensemble récupéré, le rang, le contexte du prompt et la sortie du modèle",[562,563,564],"La réponse cite le bon document mais le surestime","Génération → Attribution des preuves → Validité","Évaluez chaque affirmation par rapport au passage cité exact",[566,567,568],"Les informations anciennes continuent de gagner","Classement → Validité\u002Ffraîcheur","Comparez avec les règles de récence\u002Fremplacement et inspectez les métadonnées",[570,571,572],"La réponse manque une exception","Segmentation → Assemblage du contexte","Vérifiez si la règle et l'exception ont été séparées ou tronquées",[574,575,576],"Ajouter plus de top-k dégrade la qualité","Classement → Surcharge du contexte","Supprimez les segments de faible valeur et comparez avec un ensemble de preuves minimal",[578,579,580],"Changer le modèle corrige la réponse","Génération, mais pas nécessairement la récupération","Répétez avec un contexte récupéré identique pour tous les modèles",[582,583,584],"Changer les embeddings corrige la réponse","Récupération\u002Fclassement","Gardez le générateur et le modèle de contexte constants tout en comparant le rappel des candidats",{},{"id":587,"data":588,"type":42,"tunes":590},"h-metrics",{"text":589,"level":240},"Mesurez chaque couche avec la métrique qu'elle peut réellement influencer",{},{"id":592,"data":593,"type":308,"tunes":626},"metrics-table",{"content":594,"stretched":43,"withHeadings":14},[595,598,602,606,610,614,618,622],[273,596,597],"Mesures utiles","Ce qu'il ne faut pas en déduire",[599,600,601],"Couverture des sources","Taux de questions auxquelles on peut répondre, couverture du corpus, exhaustivité de l'ingestion","Ne blâmez pas les embeddings pour des sources manquantes",[603,604,605],"Récupération des candidats","Rappel@k, taux de succès, couverture du contexte","Un rappel élevé ne prouve pas la qualité du classement",[607,608,609],"Classement","MRR, NDCG, rang de référence, précision@k","Un bon classement ne prouve pas que le générateur a utilisé les preuves",[611,612,613],"Assemblage du contexte","Rétention des preuves, duplication, taux de contradiction, utilisation des tokens","Un grand contexte ne signifie pas un contexte utile",[615,616,617],"Génération","Exactitude, exhaustivité, réussite de la tâche, fidélité","L'exactitude seule ne prouve pas l'ancrage",[619,620,621],"Attribution des preuves","Précision des citations, couverture des citations, support des affirmations","Un nombre de citations n'est pas une qualité de preuve",[623,624,625],"Validité","Fraîcheur, exactitude du remplacement, correspondance version\u002Fjuridiction","Une preuve pertinente n'est pas automatiquement une preuve applicable",{},{"id":628,"data":629,"type":42,"tunes":631},"h-correct-answer",{"text":630,"level":240},"Une réponse correcte peut encore masquer un défaut RAG",{},{"id":633,"data":634,"type":218,"tunes":636},"p-correct-1",{"text":635},"Le problème inverse compte aussi. Un système RAG peut produire la réponse correcte alors que la récupération est défaillante. Le modèle peut déjà connaître la réponse grâce à l'entraînement, l'inférer à partir de preuves faibles ou deviner correctement. Si l'évaluation ne regarde que la réponse finale, le système peut sembler sain jusqu'à ce que la question atteigne des informations qui n'existent que dans le corpus privé.",{},{"id":638,"data":639,"type":218,"tunes":641},"p-correct-2",{"text":640},"C'est le même problème de fiabilité qui apparaît plus largement dans les systèmes d'agents : l'exactitude du résultat ne suffit pas à prouver que le chemin d'exécution était fiable. Pour le RAG, les traces doivent conserver au moins la requête de récupération, l'ensemble des candidats, le classement, le contexte final, la réponse, les citations, la version du modèle, la version du corpus\u002Findex et les filtres pertinents.",{},{"id":643,"data":644,"type":649,"tunes":650},"internal-reliability",{"url":645,"title":646,"excerpt":647,"ctaLabel":648},"https:\u002F\u002Fstajic.de\u002Ffr\u002Fblog\u002Fai-agent-reliability-why-the-final-answer-is-not-enough","Fiabilité des agents IA : pourquoi la réponse finale ne suffit pas","Une sortie correcte ne prouve pas un raisonnement correct, une exécution sûre ou un système digne de confiance. Cet article étend ce principe du diagnostic RAG aux trajectoires d'agents et à l'assurance opérationnelle.","Lire l'article associé","referralArticle",{},{"id":652,"data":653,"type":42,"tunes":655},"h-hypotheses",{"text":654,"level":240},"Utilisez des hypothèses concurrentes, pas une explication favorite",{},{"id":657,"data":658,"type":218,"tunes":660},"p-hyp-1",{"text":659},"Si une mauvaise réponse devient immédiatement « un problème d'embedding », l'enquête est déjà biaisée. Une méthode de débogage plus solide consiste à écrire les hypothèses concurrentes avant de modifier le système : source manquante, mauvaise réécriture de requête, faible rappel de récupération, mauvais reranking, troncature du contexte, versions contradictoires, échec de génération, échec de citation ou preuves obsolètes.",{},{"id":662,"data":663,"type":218,"tunes":665},"p-hyp-2",{"text":664},"Choisissez ensuite un test qui permettrait de départager ces hypothèses. C'est plus efficace que de collecter davantage d'exemples qui confortent la première explication. Le même principe s'applique au raisonnement technique assisté par IA en général : un diagnostic utile est celui qui survit à des tests discriminants, pas celui qui semble simplement plausible.",{},{"id":667,"data":668,"type":649,"tunes":673},"internal-reasoning",{"url":669,"title":670,"excerpt":671,"ctaLabel":672},"https:\u002F\u002Fstajic.de\u002Ffr\u002Fblog\u002Ffrom-research-protocol-to-a-general-ai-reasoning-framework","Du protocole de recherche à un cadre général de raisonnement IA","Une méthode de raisonnement indépendante du domaine pour séparer les preuves des hypothèses, tester des hypothèses concurrentes et utiliser des validateurs spécifiques au domaine.","Lire le cadre de raisonnement",{},{"id":675,"data":676,"type":42,"tunes":678},"h-change",{"text":677,"level":240},"Qu'est-ce qui changerait cette réponse ?",{},{"id":680,"data":681,"type":218,"tunes":683},"p-change-1",{"text":682},"Les couches de diagnostic exactes changent avec l'architecture. Une application RAG simple à document unique peut ne pas avoir de réécriture de requête, de reranker ou de couche de citation. Un système de récupération agentique peut ajouter de la planification, des recherches multiples, la sélection d'outils, la mémoire, les permissions et la collecte itérative de preuves. Une recherche dans une base de données structurée peut ne pas utiliser du tout de chunks ni d'embeddings.",{},{"id":685,"data":686,"type":218,"tunes":688},"p-change-2",{"text":687},"La méthode fondamentale tient toujours : identifier les composants qui peuvent modifier indépendamment le résultat, construire des tests contrôlés qui remplacent les composants incertains par des entrées fiables, et mesurer chaque composant à l'aide de preuves appropriées à cette couche.",{},{"id":690,"data":691,"type":42,"tunes":693},"h-limitations",{"text":692,"level":240},"Limites",{},{"id":695,"data":696,"type":218,"tunes":698},"p-limit-1",{"text":697},"Les défaillances réelles sont souvent couplées. Une requête faible peut réduire le rappel, ce qui modifie le reranking, ce qui modifie le contexte, ce qui augmente la variance de génération. Le test du contexte oracle est un raccourci de diagnostic, pas la preuve qu'un composant est seul responsable. Les jeux de données d'évaluation peuvent aussi être non représentatifs, et les évaluateurs basés sur des modèles peuvent introduire leurs propres erreurs.",{},{"id":700,"data":701,"type":218,"tunes":703},"p-limit-2",{"text":702},"La pile proposée est donc mieux utilisée comme une structure d'enquête : journaliser le pipeline, isoler les variables, reproduire les défaillances, tester des explications concurrentes et maintenir une évaluation de bout en bout après les corrections au niveau des couches.",{},{"id":705,"data":706,"type":42,"tunes":708},"h-conclusion",{"text":707,"level":240},"Conclusion",{},{"id":710,"data":711,"type":218,"tunes":713},"p-conclusion-1",{"text":712},"« Le RAG a échoué » devrait être le début de l'enquête, pas la conclusion. Un diagnostic utile identifie si le système manquait de preuves, a mal cherché, n'a pas réussi à les récupérer, les a mal classées, a assemblé un contexte inutilisable, a généré incorrectement, a mal attribué les affirmations ou a appliqué des preuves en dehors de leur limite de validité.",{},{"id":715,"data":716,"type":218,"tunes":718},"p-conclusion-2",{"text":717},"La règle pratique est simple : remplacer l'incertitude par des preuves contrôlées, une couche à la fois. Commencez par le test du contexte oracle. Séparez l'évaluation de la récupération seule de l'évaluation de la génération. Conservez la trace complète. Corrigez ensuite le composant qui a réellement échoué au lieu de régler toute la pile RAG à l'intuition.",{},{"id":720,"data":721,"type":42,"tunes":723},"h-faq",{"text":722,"level":240},"FAQ",{},{"id":725,"data":726,"type":725,"tunes":749},"faq",{"items":727,"title":748},[728,732,736,740,744],{"id":729,"answer":730,"question":731},"faq1","Fournissez manuellement au modèle un petit ensemble de preuves correctes connues. Si la réponse devient correcte, examinez la couverture des sources, la construction de la requête, la récupération, le classement et l'assemblage du contexte. Si le modèle échoue encore avec des preuves suffisantes, la récupération n'est pas le problème principal.","Comment puis-je savoir si c'est la récupération RAG ou le LLM qui a échoué ?",{"id":733,"answer":734,"question":735},"faq2","Oui. Le passage pertinent peut être classé trop bas, tronqué, séparé d'une exception, mélangé à des preuves contradictoires, submergé par un contexte non pertinent ou utilisé incorrectement par le générateur.","Le RAG peut-il échouer même lorsque le bon document a été récupéré ?",{"id":737,"answer":738,"question":739},"faq3","Non. Un modèle peut produire une réponse correcte malgré une récupération faible en s'appuyant sur ses connaissances préalables ou par hasard. Évaluez la récupération et le soutien des preuves séparément de l'exactitude de la réponse finale.","L'exactitude de la réponse suffit-elle pour évaluer un système RAG ?",{"id":741,"answer":742,"question":743},"faq4","Au minimum, journalisez la requête de l'utilisateur, la requête de récupération transformée, les filtres, les documents candidats et leurs rangs, le contexte final sélectionné, la version du modèle et du prompt, la réponse, les citations, la version du corpus\u002Findex et les métadonnées de timing ou de version pertinentes pour la fraîcheur.","Que dois-je journaliser lors du débogage d'un RAG ?",{"id":745,"answer":746,"question":747},"faq5","Pas de manière fiable. Un ensemble de candidats ou de contextes plus grand peut améliorer le rappel, mais il peut aussi ajouter du bruit, des contradictions, des doublons et une surcharge de contexte. Testez si les preuves pertinentes sont manquantes avant d'augmenter le top-k.","Augmenter le top-k corrige-t-il généralement le RAG ?","Diagnostic des défaillances RAG",{},{"id":751,"data":752,"type":42,"tunes":754},"h-glossary",{"text":753,"level":240},"Glossaire",{},{"id":756,"data":757,"type":756,"tunes":782},"glossary",{"title":758,"entries":759},"Termes clés de diagnostic",[760,763,767,770,774,778],{"term":464,"anchor":761,"definition":762},"oracle-context-test","Un test contrôlé dans lequel le générateur reçoit directement des preuves connues comme suffisantes afin de déterminer si la défaillance dominante se situe en amont de la génération.",{"term":764,"anchor":765,"definition":766},"Récupération de candidats","candidate-retrieval","L'étape qui sélectionne un ensemble initial de documents, chunks, enregistrements ou passages potentiellement pertinents avant le classement final ou l'assemblage du contexte.",{"term":611,"anchor":768,"definition":769},"context-assembly","Le processus de conversion des preuves récupérées en entrée réelle du modèle, incluant l'ordonnancement, la troncature, la déduplication, le formatage et les décisions de budget de tokens.",{"term":771,"anchor":772,"definition":773},"Fidélité","faithfulness","Le degré auquel les affirmations générées restent soutenues par les preuves récupérées ou fournies plutôt que d'introduire du contenu non étayé.",{"term":775,"anchor":776,"definition":777},"Couverture du contexte","context-coverage","Une mesure orientée récupération indiquant si les preuves sélectionnées couvrent les informations nécessaires pour répondre à la question.",{"term":779,"anchor":780,"definition":781},"Limite de validité","validity-boundary","Les conditions dans lesquelles une affirmation ou une réponse reste applicable, telles que le temps, la version, la juridiction, l'état, la population, les permissions ou les hypothèses de source.",{},{"id":784,"data":785,"type":42,"tunes":787},"h-sources",{"text":786,"level":240},"Sources primaires et lectures complémentaires",{},{"id":789,"data":790,"type":796,"tunes":797},"src-openai-rag",{"link":791,"meta":792},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Foptimizing-llm-accuracy",{"image":793,"title":794,"description":795},{"url":455},"OpenAI — Optimiser la précision des LLM","Recommandations d'OpenAI distinguant les défaillances de récupération des défaillances du LLM dans les applications RAG.","linkTool",{},{"id":799,"data":800,"type":796,"tunes":806},"src-openai-evals",{"link":801,"meta":802},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fevaluation-best-practices",{"image":803,"title":804,"description":805},{"url":455},"OpenAI — Bonnes pratiques d'évaluation","Conseils sur l'évaluation structurée pour les systèmes d'IA variables et la conception de tests orientés production.",{},{"id":808,"data":809,"type":796,"tunes":815},"src-aws-rag",{"link":810,"meta":811},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fknowledge-base-evaluation-metrics.html",{"image":812,"title":813,"description":814},{"url":455},"Amazon Bedrock — Métriques d'évaluation RAG","Documentation séparant les métriques de récupération seule des métriques de récupération et génération, incluant la pertinence du contexte, la couverture, la fidélité et les mesures de citation.",{},{"id":817,"data":818,"type":796,"tunes":824},"src-anthropic-evals",{"link":819,"meta":820},"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fdemystifying-evals-for-ai-agents",{"image":821,"title":822,"description":823},{"url":455},"Anthropic — Démystifier les évaluations pour les agents IA","Conseils pratiques d'évaluation sur les tâches, les essais, les évaluateurs, les traces, les régressions et le comportement en production.",{},{"id":826,"data":827,"type":796,"tunes":833},"src-google-rag",{"link":828,"meta":829},"https:\u002F\u002Fcloud.google.com\u002Fuse-cases\u002Fretrieval-augmented-generation",{"image":830,"title":831,"description":832},{"url":455},"Google Cloud — Génération augmentée par récupération","Aperçu de l'architecture RAG et de l'importance d'une récupération pertinente et d'une génération fondée.",{},"2.31.6","Lorsqu'une réponse RAG est erronée, blâmer la récupération ou le modèle est trop vague. Cette méthode de diagnostic isole la couverture des sources, la construction de la requête, la récupération, le classement, l'assemblage du contexte, la génération, l'attribution des preuves et la fraîcheur—afin que la défaillance réelle puisse être reproduite et corrigée.","\u002Fuploads\u002F2026\u002F09\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method-1790350847177-pior4c.webp","rag-failed-but-which-layer-actually-failed-a-diagnostic-method-1790350847177-pior4c","PUBLISHED","2026-09-24T19:39:00.000Z","2026-09-25T15:39:19.132Z","2026-09-25T20:46:25.690Z",{"en":843,"de":844,"sr":845,"es":846,"fr":847,"it":848,"ru":849,"zh":850},"\u002Fblog\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method","\u002Fde\u002Fblog\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method","\u002Fsr\u002Fblog\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method","\u002Fes\u002Fblog\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method","\u002Ffr\u002Fblog\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method","\u002Fit\u002Fblog\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method","\u002Fru\u002Fblog\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method","\u002Fzh\u002Fblog\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method",[852,856,860],{"id":853,"name":854,"slug":855},58,"Évaluation et garde-fous qualité","evaluation",{"id":857,"name":858,"slug":859},89,"Harnais d’évaluation","evaluation-harness",{"id":861,"name":862,"slug":863},85,"Garde-fous qualité","quality-gates",{"id":865,"login":866,"email":867,"displayName":868},"20","rooth8233","aleksandar@stajic.de","Aleksandar Stajić",[870,1382],{"lang":871,"title":872,"content":873,"contentJson":874,"excerpt":1381},"en","RAG Failed — But Which Layer Actually Failed? A Diagnostic Method","{\"time\":1790369097340,\"blocks\":[{\"id\":\"8zyFXn5HD5\",\"type\":\"tableOfContents\",\"data\":{\"title\":\"Contents\",\"minLevel\":2,\"maxLevel\":3},\"tunes\":{}},{\"id\":\"intro\",\"type\":\"paragraph\",\"data\":{\"text\":\"A RAG system returns a weak, wrong, incomplete, or unsupported answer. The usual diagnosis is “retrieval failed” or “the model hallucinated.” Both labels are too broad to be useful. A production RAG pipeline can fail before retrieval, during retrieval, while ranking, while assembling context, during generation, or after generation when evidence and validity are checked.\"},\"tunes\":{}},{\"id\":\"direct\",\"type\":\"callout\",\"data\":{\"variant\":\"info\",\"title\":\"Direct answer\",\"body\":\"\u003Cstrong>Do not debug RAG as one component.\u003C\u002Fstrong> Diagnose it as a chain of independently testable layers. First determine whether the required evidence exists in an authoritative source. Then test query construction, candidate retrieval, ranking, context assembly, generation, evidence attribution, and freshness. The fastest isolation technique is an \u003Cstrong>oracle-context test\u003C\u002Fstrong>: give the generator the correct evidence manually. If the answer becomes correct, the dominant failure is upstream of generation. If it remains wrong, retrieval is not the primary problem.\"},\"tunes\":{}},{\"id\":\"model-note\",\"type\":\"callout\",\"data\":{\"variant\":\"note\",\"title\":\"About the diagnostic model\",\"body\":\"The RAG Failure Stack in this article is a practical diagnostic model, not a formal industry standard. Existing platforms already separate retrieval-only metrics from retrieve-and-generate metrics; this model extends that separation into a step-by-step production debugging method.\"},\"tunes\":{}},{\"id\":\"h-not-diagnosis\",\"type\":\"header\",\"data\":{\"text\":\"Why “RAG failed” is not a diagnosis\",\"level\":2},\"tunes\":{}},{\"id\":\"p-not-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Retrieval-augmented generation combines several mechanisms: a user request is interpreted, one or more searches are constructed, candidate material is retrieved, results are filtered or reranked, selected evidence is inserted into a model context, and a model generates an answer. Production systems may add permissions, metadata filters, freshness rules, citations, query rewriting, hybrid search, tool calls, memory, and external state.\"},\"tunes\":{}},{\"id\":\"p-not-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"A wrong final answer therefore does not tell you which component failed. The model may have received the wrong evidence. It may have received the right evidence mixed with too much noise. The evidence may be correct but stale. The source may never have contained the answer. Or the model may have ignored perfectly adequate context.\"},\"tunes\":{}},{\"id\":\"p-not-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"OpenAI's RAG guidance already makes a fundamental distinction between retrieval failure and model failure: a system can supply the wrong context, or it can supply the right context and still generate the wrong answer. AWS similarly separates retrieve-only evaluation from retrieve-and-generate evaluation. For production diagnosis, that distinction should be taken further.\"},\"tunes\":{}},{\"id\":\"h-stack\",\"type\":\"header\",\"data\":{\"text\":\"The RAG Failure Stack\",\"level\":2},\"tunes\":{}},{\"id\":\"table-stack\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Layer\",\"Question\",\"Typical failure\"],[\"1. Source coverage\",\"Does the required evidence exist in an allowed authoritative source?\",\"The corpus cannot answer the question at all\"],[\"2. Query construction\",\"Did the system search for the right thing?\",\"Intent, entities, filters, language, or time constraints are lost\"],[\"3. Candidate retrieval\",\"Did the relevant evidence enter the candidate set?\",\"Low recall; the right chunk is never retrieved\"],[\"4. Ranking &amp; filtering\",\"Did the right evidence survive and rank high enough?\",\"Relevant evidence is buried, filtered out, or outranked by superficially similar text\"],[\"5. Context assembly\",\"Did the model receive usable evidence?\",\"Truncation, bad chunk boundaries, duplicates, conflicting passages, or context overload\"],[\"6. Generation\",\"Did the model use the supplied evidence correctly?\",\"Unsupported inference, instruction failure, reasoning error, or refusal mismatch\"],[\"7. Evidence attribution\",\"Can the answer be traced to the evidence it claims to use?\",\"Missing, weak, or incorrect citations; claims exceed retrieved support\"],[\"8. Validity &amp; freshness\",\"Is the evidence still valid for this question now?\",\"Correct historical evidence is reused outside its valid time, version, jurisdiction, or state\"]]},\"tunes\":{}},{\"id\":\"h-source\",\"type\":\"header\",\"data\":{\"text\":\"Layer 1 — Source coverage: can the system answer this at all?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-source-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Before tuning embeddings, rerankers, or prompts, verify that the answer exists in the knowledge space the system is allowed to use. This sounds obvious, but many RAG failures are actually corpus failures. The requested fact may be absent, hidden in an unindexed attachment, available only in a newer document, stored in a system outside the RAG corpus, or blocked by permissions.\"},\"tunes\":{}},{\"id\":\"p-source-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"A retrieval metric cannot recover information that was never indexed. A larger top-k cannot retrieve a document the pipeline does not contain. If the source coverage test fails, the correct fix is ingestion, source selection, permissions, or an explicit “not answerable from available evidence” behaviour.\"},\"tunes\":{}},{\"id\":\"source-warning\",\"type\":\"callout\",\"data\":{\"variant\":\"warning\",\"title\":\"Failure pattern\",\"body\":\"Teams often tune retrieval against questions that the corpus cannot actually answer. This can make the retriever better at finding related text while leaving the underlying information gap untouched.\"},\"tunes\":{}},{\"id\":\"h-query\",\"type\":\"header\",\"data\":{\"text\":\"Layer 2 — Query construction: did the system ask the corpus the right question?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-query-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"The user query is not always the retrieval query. Production systems rewrite questions, resolve pronouns, extract entities, translate languages, add metadata constraints, split complex questions, or generate multiple searches. Every transformation can improve retrieval, but every transformation can also destroy information.\"},\"tunes\":{}},{\"id\":\"p-query-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"A request such as “Does the policy still apply to contractors in Germany after the September update?” contains at least an entity, a population, a jurisdiction, and a time boundary. A rewritten query that becomes “contractor policy” may retrieve semantically related text while losing the variables that decide whether the answer is valid.\"},\"tunes\":{}},{\"id\":\"h-retrieval\",\"type\":\"header\",\"data\":{\"text\":\"Layer 3 — Candidate retrieval: did the relevant evidence enter the set?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-ret-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Candidate retrieval is primarily a recall problem. The diagnostic question is not yet whether the best result ranked first; it is whether relevant evidence appeared anywhere in the candidate pool. If the known correct source does not appear, investigate indexing, chunking, embeddings, lexical matching, metadata, hybrid search, language handling, synonyms, and query expansion.\"},\"tunes\":{}},{\"id\":\"p-ret-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"This is where retrieval-only evaluation is valuable. AWS exposes context relevance and context coverage for retrieve-only RAG evaluation. The important production habit is to evaluate retrieval before generation so that a polished final answer cannot hide a weak candidate set.\"},\"tunes\":{}},{\"id\":\"h-ranking\",\"type\":\"header\",\"data\":{\"text\":\"Layer 4 — Ranking and filtering: was the right evidence discarded or buried?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-rank-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A system can have good recall and still fail because the relevant evidence ranks below noisy but semantically similar material. Rerankers, recency boosts, authority weights, language preferences, tenant filters, access controls, product status filters, and deduplication all change what survives into the final context.\"},\"tunes\":{}},{\"id\":\"p-rank-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Debugging should therefore preserve the full candidate list, not only the final top-k. If the gold evidence was retrieved at rank 18 and a reranker removed it, the fix is not the same as a retrieval miss.\"},\"tunes\":{}},{\"id\":\"h-context\",\"type\":\"header\",\"data\":{\"text\":\"Layer 5 — Context assembly: did useful evidence become usable context?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-ctx-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Retrieval success does not guarantee context success. Relevant chunks can be truncated, separated from their qualifiers, duplicated until they dominate the prompt, mixed with contradictory versions, or surrounded by enough irrelevant text that the decisive passage loses salience.\"},\"tunes\":{}},{\"id\":\"p-ctx-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Chunk boundaries are especially important. A sentence may contain the rule while the following sentence contains the exception. If they are indexed separately and only the first is retrieved, the retriever can appear relevant while the assembled context becomes misleading.\"},\"tunes\":{}},{\"id\":\"h-generation\",\"type\":\"header\",\"data\":{\"text\":\"Layer 6 — Generation: can the model use correct evidence correctly?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-gen-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Once the system has demonstrably supplied sufficient evidence, generation becomes independently testable. The model may overgeneralize, combine incompatible passages, ignore a negative statement, fail to follow the requested answer format, invent a bridge between facts, or answer from parametric memory instead of the retrieved evidence.\"},\"tunes\":{}},{\"id\":\"p-gen-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"This is why end-to-end correctness alone is insufficient for diagnosis. OpenAI recommends evaluation as a structured way to understand application behaviour, while Anthropic's agent-evaluation guidance emphasizes multiple trials, graders, traces, and realistic failure cases. For RAG, the generator should be tested both with normal retrieval and with controlled gold context.\"},\"tunes\":{}},{\"id\":\"h-evidence\",\"type\":\"header\",\"data\":{\"text\":\"Layer 7 — Evidence attribution: is the answer actually supported?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-evidence-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A plausible answer with citations can still be weakly grounded. The cited document may be relevant to the topic but not support the specific claim. One sentence may be supported while another is inferred. A citation may point to a source that contradicts the answer once its conditions are read.\"},\"tunes\":{}},{\"id\":\"p-evidence-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Citation evaluation therefore belongs after generation. AWS distinguishes citation precision from citation coverage: whether cited passages are correctly cited and whether the answer is sufficiently supported by citations. In production, claim-level support is more useful than treating the presence of any citation as evidence quality.\"},\"tunes\":{}},{\"id\":\"h-validity\",\"type\":\"header\",\"data\":{\"text\":\"Layer 8 — Validity and freshness: was the evidence correct for this version of reality?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-valid-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"RAG can retrieve a perfectly authentic, highly relevant, faithfully quoted source and still produce a wrong answer if the source is no longer valid for the current question. Policies change. APIs are deprecated. prices move. software behaviour changes between versions. product inventory changes. permissions change. game patches change mechanics.\"},\"tunes\":{}},{\"id\":\"p-valid-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"This is a separate failure class from hallucination. The evidence is real; its applicability is wrong. A robust system therefore needs timestamps, version or jurisdiction metadata where relevant, source authority, supersession rules, and an explicit mechanism for deciding when older evidence must be restricted or abandoned.\"},\"tunes\":{}},{\"id\":\"h-oracle\",\"type\":\"header\",\"data\":{\"text\":\"The fastest isolation method: the oracle-context test\",\"level\":2},\"tunes\":{}},{\"id\":\"p-oracle-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"The most useful first split is simple: manually provide the generator with a small set of evidence that you know is sufficient to answer the question. Keep the task and expected answer unchanged.\"},\"tunes\":{}},{\"id\":\"oracle-comparison\",\"type\":\"comparison\",\"data\":{\"title\":\"Oracle-context test\",\"layout\":\"table\",\"columns\":[{\"id\":\"result\",\"label\":\"Result\"},{\"id\":\"meaning\",\"label\":\"Likely interpretation\"},{\"id\":\"next\",\"label\":\"Next diagnostic step\"}],\"rows\":[{\"id\":\"oracle-pass\",\"label\":\"Answer becomes correct\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"oracle-fail\",\"label\":\"Answer remains wrong\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"oracle-partial\",\"label\":\"Answer improves but remains incomplete\",\"values\":[\"\",\"\",\"\"]}]},\"tunes\":{}},{\"id\":\"oracle-tip\",\"type\":\"callout\",\"data\":{\"variant\":\"tip\",\"title\":\"Why this test is powerful\",\"body\":\"The oracle-context test removes most of the retrieval pipeline from the experiment. It does not prove that generation is perfect, but it gives you a fast counterfactual: \u003Cstrong>what would the model do if retrieval had already succeeded?\u003C\u002Fstrong>\"},\"tunes\":{}},{\"id\":\"h-sequence\",\"type\":\"header\",\"data\":{\"text\":\"A production diagnostic sequence\",\"level\":2},\"tunes\":{}},{\"id\":\"diag-flow\",\"type\":\"processFlow\",\"data\":{\"title\":\"Diagnose the failure from evidence to answer\",\"orientation\":\"auto\",\"steps\":[{\"label\":\"1. Define the expected claim\",\"description\":\"Write the expected answer, allowed uncertainty, and the evidence that would justify it.\"},{\"label\":\"2. Verify source coverage\",\"description\":\"Confirm that authoritative and permitted evidence exists in the indexed or reachable source set.\"},{\"label\":\"3. Run the oracle-context test\",\"description\":\"Supply sufficient gold evidence directly to the generator and observe whether the answer becomes correct.\"},{\"label\":\"4. Inspect the retrieval query\",\"description\":\"Check rewrites, entities, filters, language, time constraints, decomposition, and hidden assumptions.\"},{\"label\":\"5. Inspect candidates before reranking\",\"description\":\"Determine whether relevant evidence was retrieved at all and record its rank.\"},{\"label\":\"6. Inspect ranking and context assembly\",\"description\":\"Check reranking, metadata filters, truncation, chunk boundaries, duplicates, conflicts, and top-k composition.\"},{\"label\":\"7. Grade generation and citations separately\",\"description\":\"Measure answer correctness, completeness, faithfulness, and claim-level evidence support.\"},{\"label\":\"8. Test validity boundaries\",\"description\":\"Check whether version, date, state, jurisdiction, permissions, or superseding evidence changes the answer.\"}]},\"tunes\":{}},{\"id\":\"h-one-change\",\"type\":\"header\",\"data\":{\"text\":\"Do not change three layers at once\",\"level\":2},\"tunes\":{}},{\"id\":\"p-one-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A common debugging mistake is to change embeddings, chunk sizes, top-k, prompts, and the model in one iteration. If the score improves, you do not know why. If it gets worse, you do not know which change caused the regression.\"},\"tunes\":{}},{\"id\":\"p-one-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Treat RAG debugging like experimental diagnosis: hold as much of the pipeline constant as possible and replace one uncertain component with a controlled input. Gold documents isolate retrieval. Gold chunks isolate chunk selection. Fixed context isolates generation. A fixed model isolates retrieval changes. A fixed corpus isolates ingestion and indexing changes.\"},\"tunes\":{}},{\"id\":\"h-matrix\",\"type\":\"header\",\"data\":{\"text\":\"A failure matrix for common RAG symptoms\",\"level\":2},\"tunes\":{}},{\"id\":\"symptom-matrix\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Symptom\",\"Most likely layers to test first\",\"Discriminating test\"],[\"No relevant source appears\",\"Source coverage → Query → Candidate retrieval\",\"Search the corpus manually, then inspect rewritten query and unfiltered candidates\"],[\"Relevant source appears but answer is wrong\",\"Context assembly → Generation\",\"Oracle-context test with the same source reduced to decisive passages\"],[\"Answer is correct sometimes, wrong other times\",\"Ranking → Context assembly → Generation variability\",\"Repeat trials while logging retrieved set, rank, prompt context, and model output\"],[\"Answer cites the right document but overstates it\",\"Generation → Evidence attribution → Validity\",\"Grade each claim against the exact cited passage\"],[\"Old information keeps winning\",\"Ranking → Validity\u002Ffreshness\",\"Compare with recency\u002Fsupersession rules and inspect metadata\"],[\"Answer misses an exception\",\"Chunking → Context assembly\",\"Check whether rule and exception were split or truncated\"],[\"Adding more top-k makes quality worse\",\"Ranking → Context overload\",\"Ablate low-value chunks and compare with a minimal evidence set\"],[\"Changing the model fixes the answer\",\"Generation, but not necessarily retrieval\",\"Repeat with identical retrieved context across models\"],[\"Changing embeddings fixes the answer\",\"Retrieval\u002Franking\",\"Keep generator and context template constant while comparing candidate recall\"]]},\"tunes\":{}},{\"id\":\"h-metrics\",\"type\":\"header\",\"data\":{\"text\":\"Measure each layer with the metric it can actually influence\",\"level\":2},\"tunes\":{}},{\"id\":\"metrics-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Layer\",\"Useful measurements\",\"What not to infer\"],[\"Source coverage\",\"Answerable-question rate, corpus coverage, ingestion completeness\",\"Do not blame embeddings for missing source material\"],[\"Candidate retrieval\",\"Recall@k, hit rate, context coverage\",\"High recall does not prove ranking quality\"],[\"Ranking\",\"MRR, NDCG, gold rank, precision@k\",\"Good ranking does not prove the generator used the evidence\"],[\"Context assembly\",\"Evidence retention, duplication, contradiction rate, token utilization\",\"Large context does not mean useful context\"],[\"Generation\",\"Correctness, completeness, task success, faithfulness\",\"Correctness alone does not prove grounding\"],[\"Evidence attribution\",\"Citation precision, citation coverage, claim support\",\"A citation count is not evidence quality\"],[\"Validity\",\"Freshness, supersession accuracy, version\u002Fjurisdiction match\",\"Relevant evidence is not automatically applicable evidence\"]]},\"tunes\":{}},{\"id\":\"h-correct-answer\",\"type\":\"header\",\"data\":{\"text\":\"A correct answer can still hide a RAG defect\",\"level\":2},\"tunes\":{}},{\"id\":\"p-correct-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"The reverse problem also matters. A RAG system can produce the correct answer while retrieval is broken. The model may already know the answer from training, infer it from weak evidence, or guess correctly. If evaluation looks only at the final answer, the system can appear healthy until the question reaches information that exists only in the private corpus.\"},\"tunes\":{}},{\"id\":\"p-correct-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"This is the same reliability problem that appears in agent systems more broadly: outcome correctness is not enough to prove that the execution path was reliable. For RAG, traces should preserve at least the retrieval query, candidate set, ranking, final context, answer, citations, model version, corpus\u002Findex version, and relevant filters.\"},\"tunes\":{}},{\"id\":\"internal-reliability\",\"type\":\"referralArticle\",\"data\":{\"url\":\"https:\u002F\u002Fstajic.de\u002Fblog\u002Fai-agent-reliability-why-the-final-answer-is-not-enough\",\"title\":\"AI Agent Reliability: Why the Final Answer Is Not Enough\",\"excerpt\":\"Correct output does not prove correct reasoning, safe execution, or a trustworthy system. This article extends that principle from RAG diagnosis to agent trajectories and operational assurance.\",\"ctaLabel\":\"Read the related article\"},\"tunes\":{}},{\"id\":\"h-hypotheses\",\"type\":\"header\",\"data\":{\"text\":\"Use competing hypotheses, not a favourite explanation\",\"level\":2},\"tunes\":{}},{\"id\":\"p-hyp-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"If a bad answer immediately becomes “an embedding problem,” the investigation is already biased. A stronger debugging method writes down competing hypotheses before changing the system: missing source, bad query rewrite, low retrieval recall, bad reranking, context truncation, conflicting versions, generation failure, citation failure, or stale evidence.\"},\"tunes\":{}},{\"id\":\"p-hyp-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Then choose a test that would separate those hypotheses. This is more efficient than collecting more examples that support the first explanation. The same principle applies to AI-assisted technical reasoning in general: a useful diagnosis is one that survives discriminating tests, not one that merely sounds plausible.\"},\"tunes\":{}},{\"id\":\"internal-reasoning\",\"type\":\"referralArticle\",\"data\":{\"url\":\"https:\u002F\u002Fstajic.de\u002Fblog\u002Ffrom-research-protocol-to-a-general-ai-reasoning-framework\",\"title\":\"From Research Protocol to a General AI Reasoning Framework\",\"excerpt\":\"A domain-independent reasoning method for separating evidence from assumptions, testing competing hypotheses and using domain-specific validators.\",\"ctaLabel\":\"Read the reasoning framework\"},\"tunes\":{}},{\"id\":\"h-change\",\"type\":\"header\",\"data\":{\"text\":\"What would change this answer?\",\"level\":2},\"tunes\":{}},{\"id\":\"p-change-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"The exact diagnostic layers change with architecture. A simple single-document RAG application may have no query rewriting, reranker, or citation layer. An agentic retrieval system may add planning, multiple searches, tool selection, memory, permissions, and iterative evidence gathering. A structured database lookup may not use chunks or embeddings at all.\"},\"tunes\":{}},{\"id\":\"p-change-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The core method still holds: identify the components that can independently change the result, construct controlled tests that replace uncertain components with known-good inputs, and measure each component using evidence appropriate to that layer.\"},\"tunes\":{}},{\"id\":\"h-limitations\",\"type\":\"header\",\"data\":{\"text\":\"Limitations\",\"level\":2},\"tunes\":{}},{\"id\":\"p-limit-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Real failures are often coupled. A weak query can reduce recall, which changes reranking, which changes context, which increases generation variance. The oracle-context test is a diagnostic shortcut, not proof that one component is solely responsible. Evaluation datasets can also be unrepresentative, and model-based graders can introduce their own errors.\"},\"tunes\":{}},{\"id\":\"p-limit-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The proposed stack is therefore best used as an investigation structure: log the pipeline, isolate variables, reproduce failures, test competing explanations, and keep end-to-end evaluation after layer-level fixes.\"},\"tunes\":{}},{\"id\":\"h-conclusion\",\"type\":\"header\",\"data\":{\"text\":\"Conclusion\",\"level\":2},\"tunes\":{}},{\"id\":\"p-conclusion-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"“RAG failed” should be the beginning of the investigation, not the conclusion. A useful diagnosis identifies whether the system lacked the evidence, searched incorrectly, failed to retrieve it, ranked it badly, assembled unusable context, generated incorrectly, attributed claims poorly, or applied evidence outside its validity boundary.\"},\"tunes\":{}},{\"id\":\"p-conclusion-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The practical rule is simple: replace uncertainty with controlled evidence one layer at a time. Start with the oracle-context test. Separate retrieval-only evaluation from generation evaluation. Preserve the full trace. Then fix the component that actually failed instead of tuning the entire RAG stack by intuition.\"},\"tunes\":{}},{\"id\":\"h-faq\",\"type\":\"header\",\"data\":{\"text\":\"FAQ\",\"level\":2},\"tunes\":{}},{\"id\":\"faq\",\"type\":\"faq\",\"data\":{\"title\":\"RAG failure diagnosis\",\"items\":[{\"id\":\"faq1\",\"question\":\"How can I tell whether RAG retrieval or the LLM failed?\",\"answer\":\"Give the model a small set of known-correct evidence manually. If the answer becomes correct, investigate source coverage, query construction, retrieval, ranking, and context assembly. If the model still fails with sufficient evidence, retrieval is not the primary problem.\"},{\"id\":\"faq2\",\"question\":\"Can RAG fail even when the correct document was retrieved?\",\"answer\":\"Yes. The relevant passage can be ranked too low, truncated, separated from an exception, mixed with conflicting evidence, overwhelmed by irrelevant context, or used incorrectly by the generator.\"},{\"id\":\"faq3\",\"question\":\"Is answer correctness enough to evaluate a RAG system?\",\"answer\":\"No. A model can produce a correct answer despite weak retrieval by relying on prior model knowledge or chance. Evaluate retrieval and evidence support separately from final-answer correctness.\"},{\"id\":\"faq4\",\"question\":\"What should I log when debugging RAG?\",\"answer\":\"At minimum log the user request, transformed retrieval query, filters, candidate documents and ranks, final selected context, model and prompt version, answer, citations, corpus\u002Findex version, and timing or version metadata relevant to freshness.\"},{\"id\":\"faq5\",\"question\":\"Does increasing top-k usually fix RAG?\",\"answer\":\"Not reliably. A larger candidate or context set may improve recall, but it can also add noise, contradictions, duplicates, and context overload. Test whether the relevant evidence is missing before increasing top-k.\"}]},\"tunes\":{}},{\"id\":\"h-glossary\",\"type\":\"header\",\"data\":{\"text\":\"Glossary\",\"level\":2},\"tunes\":{}},{\"id\":\"glossary\",\"type\":\"glossary\",\"data\":{\"title\":\"Key diagnostic terms\",\"entries\":[{\"term\":\"Oracle-context test\",\"definition\":\"A controlled test in which the generator is given known-sufficient evidence directly to determine whether the dominant failure is upstream of generation.\",\"anchor\":\"oracle-context-test\"},{\"term\":\"Candidate retrieval\",\"definition\":\"The stage that selects an initial set of potentially relevant documents, chunks, records, or passages before final ranking or context assembly.\",\"anchor\":\"candidate-retrieval\"},{\"term\":\"Context assembly\",\"definition\":\"The process of converting retrieved evidence into the actual model input, including ordering, truncation, deduplication, formatting, and token-budget decisions.\",\"anchor\":\"context-assembly\"},{\"term\":\"Faithfulness\",\"definition\":\"The degree to which generated claims remain supported by the retrieved or supplied evidence rather than introducing unsupported content.\",\"anchor\":\"faithfulness\"},{\"term\":\"Context coverage\",\"definition\":\"A retrieval-oriented measure of whether selected evidence covers the information needed to answer the question.\",\"anchor\":\"context-coverage\"},{\"term\":\"Validity boundary\",\"definition\":\"The conditions under which a claim or answer remains applicable, such as time, version, jurisdiction, state, population, permissions, or source assumptions.\",\"anchor\":\"validity-boundary\"}]},\"tunes\":{}},{\"id\":\"h-sources\",\"type\":\"header\",\"data\":{\"text\":\"Primary sources and further reading\",\"level\":2},\"tunes\":{}},{\"id\":\"src-openai-rag\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Foptimizing-llm-accuracy\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI — Optimizing LLM Accuracy\",\"description\":\"OpenAI guidance separating retrieval failures from LLM failures in RAG applications.\"}},\"tunes\":{}},{\"id\":\"src-openai-evals\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fevaluation-best-practices\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI — Evaluation Best Practices\",\"description\":\"Guidance on structured evaluation for variable AI systems and production-oriented test design.\"}},\"tunes\":{}},{\"id\":\"src-aws-rag\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fknowledge-base-evaluation-metrics.html\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Amazon Bedrock — RAG Evaluation Metrics\",\"description\":\"Documentation separating retrieve-only metrics from retrieve-and-generate metrics, including context relevance, coverage, faithfulness and citation measures.\"}},\"tunes\":{}},{\"id\":\"src-anthropic-evals\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fdemystifying-evals-for-ai-agents\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Anthropic — Demystifying Evals for AI Agents\",\"description\":\"Practical evaluation guidance on tasks, trials, graders, traces, regressions and production behaviour.\"}},\"tunes\":{}},{\"id\":\"src-google-rag\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fcloud.google.com\u002Fuse-cases\u002Fretrieval-augmented-generation\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Google Cloud — Retrieval-Augmented Generation\",\"description\":\"Overview of RAG architecture and the importance of relevant retrieval and grounded generation.\"}},\"tunes\":{}}],\"version\":\"2.31.6\"}",{"time":875,"blocks":876,"version":834},1790369097340,[877,882,886,891,896,900,904,908,912,916,955,959,963,967,972,976,980,984,988,992,996,1000,1004,1008,1012,1016,1020,1024,1028,1032,1036,1040,1044,1048,1052,1056,1060,1064,1085,1090,1094,1123,1127,1131,1135,1139,1183,1187,1222,1226,1230,1234,1241,1245,1249,1253,1260,1264,1268,1272,1276,1280,1284,1287,1291,1295,1298,1318,1322,1342,1346,1353,1360,1367,1374],{"id":878,"data":879,"type":241,"tunes":881},"8zyFXn5HD5",{"title":880,"maxLevel":239,"minLevel":240},"Contents",{},{"id":215,"data":883,"type":218,"tunes":885},{"text":884},"A RAG system returns a weak, wrong, incomplete, or unsupported answer. The usual diagnosis is “retrieval failed” or “the model hallucinated.” Both labels are too broad to be useful. A production RAG pipeline can fail before retrieval, during retrieval, while ranking, while assembling context, during generation, or after generation when evidence and validity are checked.",{},{"id":221,"data":887,"type":226,"tunes":890},{"body":888,"title":889,"variant":225},"\u003Cstrong>Do not debug RAG as one component.\u003C\u002Fstrong> Diagnose it as a chain of independently testable layers. First determine whether the required evidence exists in an authoritative source. Then test query construction, candidate retrieval, ranking, context assembly, generation, evidence attribution, and freshness. The fastest isolation technique is an \u003Cstrong>oracle-context test\u003C\u002Fstrong>: give the generator the correct evidence manually. If the answer becomes correct, the dominant failure is upstream of generation. If it remains wrong, retrieval is not the primary problem.","Direct answer",{},{"id":229,"data":892,"type":226,"tunes":895},{"body":893,"title":894,"variant":233},"The RAG Failure Stack in this article is a practical diagnostic model, not a formal industry standard. Existing platforms already separate retrieval-only metrics from retrieve-and-generate metrics; this model extends that separation into a step-by-step production debugging method.","About the diagnostic model",{},{"id":244,"data":897,"type":42,"tunes":899},{"text":898,"level":240},"Why “RAG failed” is not a diagnosis",{},{"id":249,"data":901,"type":218,"tunes":903},{"text":902},"Retrieval-augmented generation combines several mechanisms: a user request is interpreted, one or more searches are constructed, candidate material is retrieved, results are filtered or reranked, selected evidence is inserted into a model context, and a model generates an answer. Production systems may add permissions, metadata filters, freshness rules, citations, query rewriting, hybrid search, tool calls, memory, and external state.",{},{"id":254,"data":905,"type":218,"tunes":907},{"text":906},"A wrong final answer therefore does not tell you which component failed. The model may have received the wrong evidence. It may have received the right evidence mixed with too much noise. The evidence may be correct but stale. The source may never have contained the answer. Or the model may have ignored perfectly adequate context.",{},{"id":259,"data":909,"type":218,"tunes":911},{"text":910},"OpenAI's RAG guidance already makes a fundamental distinction between retrieval failure and model failure: a system can supply the wrong context, or it can supply the right context and still generate the wrong answer. AWS similarly separates retrieve-only evaluation from retrieve-and-generate evaluation. For production diagnosis, that distinction should be taken further.",{},{"id":264,"data":913,"type":42,"tunes":915},{"text":914,"level":240},"The RAG Failure Stack",{},{"id":269,"data":917,"type":308,"tunes":954},{"content":918,"stretched":43,"withHeadings":14},[919,922,926,930,934,938,942,946,950],[920,274,921],"Layer","Typical failure",[923,924,925],"1. Source coverage","Does the required evidence exist in an allowed authoritative source?","The corpus cannot answer the question at all",[927,928,929],"2. Query construction","Did the system search for the right thing?","Intent, entities, filters, language, or time constraints are lost",[931,932,933],"3. Candidate retrieval","Did the relevant evidence enter the candidate set?","Low recall; the right chunk is never retrieved",[935,936,937],"4. Ranking &amp; filtering","Did the right evidence survive and rank high enough?","Relevant evidence is buried, filtered out, or outranked by superficially similar text",[939,940,941],"5. Context assembly","Did the model receive usable evidence?","Truncation, bad chunk boundaries, duplicates, conflicting passages, or context overload",[943,944,945],"6. Generation","Did the model use the supplied evidence correctly?","Unsupported inference, instruction failure, reasoning error, or refusal mismatch",[947,948,949],"7. Evidence attribution","Can the answer be traced to the evidence it claims to use?","Missing, weak, or incorrect citations; claims exceed retrieved support",[951,952,953],"8. Validity &amp; freshness","Is the evidence still valid for this question now?","Correct historical evidence is reused outside its valid time, version, jurisdiction, or state",{},{"id":311,"data":956,"type":42,"tunes":958},{"text":957,"level":239},"Layer 1 — Source coverage: can the system answer this at all?",{},{"id":316,"data":960,"type":218,"tunes":962},{"text":961},"Before tuning embeddings, rerankers, or prompts, verify that the answer exists in the knowledge space the system is allowed to use. This sounds obvious, but many RAG failures are actually corpus failures. The requested fact may be absent, hidden in an unindexed attachment, available only in a newer document, stored in a system outside the RAG corpus, or blocked by permissions.",{},{"id":321,"data":964,"type":218,"tunes":966},{"text":965},"A retrieval metric cannot recover information that was never indexed. A larger top-k cannot retrieve a document the pipeline does not contain. If the source coverage test fails, the correct fix is ingestion, source selection, permissions, or an explicit “not answerable from available evidence” behaviour.",{},{"id":326,"data":968,"type":226,"tunes":971},{"body":969,"title":970,"variant":330},"Teams often tune retrieval against questions that the corpus cannot actually answer. This can make the retriever better at finding related text while leaving the underlying information gap untouched.","Failure pattern",{},{"id":333,"data":973,"type":42,"tunes":975},{"text":974,"level":239},"Layer 2 — Query construction: did the system ask the corpus the right question?",{},{"id":338,"data":977,"type":218,"tunes":979},{"text":978},"The user query is not always the retrieval query. Production systems rewrite questions, resolve pronouns, extract entities, translate languages, add metadata constraints, split complex questions, or generate multiple searches. Every transformation can improve retrieval, but every transformation can also destroy information.",{},{"id":343,"data":981,"type":218,"tunes":983},{"text":982},"A request such as “Does the policy still apply to contractors in Germany after the September update?” contains at least an entity, a population, a jurisdiction, and a time boundary. A rewritten query that becomes “contractor policy” may retrieve semantically related text while losing the variables that decide whether the answer is valid.",{},{"id":348,"data":985,"type":42,"tunes":987},{"text":986,"level":239},"Layer 3 — Candidate retrieval: did the relevant evidence enter the set?",{},{"id":353,"data":989,"type":218,"tunes":991},{"text":990},"Candidate retrieval is primarily a recall problem. The diagnostic question is not yet whether the best result ranked first; it is whether relevant evidence appeared anywhere in the candidate pool. If the known correct source does not appear, investigate indexing, chunking, embeddings, lexical matching, metadata, hybrid search, language handling, synonyms, and query expansion.",{},{"id":358,"data":993,"type":218,"tunes":995},{"text":994},"This is where retrieval-only evaluation is valuable. AWS exposes context relevance and context coverage for retrieve-only RAG evaluation. The important production habit is to evaluate retrieval before generation so that a polished final answer cannot hide a weak candidate set.",{},{"id":363,"data":997,"type":42,"tunes":999},{"text":998,"level":239},"Layer 4 — Ranking and filtering: was the right evidence discarded or buried?",{},{"id":368,"data":1001,"type":218,"tunes":1003},{"text":1002},"A system can have good recall and still fail because the relevant evidence ranks below noisy but semantically similar material. Rerankers, recency boosts, authority weights, language preferences, tenant filters, access controls, product status filters, and deduplication all change what survives into the final context.",{},{"id":373,"data":1005,"type":218,"tunes":1007},{"text":1006},"Debugging should therefore preserve the full candidate list, not only the final top-k. If the gold evidence was retrieved at rank 18 and a reranker removed it, the fix is not the same as a retrieval miss.",{},{"id":378,"data":1009,"type":42,"tunes":1011},{"text":1010,"level":239},"Layer 5 — Context assembly: did useful evidence become usable context?",{},{"id":383,"data":1013,"type":218,"tunes":1015},{"text":1014},"Retrieval success does not guarantee context success. Relevant chunks can be truncated, separated from their qualifiers, duplicated until they dominate the prompt, mixed with contradictory versions, or surrounded by enough irrelevant text that the decisive passage loses salience.",{},{"id":388,"data":1017,"type":218,"tunes":1019},{"text":1018},"Chunk boundaries are especially important. A sentence may contain the rule while the following sentence contains the exception. If they are indexed separately and only the first is retrieved, the retriever can appear relevant while the assembled context becomes misleading.",{},{"id":393,"data":1021,"type":42,"tunes":1023},{"text":1022,"level":239},"Layer 6 — Generation: can the model use correct evidence correctly?",{},{"id":398,"data":1025,"type":218,"tunes":1027},{"text":1026},"Once the system has demonstrably supplied sufficient evidence, generation becomes independently testable. The model may overgeneralize, combine incompatible passages, ignore a negative statement, fail to follow the requested answer format, invent a bridge between facts, or answer from parametric memory instead of the retrieved evidence.",{},{"id":403,"data":1029,"type":218,"tunes":1031},{"text":1030},"This is why end-to-end correctness alone is insufficient for diagnosis. OpenAI recommends evaluation as a structured way to understand application behaviour, while Anthropic's agent-evaluation guidance emphasizes multiple trials, graders, traces, and realistic failure cases. For RAG, the generator should be tested both with normal retrieval and with controlled gold context.",{},{"id":408,"data":1033,"type":42,"tunes":1035},{"text":1034,"level":239},"Layer 7 — Evidence attribution: is the answer actually supported?",{},{"id":413,"data":1037,"type":218,"tunes":1039},{"text":1038},"A plausible answer with citations can still be weakly grounded. The cited document may be relevant to the topic but not support the specific claim. One sentence may be supported while another is inferred. A citation may point to a source that contradicts the answer once its conditions are read.",{},{"id":418,"data":1041,"type":218,"tunes":1043},{"text":1042},"Citation evaluation therefore belongs after generation. AWS distinguishes citation precision from citation coverage: whether cited passages are correctly cited and whether the answer is sufficiently supported by citations. In production, claim-level support is more useful than treating the presence of any citation as evidence quality.",{},{"id":423,"data":1045,"type":42,"tunes":1047},{"text":1046,"level":239},"Layer 8 — Validity and freshness: was the evidence correct for this version of reality?",{},{"id":428,"data":1049,"type":218,"tunes":1051},{"text":1050},"RAG can retrieve a perfectly authentic, highly relevant, faithfully quoted source and still produce a wrong answer if the source is no longer valid for the current question. Policies change. APIs are deprecated. prices move. software behaviour changes between versions. product inventory changes. permissions change. game patches change mechanics.",{},{"id":433,"data":1053,"type":218,"tunes":1055},{"text":1054},"This is a separate failure class from hallucination. The evidence is real; its applicability is wrong. A robust system therefore needs timestamps, version or jurisdiction metadata where relevant, source authority, supersession rules, and an explicit mechanism for deciding when older evidence must be restricted or abandoned.",{},{"id":438,"data":1057,"type":42,"tunes":1059},{"text":1058,"level":240},"The fastest isolation method: the oracle-context test",{},{"id":443,"data":1061,"type":218,"tunes":1063},{"text":1062},"The most useful first split is simple: manually provide the generator with a small set of evidence that you know is sufficient to answer the question. Keep the task and expected answer unchanged.",{},{"id":448,"data":1065,"type":475,"tunes":1084},{"rows":1066,"title":1076,"layout":308,"columns":1077},[1067,1070,1073],{"id":452,"label":1068,"values":1069},"Answer becomes correct",[455,455,455],{"id":457,"label":1071,"values":1072},"Answer remains wrong",[455,455,455],{"id":461,"label":1074,"values":1075},"Answer improves but remains incomplete",[455,455,455],"Oracle-context test",[1078,1080,1082],{"id":467,"label":1079},"Result",{"id":470,"label":1081},"Likely interpretation",{"id":473,"label":1083},"Next diagnostic step",{},{"id":478,"data":1086,"type":226,"tunes":1089},{"body":1087,"title":1088,"variant":482},"The oracle-context test removes most of the retrieval pipeline from the experiment. It does not prove that generation is perfect, but it gives you a fast counterfactual: \u003Cstrong>what would the model do if retrieval had already succeeded?\u003C\u002Fstrong>","Why this test is powerful",{},{"id":485,"data":1091,"type":42,"tunes":1093},{"text":1092,"level":240},"A production diagnostic sequence",{},{"id":490,"data":1095,"type":519,"tunes":1122},{"steps":1096,"title":1121,"orientation":518},[1097,1100,1103,1106,1109,1112,1115,1118],{"label":1098,"description":1099},"1. Define the expected claim","Write the expected answer, allowed uncertainty, and the evidence that would justify it.",{"label":1101,"description":1102},"2. Verify source coverage","Confirm that authoritative and permitted evidence exists in the indexed or reachable source set.",{"label":1104,"description":1105},"3. Run the oracle-context test","Supply sufficient gold evidence directly to the generator and observe whether the answer becomes correct.",{"label":1107,"description":1108},"4. Inspect the retrieval query","Check rewrites, entities, filters, language, time constraints, decomposition, and hidden assumptions.",{"label":1110,"description":1111},"5. Inspect candidates before reranking","Determine whether relevant evidence was retrieved at all and record its rank.",{"label":1113,"description":1114},"6. Inspect ranking and context assembly","Check reranking, metadata filters, truncation, chunk boundaries, duplicates, conflicts, and top-k composition.",{"label":1116,"description":1117},"7. Grade generation and citations separately","Measure answer correctness, completeness, faithfulness, and claim-level evidence support.",{"label":1119,"description":1120},"8. Test validity boundaries","Check whether version, date, state, jurisdiction, permissions, or superseding evidence changes the answer.","Diagnose the failure from evidence to answer",{},{"id":522,"data":1124,"type":42,"tunes":1126},{"text":1125,"level":240},"Do not change three layers at once",{},{"id":527,"data":1128,"type":218,"tunes":1130},{"text":1129},"A common debugging mistake is to change embeddings, chunk sizes, top-k, prompts, and the model in one iteration. If the score improves, you do not know why. If it gets worse, you do not know which change caused the regression.",{},{"id":532,"data":1132,"type":218,"tunes":1134},{"text":1133},"Treat RAG debugging like experimental diagnosis: hold as much of the pipeline constant as possible and replace one uncertain component with a controlled input. Gold documents isolate retrieval. Gold chunks isolate chunk selection. Fixed context isolates generation. A fixed model isolates retrieval changes. A fixed corpus isolates ingestion and indexing changes.",{},{"id":537,"data":1136,"type":42,"tunes":1138},{"text":1137,"level":240},"A failure matrix for common RAG symptoms",{},{"id":542,"data":1140,"type":308,"tunes":1182},{"content":1141,"stretched":43,"withHeadings":14},[1142,1146,1150,1154,1158,1162,1166,1170,1174,1178],[1143,1144,1145],"Symptom","Most likely layers to test first","Discriminating test",[1147,1148,1149],"No relevant source appears","Source coverage → Query → Candidate retrieval","Search the corpus manually, then inspect rewritten query and unfiltered candidates",[1151,1152,1153],"Relevant source appears but answer is wrong","Context assembly → Generation","Oracle-context test with the same source reduced to decisive passages",[1155,1156,1157],"Answer is correct sometimes, wrong other times","Ranking → Context assembly → Generation variability","Repeat trials while logging retrieved set, rank, prompt context, and model output",[1159,1160,1161],"Answer cites the right document but overstates it","Generation → Evidence attribution → Validity","Grade each claim against the exact cited passage",[1163,1164,1165],"Old information keeps winning","Ranking → Validity\u002Ffreshness","Compare with recency\u002Fsupersession rules and inspect metadata",[1167,1168,1169],"Answer misses an exception","Chunking → Context assembly","Check whether rule and exception were split or truncated",[1171,1172,1173],"Adding more top-k makes quality worse","Ranking → Context overload","Ablate low-value chunks and compare with a minimal evidence set",[1175,1176,1177],"Changing the model fixes the answer","Generation, but not necessarily retrieval","Repeat with identical retrieved context across models",[1179,1180,1181],"Changing embeddings fixes the answer","Retrieval\u002Franking","Keep generator and context template constant while comparing candidate recall",{},{"id":587,"data":1184,"type":42,"tunes":1186},{"text":1185,"level":240},"Measure each layer with the metric it can actually influence",{},{"id":592,"data":1188,"type":308,"tunes":1221},{"content":1189,"stretched":43,"withHeadings":14},[1190,1193,1197,1201,1205,1209,1213,1217],[920,1191,1192],"Useful measurements","What not to infer",[1194,1195,1196],"Source coverage","Answerable-question rate, corpus coverage, ingestion completeness","Do not blame embeddings for missing source material",[1198,1199,1200],"Candidate retrieval","Recall@k, hit rate, context coverage","High recall does not prove ranking quality",[1202,1203,1204],"Ranking","MRR, NDCG, gold rank, precision@k","Good ranking does not prove the generator used the evidence",[1206,1207,1208],"Context assembly","Evidence retention, duplication, contradiction rate, token utilization","Large context does not mean useful context",[1210,1211,1212],"Generation","Correctness, completeness, task success, faithfulness","Correctness alone does not prove grounding",[1214,1215,1216],"Evidence attribution","Citation precision, citation coverage, claim support","A citation count is not evidence quality",[1218,1219,1220],"Validity","Freshness, supersession accuracy, version\u002Fjurisdiction match","Relevant evidence is not automatically applicable evidence",{},{"id":628,"data":1223,"type":42,"tunes":1225},{"text":1224,"level":240},"A correct answer can still hide a RAG defect",{},{"id":633,"data":1227,"type":218,"tunes":1229},{"text":1228},"The reverse problem also matters. A RAG system can produce the correct answer while retrieval is broken. The model may already know the answer from training, infer it from weak evidence, or guess correctly. If evaluation looks only at the final answer, the system can appear healthy until the question reaches information that exists only in the private corpus.",{},{"id":638,"data":1231,"type":218,"tunes":1233},{"text":1232},"This is the same reliability problem that appears in agent systems more broadly: outcome correctness is not enough to prove that the execution path was reliable. For RAG, traces should preserve at least the retrieval query, candidate set, ranking, final context, answer, citations, model version, corpus\u002Findex version, and relevant filters.",{},{"id":643,"data":1235,"type":649,"tunes":1240},{"url":1236,"title":1237,"excerpt":1238,"ctaLabel":1239},"https:\u002F\u002Fstajic.de\u002Fblog\u002Fai-agent-reliability-why-the-final-answer-is-not-enough","AI Agent Reliability: Why the Final Answer Is Not Enough","Correct output does not prove correct reasoning, safe execution, or a trustworthy system. This article extends that principle from RAG diagnosis to agent trajectories and operational assurance.","Read the related article",{},{"id":652,"data":1242,"type":42,"tunes":1244},{"text":1243,"level":240},"Use competing hypotheses, not a favourite explanation",{},{"id":657,"data":1246,"type":218,"tunes":1248},{"text":1247},"If a bad answer immediately becomes “an embedding problem,” the investigation is already biased. A stronger debugging method writes down competing hypotheses before changing the system: missing source, bad query rewrite, low retrieval recall, bad reranking, context truncation, conflicting versions, generation failure, citation failure, or stale evidence.",{},{"id":662,"data":1250,"type":218,"tunes":1252},{"text":1251},"Then choose a test that would separate those hypotheses. This is more efficient than collecting more examples that support the first explanation. The same principle applies to AI-assisted technical reasoning in general: a useful diagnosis is one that survives discriminating tests, not one that merely sounds plausible.",{},{"id":667,"data":1254,"type":649,"tunes":1259},{"url":1255,"title":1256,"excerpt":1257,"ctaLabel":1258},"https:\u002F\u002Fstajic.de\u002Fblog\u002Ffrom-research-protocol-to-a-general-ai-reasoning-framework","From Research Protocol to a General AI Reasoning Framework","A domain-independent reasoning method for separating evidence from assumptions, testing competing hypotheses and using domain-specific validators.","Read the reasoning framework",{},{"id":675,"data":1261,"type":42,"tunes":1263},{"text":1262,"level":240},"What would change this answer?",{},{"id":680,"data":1265,"type":218,"tunes":1267},{"text":1266},"The exact diagnostic layers change with architecture. A simple single-document RAG application may have no query rewriting, reranker, or citation layer. An agentic retrieval system may add planning, multiple searches, tool selection, memory, permissions, and iterative evidence gathering. A structured database lookup may not use chunks or embeddings at all.",{},{"id":685,"data":1269,"type":218,"tunes":1271},{"text":1270},"The core method still holds: identify the components that can independently change the result, construct controlled tests that replace uncertain components with known-good inputs, and measure each component using evidence appropriate to that layer.",{},{"id":690,"data":1273,"type":42,"tunes":1275},{"text":1274,"level":240},"Limitations",{},{"id":695,"data":1277,"type":218,"tunes":1279},{"text":1278},"Real failures are often coupled. A weak query can reduce recall, which changes reranking, which changes context, which increases generation variance. The oracle-context test is a diagnostic shortcut, not proof that one component is solely responsible. Evaluation datasets can also be unrepresentative, and model-based graders can introduce their own errors.",{},{"id":700,"data":1281,"type":218,"tunes":1283},{"text":1282},"The proposed stack is therefore best used as an investigation structure: log the pipeline, isolate variables, reproduce failures, test competing explanations, and keep end-to-end evaluation after layer-level fixes.",{},{"id":705,"data":1285,"type":42,"tunes":1286},{"text":707,"level":240},{},{"id":710,"data":1288,"type":218,"tunes":1290},{"text":1289},"“RAG failed” should be the beginning of the investigation, not the conclusion. A useful diagnosis identifies whether the system lacked the evidence, searched incorrectly, failed to retrieve it, ranked it badly, assembled unusable context, generated incorrectly, attributed claims poorly, or applied evidence outside its validity boundary.",{},{"id":715,"data":1292,"type":218,"tunes":1294},{"text":1293},"The practical rule is simple: replace uncertainty with controlled evidence one layer at a time. Start with the oracle-context test. Separate retrieval-only evaluation from generation evaluation. Preserve the full trace. Then fix the component that actually failed instead of tuning the entire RAG stack by intuition.",{},{"id":720,"data":1296,"type":42,"tunes":1297},{"text":722,"level":240},{},{"id":725,"data":1299,"type":725,"tunes":1317},{"items":1300,"title":1316},[1301,1304,1307,1310,1313],{"id":729,"answer":1302,"question":1303},"Give the model a small set of known-correct evidence manually. If the answer becomes correct, investigate source coverage, query construction, retrieval, ranking, and context assembly. If the model still fails with sufficient evidence, retrieval is not the primary problem.","How can I tell whether RAG retrieval or the LLM failed?",{"id":733,"answer":1305,"question":1306},"Yes. The relevant passage can be ranked too low, truncated, separated from an exception, mixed with conflicting evidence, overwhelmed by irrelevant context, or used incorrectly by the generator.","Can RAG fail even when the correct document was retrieved?",{"id":737,"answer":1308,"question":1309},"No. A model can produce a correct answer despite weak retrieval by relying on prior model knowledge or chance. Evaluate retrieval and evidence support separately from final-answer correctness.","Is answer correctness enough to evaluate a RAG system?",{"id":741,"answer":1311,"question":1312},"At minimum log the user request, transformed retrieval query, filters, candidate documents and ranks, final selected context, model and prompt version, answer, citations, corpus\u002Findex version, and timing or version metadata relevant to freshness.","What should I log when debugging RAG?",{"id":745,"answer":1314,"question":1315},"Not reliably. A larger candidate or context set may improve recall, but it can also add noise, contradictions, duplicates, and context overload. Test whether the relevant evidence is missing before increasing top-k.","Does increasing top-k usually fix RAG?","RAG failure diagnosis",{},{"id":751,"data":1319,"type":42,"tunes":1321},{"text":1320,"level":240},"Glossary",{},{"id":756,"data":1323,"type":756,"tunes":1341},{"title":1324,"entries":1325},"Key diagnostic terms",[1326,1328,1330,1332,1335,1338],{"term":1076,"anchor":761,"definition":1327},"A controlled test in which the generator is given known-sufficient evidence directly to determine whether the dominant failure is upstream of generation.",{"term":1198,"anchor":765,"definition":1329},"The stage that selects an initial set of potentially relevant documents, chunks, records, or passages before final ranking or context assembly.",{"term":1206,"anchor":768,"definition":1331},"The process of converting retrieved evidence into the actual model input, including ordering, truncation, deduplication, formatting, and token-budget decisions.",{"term":1333,"anchor":772,"definition":1334},"Faithfulness","The degree to which generated claims remain supported by the retrieved or supplied evidence rather than introducing unsupported content.",{"term":1336,"anchor":776,"definition":1337},"Context coverage","A retrieval-oriented measure of whether selected evidence covers the information needed to answer the question.",{"term":1339,"anchor":780,"definition":1340},"Validity boundary","The conditions under which a claim or answer remains applicable, such as time, version, jurisdiction, state, population, permissions, or source assumptions.",{},{"id":784,"data":1343,"type":42,"tunes":1345},{"text":1344,"level":240},"Primary sources and further reading",{},{"id":789,"data":1347,"type":796,"tunes":1352},{"link":791,"meta":1348},{"image":1349,"title":1350,"description":1351},{"url":455},"OpenAI — Optimizing LLM Accuracy","OpenAI guidance separating retrieval failures from LLM failures in RAG applications.",{},{"id":799,"data":1354,"type":796,"tunes":1359},{"link":801,"meta":1355},{"image":1356,"title":1357,"description":1358},{"url":455},"OpenAI — Evaluation Best Practices","Guidance on structured evaluation for variable AI systems and production-oriented test design.",{},{"id":808,"data":1361,"type":796,"tunes":1366},{"link":810,"meta":1362},{"image":1363,"title":1364,"description":1365},{"url":455},"Amazon Bedrock — RAG Evaluation Metrics","Documentation separating retrieve-only metrics from retrieve-and-generate metrics, including context relevance, coverage, faithfulness and citation measures.",{},{"id":817,"data":1368,"type":796,"tunes":1373},{"link":819,"meta":1369},{"image":1370,"title":1371,"description":1372},{"url":455},"Anthropic — Demystifying Evals for AI Agents","Practical evaluation guidance on tasks, trials, graders, traces, regressions and production behaviour.",{},{"id":826,"data":1375,"type":796,"tunes":1380},{"link":828,"meta":1376},{"image":1377,"title":1378,"description":1379},{"url":455},"Google Cloud — Retrieval-Augmented Generation","Overview of RAG architecture and the importance of relevant retrieval and grounded generation.",{},"When a RAG answer is wrong, blaming retrieval or the model is too vague. This diagnostic method isolates source coverage, query construction, retrieval, ranking, context assembly, generation, evidence attribution, and freshness—so the actual failure can be reproduced and fixed.",{"lang":7,"title":208,"content":210,"contentJson":1383,"excerpt":835},{"time":212,"blocks":1384,"version":834},[1385,1388,1391,1394,1397,1400,1403,1406,1409,1412,1425,1428,1431,1434,1437,1440,1443,1446,1449,1452,1455,1458,1461,1464,1467,1470,1473,1476,1479,1482,1485,1488,1491,1494,1497,1500,1503,1506,1520,1523,1526,1538,1541,1544,1547,1550,1564,1567,1579,1582,1585,1588,1591,1594,1597,1600,1603,1606,1609,1612,1615,1618,1621,1624,1627,1630,1633,1642,1645,1655,1658,1663,1668,1673,1678],{"id":215,"data":1386,"type":218,"tunes":1387},{"text":217},{},{"id":221,"data":1389,"type":226,"tunes":1390},{"body":223,"title":224,"variant":225},{},{"id":229,"data":1392,"type":226,"tunes":1393},{"body":231,"title":232,"variant":233},{},{"id":236,"data":1395,"type":241,"tunes":1396},{"title":238,"maxLevel":239,"minLevel":240},{},{"id":244,"data":1398,"type":42,"tunes":1399},{"text":246,"level":240},{},{"id":249,"data":1401,"type":218,"tunes":1402},{"text":251},{},{"id":254,"data":1404,"type":218,"tunes":1405},{"text":256},{},{"id":259,"data":1407,"type":218,"tunes":1408},{"text":261},{},{"id":264,"data":1410,"type":42,"tunes":1411},{"text":266,"level":240},{},{"id":269,"data":1413,"type":308,"tunes":1424},{"content":1414,"stretched":43,"withHeadings":14},[1415,1416,1417,1418,1419,1420,1421,1422,1423],[273,274,275],[277,278,279],[281,282,283],[285,286,287],[289,290,291],[293,294,295],[297,298,299],[301,302,303],[305,306,307],{},{"id":311,"data":1426,"type":42,"tunes":1427},{"text":313,"level":239},{},{"id":316,"data":1429,"type":218,"tunes":1430},{"text":318},{},{"id":321,"data":1432,"type":218,"tunes":1433},{"text":323},{},{"id":326,"data":1435,"type":226,"tunes":1436},{"body":328,"title":329,"variant":330},{},{"id":333,"data":1438,"type":42,"tunes":1439},{"text":335,"level":239},{},{"id":338,"data":1441,"type":218,"tunes":1442},{"text":340},{},{"id":343,"data":1444,"type":218,"tunes":1445},{"text":345},{},{"id":348,"data":1447,"type":42,"tunes":1448},{"text":350,"level":239},{},{"id":353,"data":1450,"type":218,"tunes":1451},{"text":355},{},{"id":358,"data":1453,"type":218,"tunes":1454},{"text":360},{},{"id":363,"data":1456,"type":42,"tunes":1457},{"text":365,"level":239},{},{"id":368,"data":1459,"type":218,"tunes":1460},{"text":370},{},{"id":373,"data":1462,"type":218,"tunes":1463},{"text":375},{},{"id":378,"data":1465,"type":42,"tunes":1466},{"text":380,"level":239},{},{"id":383,"data":1468,"type":218,"tunes":1469},{"text":385},{},{"id":388,"data":1471,"type":218,"tunes":1472},{"text":390},{},{"id":393,"data":1474,"type":42,"tunes":1475},{"text":395,"level":239},{},{"id":398,"data":1477,"type":218,"tunes":1478},{"text":400},{},{"id":403,"data":1480,"type":218,"tunes":1481},{"text":405},{},{"id":408,"data":1483,"type":42,"tunes":1484},{"text":410,"level":239},{},{"id":413,"data":1486,"type":218,"tunes":1487},{"text":415},{},{"id":418,"data":1489,"type":218,"tunes":1490},{"text":420},{},{"id":423,"data":1492,"type":42,"tunes":1493},{"text":425,"level":239},{},{"id":428,"data":1495,"type":218,"tunes":1496},{"text":430},{},{"id":433,"data":1498,"type":218,"tunes":1499},{"text":435},{},{"id":438,"data":1501,"type":42,"tunes":1502},{"text":440,"level":240},{},{"id":443,"data":1504,"type":218,"tunes":1505},{"text":445},{},{"id":448,"data":1507,"type":475,"tunes":1519},{"rows":1508,"title":464,"layout":308,"columns":1515},[1509,1511,1513],{"id":452,"label":453,"values":1510},[455,455,455],{"id":457,"label":458,"values":1512},[455,455,455],{"id":461,"label":462,"values":1514},[455,455,455],[1516,1517,1518],{"id":467,"label":468},{"id":470,"label":471},{"id":473,"label":474},{},{"id":478,"data":1521,"type":226,"tunes":1522},{"body":480,"title":481,"variant":482},{},{"id":485,"data":1524,"type":42,"tunes":1525},{"text":487,"level":240},{},{"id":490,"data":1527,"type":519,"tunes":1537},{"steps":1528,"title":517,"orientation":518},[1529,1530,1531,1532,1533,1534,1535,1536],{"label":494,"description":495},{"label":497,"description":498},{"label":500,"description":501},{"label":503,"description":504},{"label":506,"description":507},{"label":509,"description":510},{"label":512,"description":513},{"label":515,"description":516},{},{"id":522,"data":1539,"type":42,"tunes":1540},{"text":524,"level":240},{},{"id":527,"data":1542,"type":218,"tunes":1543},{"text":529},{},{"id":532,"data":1545,"type":218,"tunes":1546},{"text":534},{},{"id":537,"data":1548,"type":42,"tunes":1549},{"text":539,"level":240},{},{"id":542,"data":1551,"type":308,"tunes":1563},{"content":1552,"stretched":43,"withHeadings":14},[1553,1554,1555,1556,1557,1558,1559,1560,1561,1562],[546,547,548],[550,551,552],[554,555,556],[558,559,560],[562,563,564],[566,567,568],[570,571,572],[574,575,576],[578,579,580],[582,583,584],{},{"id":587,"data":1565,"type":42,"tunes":1566},{"text":589,"level":240},{},{"id":592,"data":1568,"type":308,"tunes":1578},{"content":1569,"stretched":43,"withHeadings":14},[1570,1571,1572,1573,1574,1575,1576,1577],[273,596,597],[599,600,601],[603,604,605],[607,608,609],[611,612,613],[615,616,617],[619,620,621],[623,624,625],{},{"id":628,"data":1580,"type":42,"tunes":1581},{"text":630,"level":240},{},{"id":633,"data":1583,"type":218,"tunes":1584},{"text":635},{},{"id":638,"data":1586,"type":218,"tunes":1587},{"text":640},{},{"id":643,"data":1589,"type":649,"tunes":1590},{"url":645,"title":646,"excerpt":647,"ctaLabel":648},{},{"id":652,"data":1592,"type":42,"tunes":1593},{"text":654,"level":240},{},{"id":657,"data":1595,"type":218,"tunes":1596},{"text":659},{},{"id":662,"data":1598,"type":218,"tunes":1599},{"text":664},{},{"id":667,"data":1601,"type":649,"tunes":1602},{"url":669,"title":670,"excerpt":671,"ctaLabel":672},{},{"id":675,"data":1604,"type":42,"tunes":1605},{"text":677,"level":240},{},{"id":680,"data":1607,"type":218,"tunes":1608},{"text":682},{},{"id":685,"data":1610,"type":218,"tunes":1611},{"text":687},{},{"id":690,"data":1613,"type":42,"tunes":1614},{"text":692,"level":240},{},{"id":695,"data":1616,"type":218,"tunes":1617},{"text":697},{},{"id":700,"data":1619,"type":218,"tunes":1620},{"text":702},{},{"id":705,"data":1622,"type":42,"tunes":1623},{"text":707,"level":240},{},{"id":710,"data":1625,"type":218,"tunes":1626},{"text":712},{},{"id":715,"data":1628,"type":218,"tunes":1629},{"text":717},{},{"id":720,"data":1631,"type":42,"tunes":1632},{"text":722,"level":240},{},{"id":725,"data":1634,"type":725,"tunes":1641},{"items":1635,"title":748},[1636,1637,1638,1639,1640],{"id":729,"answer":730,"question":731},{"id":733,"answer":734,"question":735},{"id":737,"answer":738,"question":739},{"id":741,"answer":742,"question":743},{"id":745,"answer":746,"question":747},{},{"id":751,"data":1643,"type":42,"tunes":1644},{"text":753,"level":240},{},{"id":756,"data":1646,"type":756,"tunes":1654},{"title":758,"entries":1647},[1648,1649,1650,1651,1652,1653],{"term":464,"anchor":761,"definition":762},{"term":764,"anchor":765,"definition":766},{"term":611,"anchor":768,"definition":769},{"term":771,"anchor":772,"definition":773},{"term":775,"anchor":776,"definition":777},{"term":779,"anchor":780,"definition":781},{},{"id":784,"data":1656,"type":42,"tunes":1657},{"text":786,"level":240},{},{"id":789,"data":1659,"type":796,"tunes":1662},{"link":791,"meta":1660},{"image":1661,"title":794,"description":795},{"url":455},{},{"id":799,"data":1664,"type":796,"tunes":1667},{"link":801,"meta":1665},{"image":1666,"title":804,"description":805},{"url":455},{},{"id":808,"data":1669,"type":796,"tunes":1672},{"link":810,"meta":1670},{"image":1671,"title":813,"description":814},{"url":455},{},{"id":817,"data":1674,"type":796,"tunes":1677},{"link":819,"meta":1675},{"image":1676,"title":822,"description":823},{"url":455},{},{"id":826,"data":1679,"type":796,"tunes":1682},{"link":828,"meta":1680},{"image":1681,"title":831,"description":832},{"url":455},{},"Post erfolgreich abgerufen",{"items":1685,"source":1740,"manualIds":1741,"manualMatchedIds":1742},[1686,1693,1700,1706,1713,1720,1727,1733],{"id":1687,"slug":1688,"title":1689,"excerpt":1690,"featuredImage":1691,"publishedAt":1692},"475","managed-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose","Harnais d'agent géré vs boucle d'agent auto-hébergée : ce que vous gagnez, ce que vous perdez","“Agent auto-hébergé” peut désigner des architectures très différentes. Ce guide distingue le harnais géré, l'environnement d'exécution auto-hébergé et la boucle d'agent entièrement auto-opérée—et montre de quelle frontière de contrôle les équipes ont réellement besoin.","\u002Fuploads\u002F2026\u002F09\u002Fmanaged-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose-1790352403475-kj10jh.webp","2026-09-25T12:05:00.000Z",{"id":1694,"slug":1695,"title":1696,"excerpt":1697,"featuredImage":1698,"publishedAt":1699},"459","ollama-is-not-the-product-building-production-ready-open-llm-applications","Ollama n'est pas le produit : construire des applications Open-LLM prêtes pour la production","Exécuter un modèle local avec Ollama est facile. Construire une application Open-LLM prête pour la production est plus difficile : cela nécessite du RAG, du contrôle d'accès, de l'abstraction de fournisseur, de l'évaluation, de la journalisation, de la discipline de déploiement et une couche applicative contrôlée autour du modèle.","\u002Fuploads\u002F2026\u002F06\u002Follama-is-not-the-product-building-production-ready-open-llm-applications-1782679361640-h0usqf.webp","2026-06-28T16:39:00.000Z",{"id":1701,"slug":859,"title":1702,"excerpt":1703,"featuredImage":1704,"publishedAt":1705},"434","Guide complet d'Evaluation Harness : Maîtriser l'évaluation des performances des LLM","Ce guide propose une présentation détaillée d'Evaluation Harness, un framework essentiel pour évaluer rigoureusement les capacités des grands modèles de langage (LLM) dans les pipelines LLMOps d'entreprise. Découvrez la configuration, les meilleures pratiques et les techniques avancées pour garantir un benchmarking et une optimisation fiables des modèles.","\u002Fuploads\u002F2026\u002F04\u002Fevaluation-harness-1775466944495-4s0xv2.webp","2026-03-01T17:50:00.000Z",{"id":1707,"slug":1708,"title":1709,"excerpt":1710,"featuredImage":1711,"publishedAt":1712},"364","tipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung","Maîtriser le flux de travail SEO : Stratégies d'optimisation essentielles pour la croissance organique","Un flux de travail SEO structuré est crucial pour une croissance organique durable. Découvrez les dix stratégies fondamentales, de la recherche de mots-clés et l'optimisation technique à la qualité du contenu et l'analyse des performances.","\u002Fuploads\u002F2026\u002F03\u002Ftipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung-1774866098131-hwkzrg.webp","2024-01-26T06:35:00.000Z",{"id":1714,"slug":1715,"title":1716,"excerpt":1717,"featuredImage":1718,"publishedAt":1719},"477","computer-use-agents-why-a-successful-demo-can-still-be-an-unreliable-system","Agents d'utilisation de l'ordinateur : pourquoi une démonstration réussie peut tout de même être un système peu fiable","Les agents d'utilisation de l'ordinateur peuvent désormais accomplir d'impressionnants flux de travail sur navigateur et sur bureau, mais une seule exécution réussie prouve la capacité—non la fiabilité. Cet article montre comment tester la répétabilité, la robustesse environnementale, le contrôle à long horizon, la conscience de l'état, la vérification des résultats et la gestion sécurisée des objectifs.","\u002Fuploads\u002F2026\u002F09\u002Fcomputer-use-agents-why-a-successful-demo-can-still-be-an-unreliable-system-1790352854690-75qnrg.webp","2026-09-25T12:13:00.000Z",{"id":1721,"slug":1722,"title":1723,"excerpt":1724,"featuredImage":1725,"publishedAt":1726},"468","ai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","La mémoire des agents IA n'est pas le RAG : comment séparer la mémoire, la récupération, l'état et le contexte","La mémoire des agents, le RAG, l'état et le contexte sont souvent utilisés comme s'ils étaient interchangeables. Ils ne le sont pas. Ce modèle d'architecture pratique sépare les quatre couches, montre où chacune se situe et explique ce qui dysfonctionne lorsque les systèmes les fusionnent en une seule.","\u002Fuploads\u002F2026\u002F09\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context-1790350560308-np0xy6.webp","2026-09-25T11:34:00.000Z",{"id":1728,"slug":1729,"title":646,"excerpt":1730,"featuredImage":1731,"publishedAt":1732},"460","ai-agent-reliability-why-the-final-answer-is-not-enough","Une sortie correcte ne prouve pas un raisonnement correct, une exécution sûre ou un système digne de confiance.","\u002Fuploads\u002F2026\u002F09\u002Fai-agent-reliability-why-the-final-answer-is-not-enough-1788955466306-pl0qhz.webp","2026-09-09T04:01:00.000Z",{"id":1734,"slug":1735,"title":1736,"excerpt":1737,"featuredImage":1738,"publishedAt":1739},"478","what-is-rag-the-simplest-explanation-of-how-it-works","Qu'est-ce que le RAG ? L'explication la plus simple de son fonctionnement","Le RAG semble compliqué, mais l'idée est simple : avant qu'une IA ne réponde, elle recherche d'abord des informations utiles dans une source de connaissances et transmet ces informations au modèle de langage. Ce guide explique le RAG, les LLM, l'état, la mémoire et les outils à l'aide d'un modèle mental simple.","\u002Fuploads\u002F2026\u002F09\u002Fwhat-is-rag-the-simplest-explanation-of-how-it-works-1790377492124-khjagt.webp","2026-09-25T19:03:00.000Z","fallback",[],[]]