[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portal-settings:stajic:it":3,"public-menus:all":38,"post:rag-failed-but-which-layer-actually-failed-a-diagnostic-method:it":205,"related:post:rag-failed-but-which-layer-actually-failed-a-diagnostic-method:it: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","it","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","RAG non riuscito — Ma quale livello ha effettivamente fallito? Un metodo diagnostico","rag-failed-but-which-layer-actually-failed-a-diagnostic-method","{\"time\":1790369161057,\"blocks\":[{\"id\":\"intro\",\"type\":\"paragraph\",\"data\":{\"text\":\"Un sistema RAG restituisce una risposta debole, errata, incompleta o non supportata. La diagnosi abituale è \\\"il retrieval ha fallito\\\" o \\\"il modello ha allucinato\\\". Entrambe le etichette sono troppo generiche per essere utili. Una pipeline RAG di produzione può fallire prima del retrieval, durante il retrieval, durante il ranking, durante l'assemblaggio del contesto, durante la generazione o dopo la generazione, quando vengono verificati evidenza e validità.\"},\"tunes\":{}},{\"id\":\"direct\",\"type\":\"callout\",\"data\":{\"variant\":\"info\",\"title\":\"Risposta diretta\",\"body\":\"\u003Cstrong>Non fare debug del RAG come un unico componente.\u003C\u002Fstrong> Diagnosticarlo come una catena di livelli testabili in modo indipendente. Prima determina se l'evidenza richiesta esiste in una fonte autorevole. Poi testa la costruzione della query, il recupero dei candidati, il ranking, l'assemblaggio del contesto, la generazione, l'attribuzione dell'evidenza e la freschezza. La tecnica di isolamento più rapida è un \u003Cstrong>test con contesto oracolare\u003C\u002Fstrong>: fornisci manualmente al generatore l'evidenza corretta. Se la risposta diventa corretta, il fallimento dominante è a monte della generazione. Se rimane errata, il retrieval non è il problema principale.\"},\"tunes\":{}},{\"id\":\"model-note\",\"type\":\"callout\",\"data\":{\"variant\":\"note\",\"title\":\"Informazioni sul modello diagnostico\",\"body\":\"Il RAG Failure Stack in questo articolo è un modello diagnostico pratico, non uno standard industriale formale. Le piattaforme esistenti separano già le metriche di solo retrieval dalle metriche di retrieve-and-generate; questo modello estende tale separazione in un metodo di debug di produzione passo dopo passo.\"},\"tunes\":{}},{\"id\":\"toc\",\"type\":\"tableOfContents\",\"data\":{\"title\":\"Contenuti\",\"minLevel\":2,\"maxLevel\":3},\"tunes\":{}},{\"id\":\"h-not-diagnosis\",\"type\":\"header\",\"data\":{\"text\":\"Perché \\\"il RAG ha fallito\\\" non è una diagnosi\",\"level\":2},\"tunes\":{}},{\"id\":\"p-not-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"La generazione aumentata dal recupero combina diversi meccanismi: una richiesta dell'utente viene interpretata, vengono costruite una o più ricerche, viene recuperato materiale candidato, i risultati vengono filtrati o riordinati, l'evidenza selezionata viene inserita in un contesto del modello e un modello genera una risposta. I sistemi di produzione possono aggiungere permessi, filtri sui metadati, regole di freschezza, citazioni, riscrittura delle query, ricerca ibrida, chiamate a strumenti, memoria e stato esterno.\"},\"tunes\":{}},{\"id\":\"p-not-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Una risposta finale errata quindi non ti dice quale componente ha fallito. Il modello potrebbe aver ricevuto l'evidenza sbagliata. Potrebbe aver ricevuto l'evidenza giusta mescolata con troppo rumore. L'evidenza potrebbe essere corretta ma obsoleta. La fonte potrebbe non aver mai contenuto la risposta. Oppure il modello potrebbe aver ignorato un contesto perfettamente adeguato.\"},\"tunes\":{}},{\"id\":\"p-not-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"La guida RAG di OpenAI stabilisce già una distinzione fondamentale tra fallimento del retrieval e fallimento del modello: un sistema può fornire il contesto sbagliato, oppure può fornire il contesto giusto e generare comunque la risposta sbagliata. AWS separa analogamente la valutazione di solo retrieval dalla valutazione di retrieve-and-generate. Per la diagnosi di produzione, tale distinzione dovrebbe essere portata oltre.\"},\"tunes\":{}},{\"id\":\"h-stack\",\"type\":\"header\",\"data\":{\"text\":\"Il RAG Failure Stack\",\"level\":2},\"tunes\":{}},{\"id\":\"table-stack\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Livello\",\"Domanda\",\"Fallimento tipico\"],[\"1. Copertura della fonte\",\"L'evidenza richiesta esiste in una fonte autorevole consentita?\",\"Il corpus non può rispondere affatto alla domanda\"],[\"2. Costruzione della query\",\"Il sistema ha cercato la cosa giusta?\",\"Intento, entità, filtri, lingua o vincoli temporali vengono persi\"],[\"3. Recupero dei candidati\",\"L'evidenza rilevante è entrata nell'insieme dei candidati?\",\"Basso recall; il chunk giusto non viene mai recuperato\"],[\"4. Ranking e filtraggio\",\"L'evidenza giusta è sopravvissuta e si è classificata abbastanza in alto?\",\"L'evidenza rilevante viene sepolta, filtrata o superata da testo superficialmente simile\"],[\"5. Assemblaggio del contesto\",\"Il modello ha ricevuto evidenza utilizzabile?\",\"Troncamento, confini dei chunk errati, duplicati, passaggi in conflitto o sovraccarico di contesto\"],[\"6. Generazione\",\"Il modello ha usato correttamente l'evidenza fornita?\",\"Inferenza non supportata, fallimento delle istruzioni, errore di ragionamento o mancata corrispondenza nel rifiuto\"],[\"7. Attribuzione dell'evidenza\",\"La risposta può essere ricondotta all'evidenza che dichiara di usare?\",\"Citazioni mancanti, deboli o errate; le affermazioni superano il supporto recuperato\"],[\"8. Validità e freschezza\",\"L'evidenza è ancora valida per questa domanda ora?\",\"Evidenza storica corretta viene riutilizzata al di fuori del suo tempo, versione, giurisdizione o stato valido\"]]},\"tunes\":{}},{\"id\":\"h-source\",\"type\":\"header\",\"data\":{\"text\":\"Livello 1 — Copertura della fonte: il sistema può rispondere affatto?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-source-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Prima di ottimizzare embedding, reranker o prompt, verifica che la risposta esista nello spazio di conoscenza che il sistema è autorizzato a usare. Sembra ovvio, ma molti fallimenti del RAG sono in realtà fallimenti del corpus. Il fatto richiesto può essere assente, nascosto in un allegato non indicizzato, disponibile solo in un documento più recente, memorizzato in un sistema esterno al corpus RAG o bloccato da permessi.\"},\"tunes\":{}},{\"id\":\"p-source-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Una metrica di retrieval non può recuperare informazioni che non sono mai state indicizzate. Un top-k più grande non può recuperare un documento che la pipeline non contiene. Se il test di copertura della fonte fallisce, la correzione corretta è l'ingestione, la selezione della fonte, i permessi o un comportamento esplicito di \\\"non rispondibile dall'evidenza disponibile\\\".\"},\"tunes\":{}},{\"id\":\"source-warning\",\"type\":\"callout\",\"data\":{\"variant\":\"warning\",\"title\":\"Modello di fallimento\",\"body\":\"I team spesso ottimizzano il retrieval su domande a cui il corpus non può effettivamente rispondere. Questo può rendere il retriever migliore nel trovare testo correlato lasciando intatto il divario informativo sottostante.\"},\"tunes\":{}},{\"id\":\"h-query\",\"type\":\"header\",\"data\":{\"text\":\"Livello 2 — Costruzione della query: il sistema ha posto al corpus la domanda giusta?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-query-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"La query dell'utente non è sempre la query di retrieval. I sistemi di produzione riscrivono le domande, risolvono i pronomi, estraggono entità, traducono lingue, aggiungono vincoli sui metadati, dividono domande complesse o generano più ricerche. Ogni trasformazione può migliorare il retrieval, ma ogni trasformazione può anche distruggere informazioni.\"},\"tunes\":{}},{\"id\":\"p-query-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Una richiesta come \\\"La policy si applica ancora ai contraenti in Germania dopo l'aggiornamento di settembre?\\\" contiene almeno un'entità, una popolazione, una giurisdizione e un confine temporale. Una query riscritta che diventa \\\"policy contraenti\\\" può recuperare testo semanticamente correlato perdendo le variabili che decidono se la risposta è valida.\"},\"tunes\":{}},{\"id\":\"h-retrieval\",\"type\":\"header\",\"data\":{\"text\":\"Livello 3 — Recupero dei candidati: le prove rilevanti sono entrate nell'insieme?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-ret-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Il recupero dei candidati è principalmente un problema di richiamo. La domanda diagnostica non è ancora se il risultato migliore si è classificato primo; è se le prove rilevanti sono apparse ovunque nel pool di candidati. Se la fonte corretta nota non appare, indagare su indicizzazione, suddivisione in blocchi, embedding, corrispondenza lessicale, metadati, ricerca ibrida, gestione della lingua, sinonimi ed espansione delle query.\"},\"tunes\":{}},{\"id\":\"p-ret-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"È qui che la valutazione solo del recupero è preziosa. AWS espone la rilevanza del contesto e la copertura del contesto per la valutazione RAG solo di recupero. L'abitudine di produzione importante è valutare il recupero prima della generazione, in modo che una risposta finale rifinita non possa nascondere un insieme di candidati debole.\"},\"tunes\":{}},{\"id\":\"h-ranking\",\"type\":\"header\",\"data\":{\"text\":\"Livello 4 — Classificazione e filtraggio: le prove giuste sono state scartate o sepolte?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-rank-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Un sistema può avere un buon richiamo e fallire comunque perché le prove rilevanti si classificano al di sotto di materiale rumoroso ma semanticamente simile. Reranker, potenziamenti di recenza, pesi di autorità, preferenze linguistiche, filtri tenant, controlli di accesso, filtri di stato del prodotto e deduplicazione cambiano tutti ciò che sopravvive nel contesto finale.\"},\"tunes\":{}},{\"id\":\"p-rank-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Il debug dovrebbe quindi preservare l'elenco completo dei candidati, non solo i top-k finali. Se la prova d'oro è stata recuperata al rango 18 e un reranker l'ha rimossa, la correzione non è la stessa di un mancato recupero.\"},\"tunes\":{}},{\"id\":\"h-context\",\"type\":\"header\",\"data\":{\"text\":\"Livello 5 — Assemblaggio del contesto: le prove utili sono diventate un contesto utilizzabile?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-ctx-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Il successo del recupero non garantisce il successo del contesto. I blocchi rilevanti possono essere troncati, separati dai loro qualificatori, duplicati fino a dominare il prompt, mescolati con versioni contraddittorie o circondati da abbastanza testo irrilevante che il passaggio decisivo perde salienza.\"},\"tunes\":{}},{\"id\":\"p-ctx-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"I confini dei blocchi sono particolarmente importanti. Una frase può contenere la regola mentre la frase successiva contiene l'eccezione. Se sono indicizzati separatamente e viene recuperata solo la prima, il retriever può apparire rilevante mentre il contesto assemblato diventa fuorviante.\"},\"tunes\":{}},{\"id\":\"h-generation\",\"type\":\"header\",\"data\":{\"text\":\"Livello 6 — Generazione: il modello può usare correttamente le prove corrette?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-gen-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Una volta che il sistema ha dimostrabilmente fornito prove sufficienti, la generazione diventa testabile in modo indipendente. Il modello può generalizzare eccessivamente, combinare passaggi incompatibili, ignorare un'affermazione negativa, non seguire il formato di risposta richiesto, inventare un ponte tra i fatti o rispondere dalla memoria parametrica invece che dalle prove recuperate.\"},\"tunes\":{}},{\"id\":\"p-gen-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Ecco perché la correttezza end-to-end da sola è insufficiente per la diagnosi. OpenAI raccomanda la valutazione come un modo strutturato per comprendere il comportamento dell'applicazione, mentre la guida alla valutazione degli agenti di Anthropic enfatizza prove multiple, valutatori, tracce e casi di fallimento realistici. Per RAG, il generatore dovrebbe essere testato sia con il recupero normale sia con un contesto d'oro controllato.\"},\"tunes\":{}},{\"id\":\"h-evidence\",\"type\":\"header\",\"data\":{\"text\":\"Livello 7 — Attribuzione delle prove: la risposta è effettivamente supportata?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-evidence-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Una risposta plausibile con citazioni può comunque essere debolmente fondata. Il documento citato può essere rilevante per l'argomento ma non supportare l'affermazione specifica. Una frase può essere supportata mentre un'altra è inferita. Una citazione può puntare a una fonte che contraddice la risposta una volta lette le sue condizioni.\"},\"tunes\":{}},{\"id\":\"p-evidence-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"La valutazione delle citazioni appartiene quindi dopo la generazione. AWS distingue la precisione delle citazioni dalla copertura delle citazioni: se i passaggi citati sono citati correttamente e se la risposta è sufficientemente supportata dalle citazioni. In produzione, il supporto a livello di affermazione è più utile che trattare la presenza di qualsiasi citazione come qualità delle prove.\"},\"tunes\":{}},{\"id\":\"h-validity\",\"type\":\"header\",\"data\":{\"text\":\"Livello 8 — Validità e freschezza: le prove erano corrette per questa versione della realtà?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-valid-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"RAG può recuperare una fonte perfettamente autentica, altamente rilevante e fedelmente citata e produrre comunque una risposta sbagliata se la fonte non è più valida per la domanda attuale. Le politiche cambiano. Le API vengono deprecate. I prezzi si muovono. Il comportamento del software cambia tra le versioni. L'inventario dei prodotti cambia. I permessi cambiano. Le patch dei giochi cambiano la meccanica.\"},\"tunes\":{}},{\"id\":\"p-valid-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Questa è una classe di fallimento separata dall'allucinazione. Le prove sono reali; la loro applicabilità è sbagliata. Un sistema robusto necessita quindi di timestamp, metadati di versione o giurisdizione ove rilevante, autorità della fonte, regole di supersessione e un meccanismo esplicito per decidere quando le prove più vecchie devono essere limitate o abbandonate.\"},\"tunes\":{}},{\"id\":\"h-oracle\",\"type\":\"header\",\"data\":{\"text\":\"Il metodo di isolamento più rapido: il test del contesto oracolare\",\"level\":2},\"tunes\":{}},{\"id\":\"p-oracle-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"La prima suddivisione più utile è semplice: fornire manualmente al generatore un piccolo insieme di prove che sai essere sufficienti per rispondere alla domanda. Mantieni il compito e la risposta attesa invariati.\"},\"tunes\":{}},{\"id\":\"oracle-comparison\",\"type\":\"comparison\",\"data\":{\"title\":\"Test del contesto oracolare\",\"layout\":\"table\",\"columns\":[{\"id\":\"result\",\"label\":\"Risultato\"},{\"id\":\"meaning\",\"label\":\"Interpretazione probabile\"},{\"id\":\"next\",\"label\":\"Prossimo passo diagnostico\"}],\"rows\":[{\"id\":\"oracle-pass\",\"label\":\"La risposta diventa corretta\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"oracle-fail\",\"label\":\"La risposta rimane sbagliata\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"oracle-partial\",\"label\":\"La risposta migliora ma rimane incompleta\",\"values\":[\"\",\"\",\"\"]}]},\"tunes\":{}},{\"id\":\"oracle-tip\",\"type\":\"callout\",\"data\":{\"variant\":\"tip\",\"title\":\"Perché questo test è potente\",\"body\":\"Il test del contesto oracolare rimuove la maggior parte della pipeline di retrieval dall'esperimento. Non dimostra che la generazione sia perfetta, ma offre un controfattuale rapido: \u003Cstrong>cosa farebbe il modello se il retrieval fosse già riuscito?\u003C\u002Fstrong>\"},\"tunes\":{}},{\"id\":\"h-sequence\",\"type\":\"header\",\"data\":{\"text\":\"Una sequenza diagnostica di produzione\",\"level\":2},\"tunes\":{}},{\"id\":\"diag-flow\",\"type\":\"processFlow\",\"data\":{\"title\":\"Diagnosticare il fallimento dalle prove alla risposta\",\"orientation\":\"auto\",\"steps\":[{\"label\":\"1. Definire l'affermazione attesa\",\"description\":\"Scrivi la risposta attesa, l'incertezza consentita e le prove che la giustificherebbero.\"},{\"label\":\"2. Verificare la copertura delle fonti\",\"description\":\"Conferma che prove autorevoli e consentite esistano nell'insieme di fonti indicizzate o raggiungibili.\"},{\"label\":\"3. Eseguire il test del contesto oracolare\",\"description\":\"Fornisci direttamente al generatore prove gold sufficienti e osserva se la risposta diventa corretta.\"},{\"label\":\"4. Ispezionare la query di retrieval\",\"description\":\"Controlla riscritture, entità, filtri, lingua, vincoli temporali, decomposizione e assunzioni nascoste.\"},{\"label\":\"5. Ispezionare i candidati prima del reranking\",\"description\":\"Determina se le prove rilevanti sono state recuperate e registra il loro rank.\"},{\"label\":\"6. Ispezionare ranking e assemblaggio del contesto\",\"description\":\"Controlla reranking, filtri sui metadati, troncamento, confini dei chunk, duplicati, conflitti e composizione del top-k.\"},{\"label\":\"7. Valutare generazione e citazioni separatamente\",\"description\":\"Misura correttezza della risposta, completezza, fedeltà e supporto delle prove a livello di affermazione.\"},{\"label\":\"8. Testare i confini di validità\",\"description\":\"Controlla se versione, data, stato, giurisdizione, permessi o prove sostitutive cambiano la risposta.\"}]},\"tunes\":{}},{\"id\":\"h-one-change\",\"type\":\"header\",\"data\":{\"text\":\"Non cambiare tre livelli contemporaneamente\",\"level\":2},\"tunes\":{}},{\"id\":\"p-one-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Un errore comune di debug è cambiare embeddings, dimensioni dei chunk, top-k, prompt e modello in una sola iterazione. Se il punteggio migliora, non sai perché. Se peggiora, non sai quale modifica ha causato la regressione.\"},\"tunes\":{}},{\"id\":\"p-one-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Tratta il debug del RAG come una diagnosi sperimentale: mantieni costante quanta più pipeline possibile e sostituisci un componente incerto con un input controllato. I documenti gold isolano il retrieval. I chunk gold isolano la selezione dei chunk. Un contesto fisso isola la generazione. Un modello fisso isola le modifiche al retrieval. Un corpus fisso isola le modifiche a ingestione e indicizzazione.\"},\"tunes\":{}},{\"id\":\"h-matrix\",\"type\":\"header\",\"data\":{\"text\":\"Una matrice dei fallimenti per i sintomi comuni del RAG\",\"level\":2},\"tunes\":{}},{\"id\":\"symptom-matrix\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Sintomo\",\"Livelli più probabili da testare per primi\",\"Test discriminante\"],[\"Non compare alcuna fonte rilevante\",\"Copertura delle fonti → Query → Retrieval dei candidati\",\"Cerca manualmente nel corpus, poi ispeziona la query riscritta e i candidati non filtrati\"],[\"Compare una fonte rilevante ma la risposta è sbagliata\",\"Assemblaggio del contesto → Generazione\",\"Test del contesto oracolare con la stessa fonte ridotta ai passaggi decisivi\"],[\"La risposta è corretta a volte, sbagliata altre\",\"Ranking → Assemblaggio del contesto → Variabilità della generazione\",\"Ripeti le prove registrando insieme recuperato, rank, contesto del prompt e output del modello\"],[\"La risposta cita il documento giusto ma lo sovrainterpreta\",\"Generazione → Attribuzione delle prove → Validità\",\"Valuta ogni affermazione rispetto al passaggio esatto citato\"],[\"Le informazioni vecchie continuano a prevalere\",\"Ranking → Validità\u002Faggiornamento\",\"Confronta con regole di recency\u002Fsupersessione e ispeziona i metadati\"],[\"La risposta omette un'eccezione\",\"Chunking → Assemblaggio del contesto\",\"Controlla se regola ed eccezione sono state separate o troncate\"],[\"Aumentare il top-k peggiora la qualità\",\"Ranking → Sovraccarico del contesto\",\"Rimuovi i chunk di scarso valore e confronta con un insieme minimo di prove\"],[\"Cambiare il modello corregge la risposta\",\"Generazione, ma non necessariamente il retrieval\",\"Ripeti con contesto recuperato identico tra i modelli\"],[\"Cambiare gli embeddings corregge la risposta\",\"Retrieval\u002Franking\",\"Mantieni costanti generatore e template del contesto mentre confronti il recall dei candidati\"]]},\"tunes\":{}},{\"id\":\"h-metrics\",\"type\":\"header\",\"data\":{\"text\":\"Misura ogni livello con la metrica che può effettivamente influenzare\",\"level\":2},\"tunes\":{}},{\"id\":\"metrics-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Livello\",\"Misure utili\",\"Cosa non inferire\"],[\"Copertura delle fonti\",\"Tasso di domande a cui si può rispondere, copertura del corpus, completezza dell'ingestione\",\"Non incolpare gli embeddings per materiale sorgente mancante\"],[\"Retrieval dei candidati\",\"Recall@k, hit rate, copertura del contesto\",\"Un recall alto non prova la qualità del ranking\"],[\"Ranking\",\"MRR, NDCG, rank gold, precision@k\",\"Un buon ranking non prova che il generatore abbia usato le prove\"],[\"Assemblaggio del contesto\",\"Conservazione delle prove, duplicazione, tasso di contraddizione, utilizzo dei token\",\"Un contesto grande non significa un contesto utile\"],[\"Generazione\",\"Correttezza, completezza, successo del compito, fedeltà\",\"La sola correttezza non prova il grounding\"],[\"Attribuzione delle prove\",\"Precisione delle citazioni, copertura delle citazioni, supporto delle affermazioni\",\"Un conteggio delle citazioni non è qualità delle prove\"],[\"Validità\",\"Aggiornamento, accuratezza della supersessione, corrispondenza versione\u002Fgiurisdizione\",\"Prove rilevanti non sono automaticamente prove applicabili\"]]},\"tunes\":{}},{\"id\":\"h-correct-answer\",\"type\":\"header\",\"data\":{\"text\":\"Una risposta corretta può comunque nascondere un difetto del RAG\",\"level\":2},\"tunes\":{}},{\"id\":\"p-correct-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Anche il problema inverso è importante. Un sistema RAG può produrre la risposta corretta mentre il retrieval è rotto. Il modello potrebbe già conoscere la risposta dall'addestramento, inferirla da prove deboli o indovinare correttamente. Se la valutazione guarda solo alla risposta finale, il sistema può sembrare sano finché la domanda non raggiunge informazioni che esistono solo nel corpus privato.\"},\"tunes\":{}},{\"id\":\"p-correct-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"È lo stesso problema di affidabilità che emerge più in generale nei sistemi ad agenti: la correttezza dell'esito non basta a provare che il percorso di esecuzione fosse affidabile. Per il RAG, le tracce dovrebbero conservare almeno la query di retrieval, l'insieme dei candidati, il ranking, il contesto finale, la risposta, le citazioni, la versione del modello, la versione del corpus\u002Findice e i filtri rilevanti.\"},\"tunes\":{}},{\"id\":\"internal-reliability\",\"type\":\"referralArticle\",\"data\":{\"url\":\"https:\u002F\u002Fstajic.de\u002Fit\u002Fblog\u002Fai-agent-reliability-why-the-final-answer-is-not-enough\",\"title\":\"Affidabilità degli agenti AI: perché la risposta finale non basta\",\"excerpt\":\"Un output corretto non prova un ragionamento corretto, un'esecuzione sicura o un sistema affidabile. Questo articolo estende quel principio dalla diagnosi del RAG alle traiettorie degli agenti e all'assicurazione operativa.\",\"ctaLabel\":\"Leggi l'articolo correlato\"},\"tunes\":{}},{\"id\":\"h-hypotheses\",\"type\":\"header\",\"data\":{\"text\":\"Usa ipotesi concorrenti, non una spiegazione preferita\",\"level\":2},\"tunes\":{}},{\"id\":\"p-hyp-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Se una risposta sbagliata diventa immediatamente \\\"un problema di embedding\\\", l'indagine è già prevenuta. Un metodo di debug più solido annota ipotesi concorrenti prima di modificare il sistema: fonte mancante, riscrittura della query errata, basso recall nel recupero, reranking errato, troncamento del contesto, versioni in conflitto, fallimento della generazione, fallimento della citazione o evidenza obsoleta.\"},\"tunes\":{}},{\"id\":\"p-hyp-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Poi scegli un test che separi quelle ipotesi. Questo è più efficiente che raccogliere altri esempi che supportano la prima spiegazione. Lo stesso principio si applica al ragionamento tecnico assistito dall'IA in generale: una diagnosi utile è quella che sopravvive a test discriminanti, non quella che suona semplicemente plausibile.\"},\"tunes\":{}},{\"id\":\"internal-reasoning\",\"type\":\"referralArticle\",\"data\":{\"url\":\"https:\u002F\u002Fstajic.de\u002Fit\u002Fblog\u002Ffrom-research-protocol-to-a-general-ai-reasoning-framework\",\"title\":\"Dal protocollo di ricerca a un framework generale di ragionamento IA\",\"excerpt\":\"Un metodo di ragionamento indipendente dal dominio per separare le evidenze dalle assunzioni, testare ipotesi concorrenti e utilizzare validatori specifici del dominio.\",\"ctaLabel\":\"Leggi il framework di ragionamento\"},\"tunes\":{}},{\"id\":\"h-change\",\"type\":\"header\",\"data\":{\"text\":\"Cosa cambierebbe questa risposta?\",\"level\":2},\"tunes\":{}},{\"id\":\"p-change-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"I livelli diagnostici esatti cambiano con l'architettura. Una semplice applicazione RAG a documento singolo può non avere riscrittura della query, reranker o livello di citazione. Un sistema di recupero agentico può aggiungere pianificazione, ricerche multiple, selezione degli strumenti, memoria, permessi e raccolta iterativa di evidenze. Una ricerca in un database strutturato può non utilizzare affatto chunk o embedding.\"},\"tunes\":{}},{\"id\":\"p-change-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Il metodo di base rimane valido: identificare i componenti che possono cambiare indipendentemente il risultato, costruire test controllati che sostituiscono i componenti incerti con input noti come corretti e misurare ciascun componente utilizzando evidenze appropriate a quel livello.\"},\"tunes\":{}},{\"id\":\"h-limitations\",\"type\":\"header\",\"data\":{\"text\":\"Limitazioni\",\"level\":2},\"tunes\":{}},{\"id\":\"p-limit-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"I fallimenti reali sono spesso accoppiati. Una query debole può ridurre il recall, che cambia il reranking, che cambia il contesto, che aumenta la varianza della generazione. Il test del contesto oracolare è una scorciatoia diagnostica, non la prova che un componente sia l'unico responsabile. Anche i dataset di valutazione possono essere non rappresentativi, e i valutatori basati su modelli possono introdurre i propri errori.\"},\"tunes\":{}},{\"id\":\"p-limit-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Lo stack proposto è quindi meglio utilizzato come struttura di indagine: registrare la pipeline, isolare le variabili, riprodurre i fallimenti, testare spiegazioni concorrenti e mantenere la valutazione end-to-end dopo le correzioni a livello di livello.\"},\"tunes\":{}},{\"id\":\"h-conclusion\",\"type\":\"header\",\"data\":{\"text\":\"Conclusione\",\"level\":2},\"tunes\":{}},{\"id\":\"p-conclusion-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"\\\"RAG ha fallito\\\" dovrebbe essere l'inizio dell'indagine, non la conclusione. Una diagnosi utile identifica se al sistema mancava l'evidenza, ha cercato in modo errato, non è riuscito a recuperarla, l'ha classificata male, ha assemblato un contesto inutilizzabile, ha generato in modo errato, ha attribuito male le affermazioni o ha applicato evidenze al di fuori del suo confine di validità.\"},\"tunes\":{}},{\"id\":\"p-conclusion-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"La regola pratica è semplice: sostituire l'incertezza con evidenze controllate un livello alla volta. Iniziare con il test del contesto oracolare. Separare la valutazione del solo recupero dalla valutazione della generazione. Conservare la traccia completa. Poi correggere il componente che ha effettivamente fallito invece di ottimizzare l'intero stack RAG per intuizione.\"},\"tunes\":{}},{\"id\":\"h-faq\",\"type\":\"header\",\"data\":{\"text\":\"FAQ\",\"level\":2},\"tunes\":{}},{\"id\":\"faq\",\"type\":\"faq\",\"data\":{\"title\":\"Diagnosi dei fallimenti RAG\",\"items\":[{\"id\":\"faq1\",\"question\":\"Come posso capire se ha fallito il recupero RAG o l'LLM?\",\"answer\":\"Fornisci al modello manualmente un piccolo insieme di evidenze note come corrette. Se la risposta diventa corretta, indaga la copertura delle fonti, la costruzione della query, il recupero, il ranking e l'assemblaggio del contesto. Se il modello fallisce ancora con evidenze sufficienti, il recupero non è il problema principale.\"},{\"id\":\"faq2\",\"question\":\"Può fallire il RAG anche quando è stato recuperato il documento corretto?\",\"answer\":\"Sì. Il passaggio rilevante può essere classificato troppo in basso, troncato, separato da un'eccezione, mescolato con evidenze contrastanti, sovrastato da contesto irrilevante o utilizzato in modo errato dal generatore.\"},{\"id\":\"faq3\",\"question\":\"La correttezza della risposta è sufficiente per valutare un sistema RAG?\",\"answer\":\"No. Un modello può produrre una risposta corretta nonostante un recupero debole affidandosi alla conoscenza pregressa del modello o al caso. Valuta il recupero e il supporto delle evidenze separatamente dalla correttezza della risposta finale.\"},{\"id\":\"faq4\",\"question\":\"Cosa dovrei registrare durante il debug di RAG?\",\"answer\":\"Come minimo registra la richiesta dell'utente, la query di recupero trasformata, i filtri, i documenti candidati e i loro rank, il contesto finale selezionato, la versione del modello e del prompt, la risposta, le citazioni, la versione del corpus\u002Findice e i metadati di temporizzazione o versione rilevanti per l'aggiornamento.\"},{\"id\":\"faq5\",\"question\":\"Aumentare il top-k di solito risolve il RAG?\",\"answer\":\"Non in modo affidabile. Un insieme più ampio di candidati o di contesto può migliorare il recall, ma può anche aggiungere rumore, contraddizioni, duplicati e sovraccarico di contesto. Verifica se l'evidenza rilevante è mancante prima di aumentare il top-k.\"}]},\"tunes\":{}},{\"id\":\"h-glossary\",\"type\":\"header\",\"data\":{\"text\":\"Glossario\",\"level\":2},\"tunes\":{}},{\"id\":\"glossary\",\"type\":\"glossary\",\"data\":{\"title\":\"Termini diagnostici chiave\",\"entries\":[{\"term\":\"Test del contesto oracolare\",\"definition\":\"Un test controllato in cui al generatore vengono fornite direttamente evidenze note come sufficienti per determinare se il fallimento dominante è a monte della generazione.\",\"anchor\":\"oracle-context-test\"},{\"term\":\"Recupero dei candidati\",\"definition\":\"La fase che seleziona un insieme iniziale di documenti, chunk, record o passaggi potenzialmente rilevanti prima del ranking finale o dell'assemblaggio del contesto.\",\"anchor\":\"candidate-retrieval\"},{\"term\":\"Assemblaggio del contesto\",\"definition\":\"Il processo di conversione delle evidenze recuperate nell'input effettivo del modello, inclusi ordinamento, troncamento, deduplicazione, formattazione e decisioni sul budget di token.\",\"anchor\":\"context-assembly\"},{\"term\":\"Fedeltà\",\"definition\":\"Il grado in cui le affermazioni generate rimangono supportate dalle evidenze recuperate o fornite, invece di introdurre contenuti non supportati.\",\"anchor\":\"faithfulness\"},{\"term\":\"Copertura del contesto\",\"definition\":\"Una misura orientata al recupero che indica se le evidenze selezionate coprono le informazioni necessarie per rispondere alla domanda.\",\"anchor\":\"context-coverage\"},{\"term\":\"Confine di validità\",\"definition\":\"Le condizioni in cui un'affermazione o una risposta rimane applicabile, come tempo, versione, giurisdizione, stato, popolazione, permessi o assunzioni sulla fonte.\",\"anchor\":\"validity-boundary\"}]},\"tunes\":{}},{\"id\":\"h-sources\",\"type\":\"header\",\"data\":{\"text\":\"Fonti primarie e ulteriori letture\",\"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 — Ottimizzare l'accuratezza degli LLM\",\"description\":\"Linee guida di OpenAI che separano i fallimenti del recupero dai fallimenti degli LLM nelle applicazioni 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 — Migliori pratiche di valutazione\",\"description\":\"Linee guida sulla valutazione strutturata per sistemi di IA variabili e sulla progettazione di test orientati alla produzione.\"}},\"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 — Metriche di valutazione RAG\",\"description\":\"Documentazione che separa le metriche di sola ricerca dalle metriche di ricerca e generazione, inclusi rilevanza del contesto, copertura, fedeltà e misure di citazione.\"}},\"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 — Demistificare le valutazioni per gli agenti di IA\",\"description\":\"Linee guida pratiche di valutazione su compiti, prove, valutatori, tracce, regressioni e comportamento in produzione.\"}},\"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 — Generazione aumentata dal recupero\",\"description\":\"Panoramica dell'architettura RAG e dell'importanza di un recupero pertinente e di una generazione fondata.\"}},\"tunes\":{}}],\"version\":\"2.31.6\"}",{"time":212,"blocks":213,"version":834},1790369161057,[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 sistema RAG restituisce una risposta debole, errata, incompleta o non supportata. La diagnosi abituale è \"il retrieval ha fallito\" o \"il modello ha allucinato\". Entrambe le etichette sono troppo generiche per essere utili. Una pipeline RAG di produzione può fallire prima del retrieval, durante il retrieval, durante il ranking, durante l'assemblaggio del contesto, durante la generazione o dopo la generazione, quando vengono verificati evidenza e validità.","paragraph",{},{"id":221,"data":222,"type":226,"tunes":227},"direct",{"body":223,"title":224,"variant":225},"\u003Cstrong>Non fare debug del RAG come un unico componente.\u003C\u002Fstrong> Diagnosticarlo come una catena di livelli testabili in modo indipendente. Prima determina se l'evidenza richiesta esiste in una fonte autorevole. Poi testa la costruzione della query, il recupero dei candidati, il ranking, l'assemblaggio del contesto, la generazione, l'attribuzione dell'evidenza e la freschezza. La tecnica di isolamento più rapida è un \u003Cstrong>test con contesto oracolare\u003C\u002Fstrong>: fornisci manualmente al generatore l'evidenza corretta. Se la risposta diventa corretta, il fallimento dominante è a monte della generazione. Se rimane errata, il retrieval non è il problema principale.","Risposta diretta","info","callout",{},{"id":229,"data":230,"type":226,"tunes":234},"model-note",{"body":231,"title":232,"variant":233},"Il RAG Failure Stack in questo articolo è un modello diagnostico pratico, non uno standard industriale formale. Le piattaforme esistenti separano già le metriche di solo retrieval dalle metriche di retrieve-and-generate; questo modello estende tale separazione in un metodo di debug di produzione passo dopo passo.","Informazioni sul modello diagnostico","note",{},{"id":236,"data":237,"type":241,"tunes":242},"toc",{"title":238,"maxLevel":239,"minLevel":240},"Contenuti",3,2,"tableOfContents",{},{"id":244,"data":245,"type":42,"tunes":247},"h-not-diagnosis",{"text":246,"level":240},"Perché \"il RAG ha fallito\" non è una diagnosi",{},{"id":249,"data":250,"type":218,"tunes":252},"p-not-1",{"text":251},"La generazione aumentata dal recupero combina diversi meccanismi: una richiesta dell'utente viene interpretata, vengono costruite una o più ricerche, viene recuperato materiale candidato, i risultati vengono filtrati o riordinati, l'evidenza selezionata viene inserita in un contesto del modello e un modello genera una risposta. I sistemi di produzione possono aggiungere permessi, filtri sui metadati, regole di freschezza, citazioni, riscrittura delle query, ricerca ibrida, chiamate a strumenti, memoria e stato esterno.",{},{"id":254,"data":255,"type":218,"tunes":257},"p-not-2",{"text":256},"Una risposta finale errata quindi non ti dice quale componente ha fallito. Il modello potrebbe aver ricevuto l'evidenza sbagliata. Potrebbe aver ricevuto l'evidenza giusta mescolata con troppo rumore. L'evidenza potrebbe essere corretta ma obsoleta. La fonte potrebbe non aver mai contenuto la risposta. Oppure il modello potrebbe aver ignorato un contesto perfettamente adeguato.",{},{"id":259,"data":260,"type":218,"tunes":262},"p-not-3",{"text":261},"La guida RAG di OpenAI stabilisce già una distinzione fondamentale tra fallimento del retrieval e fallimento del modello: un sistema può fornire il contesto sbagliato, oppure può fornire il contesto giusto e generare comunque la risposta sbagliata. AWS separa analogamente la valutazione di solo retrieval dalla valutazione di retrieve-and-generate. Per la diagnosi di produzione, tale distinzione dovrebbe essere portata oltre.",{},{"id":264,"data":265,"type":42,"tunes":267},"h-stack",{"text":266,"level":240},"Il RAG Failure Stack",{},{"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],"Livello","Domanda","Fallimento tipico",[277,278,279],"1. Copertura della fonte","L'evidenza richiesta esiste in una fonte autorevole consentita?","Il corpus non può rispondere affatto alla domanda",[281,282,283],"2. Costruzione della query","Il sistema ha cercato la cosa giusta?","Intento, entità, filtri, lingua o vincoli temporali vengono persi",[285,286,287],"3. Recupero dei candidati","L'evidenza rilevante è entrata nell'insieme dei candidati?","Basso recall; il chunk giusto non viene mai recuperato",[289,290,291],"4. Ranking e filtraggio","L'evidenza giusta è sopravvissuta e si è classificata abbastanza in alto?","L'evidenza rilevante viene sepolta, filtrata o superata da testo superficialmente simile",[293,294,295],"5. Assemblaggio del contesto","Il modello ha ricevuto evidenza utilizzabile?","Troncamento, confini dei chunk errati, duplicati, passaggi in conflitto o sovraccarico di contesto",[297,298,299],"6. Generazione","Il modello ha usato correttamente l'evidenza fornita?","Inferenza non supportata, fallimento delle istruzioni, errore di ragionamento o mancata corrispondenza nel rifiuto",[301,302,303],"7. Attribuzione dell'evidenza","La risposta può essere ricondotta all'evidenza che dichiara di usare?","Citazioni mancanti, deboli o errate; le affermazioni superano il supporto recuperato",[305,306,307],"8. Validità e freschezza","L'evidenza è ancora valida per questa domanda ora?","Evidenza storica corretta viene riutilizzata al di fuori del suo tempo, versione, giurisdizione o stato valido","table",{},{"id":311,"data":312,"type":42,"tunes":314},"h-source",{"text":313,"level":239},"Livello 1 — Copertura della fonte: il sistema può rispondere affatto?",{},{"id":316,"data":317,"type":218,"tunes":319},"p-source-1",{"text":318},"Prima di ottimizzare embedding, reranker o prompt, verifica che la risposta esista nello spazio di conoscenza che il sistema è autorizzato a usare. Sembra ovvio, ma molti fallimenti del RAG sono in realtà fallimenti del corpus. Il fatto richiesto può essere assente, nascosto in un allegato non indicizzato, disponibile solo in un documento più recente, memorizzato in un sistema esterno al corpus RAG o bloccato da permessi.",{},{"id":321,"data":322,"type":218,"tunes":324},"p-source-2",{"text":323},"Una metrica di retrieval non può recuperare informazioni che non sono mai state indicizzate. Un top-k più grande non può recuperare un documento che la pipeline non contiene. Se il test di copertura della fonte fallisce, la correzione corretta è l'ingestione, la selezione della fonte, i permessi o un comportamento esplicito di \"non rispondibile dall'evidenza disponibile\".",{},{"id":326,"data":327,"type":226,"tunes":331},"source-warning",{"body":328,"title":329,"variant":330},"I team spesso ottimizzano il retrieval su domande a cui il corpus non può effettivamente rispondere. Questo può rendere il retriever migliore nel trovare testo correlato lasciando intatto il divario informativo sottostante.","Modello di fallimento","warning",{},{"id":333,"data":334,"type":42,"tunes":336},"h-query",{"text":335,"level":239},"Livello 2 — Costruzione della query: il sistema ha posto al corpus la domanda giusta?",{},{"id":338,"data":339,"type":218,"tunes":341},"p-query-1",{"text":340},"La query dell'utente non è sempre la query di retrieval. I sistemi di produzione riscrivono le domande, risolvono i pronomi, estraggono entità, traducono lingue, aggiungono vincoli sui metadati, dividono domande complesse o generano più ricerche. Ogni trasformazione può migliorare il retrieval, ma ogni trasformazione può anche distruggere informazioni.",{},{"id":343,"data":344,"type":218,"tunes":346},"p-query-2",{"text":345},"Una richiesta come \"La policy si applica ancora ai contraenti in Germania dopo l'aggiornamento di settembre?\" contiene almeno un'entità, una popolazione, una giurisdizione e un confine temporale. Una query riscritta che diventa \"policy contraenti\" può recuperare testo semanticamente correlato perdendo le variabili che decidono se la risposta è valida.",{},{"id":348,"data":349,"type":42,"tunes":351},"h-retrieval",{"text":350,"level":239},"Livello 3 — Recupero dei candidati: le prove rilevanti sono entrate nell'insieme?",{},{"id":353,"data":354,"type":218,"tunes":356},"p-ret-1",{"text":355},"Il recupero dei candidati è principalmente un problema di richiamo. La domanda diagnostica non è ancora se il risultato migliore si è classificato primo; è se le prove rilevanti sono apparse ovunque nel pool di candidati. Se la fonte corretta nota non appare, indagare su indicizzazione, suddivisione in blocchi, embedding, corrispondenza lessicale, metadati, ricerca ibrida, gestione della lingua, sinonimi ed espansione delle query.",{},{"id":358,"data":359,"type":218,"tunes":361},"p-ret-2",{"text":360},"È qui che la valutazione solo del recupero è preziosa. AWS espone la rilevanza del contesto e la copertura del contesto per la valutazione RAG solo di recupero. L'abitudine di produzione importante è valutare il recupero prima della generazione, in modo che una risposta finale rifinita non possa nascondere un insieme di candidati debole.",{},{"id":363,"data":364,"type":42,"tunes":366},"h-ranking",{"text":365,"level":239},"Livello 4 — Classificazione e filtraggio: le prove giuste sono state scartate o sepolte?",{},{"id":368,"data":369,"type":218,"tunes":371},"p-rank-1",{"text":370},"Un sistema può avere un buon richiamo e fallire comunque perché le prove rilevanti si classificano al di sotto di materiale rumoroso ma semanticamente simile. Reranker, potenziamenti di recenza, pesi di autorità, preferenze linguistiche, filtri tenant, controlli di accesso, filtri di stato del prodotto e deduplicazione cambiano tutti ciò che sopravvive nel contesto finale.",{},{"id":373,"data":374,"type":218,"tunes":376},"p-rank-2",{"text":375},"Il debug dovrebbe quindi preservare l'elenco completo dei candidati, non solo i top-k finali. Se la prova d'oro è stata recuperata al rango 18 e un reranker l'ha rimossa, la correzione non è la stessa di un mancato recupero.",{},{"id":378,"data":379,"type":42,"tunes":381},"h-context",{"text":380,"level":239},"Livello 5 — Assemblaggio del contesto: le prove utili sono diventate un contesto utilizzabile?",{},{"id":383,"data":384,"type":218,"tunes":386},"p-ctx-1",{"text":385},"Il successo del recupero non garantisce il successo del contesto. I blocchi rilevanti possono essere troncati, separati dai loro qualificatori, duplicati fino a dominare il prompt, mescolati con versioni contraddittorie o circondati da abbastanza testo irrilevante che il passaggio decisivo perde salienza.",{},{"id":388,"data":389,"type":218,"tunes":391},"p-ctx-2",{"text":390},"I confini dei blocchi sono particolarmente importanti. Una frase può contenere la regola mentre la frase successiva contiene l'eccezione. Se sono indicizzati separatamente e viene recuperata solo la prima, il retriever può apparire rilevante mentre il contesto assemblato diventa fuorviante.",{},{"id":393,"data":394,"type":42,"tunes":396},"h-generation",{"text":395,"level":239},"Livello 6 — Generazione: il modello può usare correttamente le prove corrette?",{},{"id":398,"data":399,"type":218,"tunes":401},"p-gen-1",{"text":400},"Una volta che il sistema ha dimostrabilmente fornito prove sufficienti, la generazione diventa testabile in modo indipendente. Il modello può generalizzare eccessivamente, combinare passaggi incompatibili, ignorare un'affermazione negativa, non seguire il formato di risposta richiesto, inventare un ponte tra i fatti o rispondere dalla memoria parametrica invece che dalle prove recuperate.",{},{"id":403,"data":404,"type":218,"tunes":406},"p-gen-2",{"text":405},"Ecco perché la correttezza end-to-end da sola è insufficiente per la diagnosi. OpenAI raccomanda la valutazione come un modo strutturato per comprendere il comportamento dell'applicazione, mentre la guida alla valutazione degli agenti di Anthropic enfatizza prove multiple, valutatori, tracce e casi di fallimento realistici. Per RAG, il generatore dovrebbe essere testato sia con il recupero normale sia con un contesto d'oro controllato.",{},{"id":408,"data":409,"type":42,"tunes":411},"h-evidence",{"text":410,"level":239},"Livello 7 — Attribuzione delle prove: la risposta è effettivamente supportata?",{},{"id":413,"data":414,"type":218,"tunes":416},"p-evidence-1",{"text":415},"Una risposta plausibile con citazioni può comunque essere debolmente fondata. Il documento citato può essere rilevante per l'argomento ma non supportare l'affermazione specifica. Una frase può essere supportata mentre un'altra è inferita. Una citazione può puntare a una fonte che contraddice la risposta una volta lette le sue condizioni.",{},{"id":418,"data":419,"type":218,"tunes":421},"p-evidence-2",{"text":420},"La valutazione delle citazioni appartiene quindi dopo la generazione. AWS distingue la precisione delle citazioni dalla copertura delle citazioni: se i passaggi citati sono citati correttamente e se la risposta è sufficientemente supportata dalle citazioni. In produzione, il supporto a livello di affermazione è più utile che trattare la presenza di qualsiasi citazione come qualità delle prove.",{},{"id":423,"data":424,"type":42,"tunes":426},"h-validity",{"text":425,"level":239},"Livello 8 — Validità e freschezza: le prove erano corrette per questa versione della realtà?",{},{"id":428,"data":429,"type":218,"tunes":431},"p-valid-1",{"text":430},"RAG può recuperare una fonte perfettamente autentica, altamente rilevante e fedelmente citata e produrre comunque una risposta sbagliata se la fonte non è più valida per la domanda attuale. Le politiche cambiano. Le API vengono deprecate. I prezzi si muovono. Il comportamento del software cambia tra le versioni. L'inventario dei prodotti cambia. I permessi cambiano. Le patch dei giochi cambiano la meccanica.",{},{"id":433,"data":434,"type":218,"tunes":436},"p-valid-2",{"text":435},"Questa è una classe di fallimento separata dall'allucinazione. Le prove sono reali; la loro applicabilità è sbagliata. Un sistema robusto necessita quindi di timestamp, metadati di versione o giurisdizione ove rilevante, autorità della fonte, regole di supersessione e un meccanismo esplicito per decidere quando le prove più vecchie devono essere limitate o abbandonate.",{},{"id":438,"data":439,"type":42,"tunes":441},"h-oracle",{"text":440,"level":240},"Il metodo di isolamento più rapido: il test del contesto oracolare",{},{"id":443,"data":444,"type":218,"tunes":446},"p-oracle-1",{"text":445},"La prima suddivisione più utile è semplice: fornire manualmente al generatore un piccolo insieme di prove che sai essere sufficienti per rispondere alla domanda. Mantieni il compito e la risposta attesa invariati.",{},{"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 risposta diventa corretta",[455,455,455],"",{"id":457,"label":458,"values":459},"oracle-fail","La risposta rimane sbagliata",[455,455,455],{"id":461,"label":462,"values":463},"oracle-partial","La risposta migliora ma rimane incompleta",[455,455,455],"Test del contesto oracolare",[466,469,472],{"id":467,"label":468},"result","Risultato",{"id":470,"label":471},"meaning","Interpretazione probabile",{"id":473,"label":474},"next","Prossimo passo diagnostico","comparison",{},{"id":478,"data":479,"type":226,"tunes":483},"oracle-tip",{"body":480,"title":481,"variant":482},"Il test del contesto oracolare rimuove la maggior parte della pipeline di retrieval dall'esperimento. Non dimostra che la generazione sia perfetta, ma offre un controfattuale rapido: \u003Cstrong>cosa farebbe il modello se il retrieval fosse già riuscito?\u003C\u002Fstrong>","Perché questo test è potente","tip",{},{"id":485,"data":486,"type":42,"tunes":488},"h-sequence",{"text":487,"level":240},"Una sequenza diagnostica di produzione",{},{"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. Definire l'affermazione attesa","Scrivi la risposta attesa, l'incertezza consentita e le prove che la giustificherebbero.",{"label":497,"description":498},"2. Verificare la copertura delle fonti","Conferma che prove autorevoli e consentite esistano nell'insieme di fonti indicizzate o raggiungibili.",{"label":500,"description":501},"3. Eseguire il test del contesto oracolare","Fornisci direttamente al generatore prove gold sufficienti e osserva se la risposta diventa corretta.",{"label":503,"description":504},"4. Ispezionare la query di retrieval","Controlla riscritture, entità, filtri, lingua, vincoli temporali, decomposizione e assunzioni nascoste.",{"label":506,"description":507},"5. Ispezionare i candidati prima del reranking","Determina se le prove rilevanti sono state recuperate e registra il loro rank.",{"label":509,"description":510},"6. Ispezionare ranking e assemblaggio del contesto","Controlla reranking, filtri sui metadati, troncamento, confini dei chunk, duplicati, conflitti e composizione del top-k.",{"label":512,"description":513},"7. Valutare generazione e citazioni separatamente","Misura correttezza della risposta, completezza, fedeltà e supporto delle prove a livello di affermazione.",{"label":515,"description":516},"8. Testare i confini di validità","Controlla se versione, data, stato, giurisdizione, permessi o prove sostitutive cambiano la risposta.","Diagnosticare il fallimento dalle prove alla risposta","auto","processFlow",{},{"id":522,"data":523,"type":42,"tunes":525},"h-one-change",{"text":524,"level":240},"Non cambiare tre livelli contemporaneamente",{},{"id":527,"data":528,"type":218,"tunes":530},"p-one-1",{"text":529},"Un errore comune di debug è cambiare embeddings, dimensioni dei chunk, top-k, prompt e modello in una sola iterazione. Se il punteggio migliora, non sai perché. Se peggiora, non sai quale modifica ha causato la regressione.",{},{"id":532,"data":533,"type":218,"tunes":535},"p-one-2",{"text":534},"Tratta il debug del RAG come una diagnosi sperimentale: mantieni costante quanta più pipeline possibile e sostituisci un componente incerto con un input controllato. I documenti gold isolano il retrieval. I chunk gold isolano la selezione dei chunk. Un contesto fisso isola la generazione. Un modello fisso isola le modifiche al retrieval. Un corpus fisso isola le modifiche a ingestione e indicizzazione.",{},{"id":537,"data":538,"type":42,"tunes":540},"h-matrix",{"text":539,"level":240},"Una matrice dei fallimenti per i sintomi comuni del RAG",{},{"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],"Sintomo","Livelli più probabili da testare per primi","Test discriminante",[550,551,552],"Non compare alcuna fonte rilevante","Copertura delle fonti → Query → Retrieval dei candidati","Cerca manualmente nel corpus, poi ispeziona la query riscritta e i candidati non filtrati",[554,555,556],"Compare una fonte rilevante ma la risposta è sbagliata","Assemblaggio del contesto → Generazione","Test del contesto oracolare con la stessa fonte ridotta ai passaggi decisivi",[558,559,560],"La risposta è corretta a volte, sbagliata altre","Ranking → Assemblaggio del contesto → Variabilità della generazione","Ripeti le prove registrando insieme recuperato, rank, contesto del prompt e output del modello",[562,563,564],"La risposta cita il documento giusto ma lo sovrainterpreta","Generazione → Attribuzione delle prove → Validità","Valuta ogni affermazione rispetto al passaggio esatto citato",[566,567,568],"Le informazioni vecchie continuano a prevalere","Ranking → Validità\u002Faggiornamento","Confronta con regole di recency\u002Fsupersessione e ispeziona i metadati",[570,571,572],"La risposta omette un'eccezione","Chunking → Assemblaggio del contesto","Controlla se regola ed eccezione sono state separate o troncate",[574,575,576],"Aumentare il top-k peggiora la qualità","Ranking → Sovraccarico del contesto","Rimuovi i chunk di scarso valore e confronta con un insieme minimo di prove",[578,579,580],"Cambiare il modello corregge la risposta","Generazione, ma non necessariamente il retrieval","Ripeti con contesto recuperato identico tra i modelli",[582,583,584],"Cambiare gli embeddings corregge la risposta","Retrieval\u002Franking","Mantieni costanti generatore e template del contesto mentre confronti il recall dei candidati",{},{"id":587,"data":588,"type":42,"tunes":590},"h-metrics",{"text":589,"level":240},"Misura ogni livello con la metrica che può effettivamente influenzare",{},{"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],"Misure utili","Cosa non inferire",[599,600,601],"Copertura delle fonti","Tasso di domande a cui si può rispondere, copertura del corpus, completezza dell'ingestione","Non incolpare gli embeddings per materiale sorgente mancante",[603,604,605],"Retrieval dei candidati","Recall@k, hit rate, copertura del contesto","Un recall alto non prova la qualità del ranking",[607,608,609],"Ranking","MRR, NDCG, rank gold, precision@k","Un buon ranking non prova che il generatore abbia usato le prove",[611,612,613],"Assemblaggio del contesto","Conservazione delle prove, duplicazione, tasso di contraddizione, utilizzo dei token","Un contesto grande non significa un contesto utile",[615,616,617],"Generazione","Correttezza, completezza, successo del compito, fedeltà","La sola correttezza non prova il grounding",[619,620,621],"Attribuzione delle prove","Precisione delle citazioni, copertura delle citazioni, supporto delle affermazioni","Un conteggio delle citazioni non è qualità delle prove",[623,624,625],"Validità","Aggiornamento, accuratezza della supersessione, corrispondenza versione\u002Fgiurisdizione","Prove rilevanti non sono automaticamente prove applicabili",{},{"id":628,"data":629,"type":42,"tunes":631},"h-correct-answer",{"text":630,"level":240},"Una risposta corretta può comunque nascondere un difetto del RAG",{},{"id":633,"data":634,"type":218,"tunes":636},"p-correct-1",{"text":635},"Anche il problema inverso è importante. Un sistema RAG può produrre la risposta corretta mentre il retrieval è rotto. Il modello potrebbe già conoscere la risposta dall'addestramento, inferirla da prove deboli o indovinare correttamente. Se la valutazione guarda solo alla risposta finale, il sistema può sembrare sano finché la domanda non raggiunge informazioni che esistono solo nel corpus privato.",{},{"id":638,"data":639,"type":218,"tunes":641},"p-correct-2",{"text":640},"È lo stesso problema di affidabilità che emerge più in generale nei sistemi ad agenti: la correttezza dell'esito non basta a provare che il percorso di esecuzione fosse affidabile. Per il RAG, le tracce dovrebbero conservare almeno la query di retrieval, l'insieme dei candidati, il ranking, il contesto finale, la risposta, le citazioni, la versione del modello, la versione del corpus\u002Findice e i filtri rilevanti.",{},{"id":643,"data":644,"type":649,"tunes":650},"internal-reliability",{"url":645,"title":646,"excerpt":647,"ctaLabel":648},"https:\u002F\u002Fstajic.de\u002Fit\u002Fblog\u002Fai-agent-reliability-why-the-final-answer-is-not-enough","Affidabilità degli agenti AI: perché la risposta finale non basta","Un output corretto non prova un ragionamento corretto, un'esecuzione sicura o un sistema affidabile. Questo articolo estende quel principio dalla diagnosi del RAG alle traiettorie degli agenti e all'assicurazione operativa.","Leggi l'articolo correlato","referralArticle",{},{"id":652,"data":653,"type":42,"tunes":655},"h-hypotheses",{"text":654,"level":240},"Usa ipotesi concorrenti, non una spiegazione preferita",{},{"id":657,"data":658,"type":218,"tunes":660},"p-hyp-1",{"text":659},"Se una risposta sbagliata diventa immediatamente \"un problema di embedding\", l'indagine è già prevenuta. Un metodo di debug più solido annota ipotesi concorrenti prima di modificare il sistema: fonte mancante, riscrittura della query errata, basso recall nel recupero, reranking errato, troncamento del contesto, versioni in conflitto, fallimento della generazione, fallimento della citazione o evidenza obsoleta.",{},{"id":662,"data":663,"type":218,"tunes":665},"p-hyp-2",{"text":664},"Poi scegli un test che separi quelle ipotesi. Questo è più efficiente che raccogliere altri esempi che supportano la prima spiegazione. Lo stesso principio si applica al ragionamento tecnico assistito dall'IA in generale: una diagnosi utile è quella che sopravvive a test discriminanti, non quella che suona semplicemente plausibile.",{},{"id":667,"data":668,"type":649,"tunes":673},"internal-reasoning",{"url":669,"title":670,"excerpt":671,"ctaLabel":672},"https:\u002F\u002Fstajic.de\u002Fit\u002Fblog\u002Ffrom-research-protocol-to-a-general-ai-reasoning-framework","Dal protocollo di ricerca a un framework generale di ragionamento IA","Un metodo di ragionamento indipendente dal dominio per separare le evidenze dalle assunzioni, testare ipotesi concorrenti e utilizzare validatori specifici del dominio.","Leggi il framework di ragionamento",{},{"id":675,"data":676,"type":42,"tunes":678},"h-change",{"text":677,"level":240},"Cosa cambierebbe questa risposta?",{},{"id":680,"data":681,"type":218,"tunes":683},"p-change-1",{"text":682},"I livelli diagnostici esatti cambiano con l'architettura. Una semplice applicazione RAG a documento singolo può non avere riscrittura della query, reranker o livello di citazione. Un sistema di recupero agentico può aggiungere pianificazione, ricerche multiple, selezione degli strumenti, memoria, permessi e raccolta iterativa di evidenze. Una ricerca in un database strutturato può non utilizzare affatto chunk o embedding.",{},{"id":685,"data":686,"type":218,"tunes":688},"p-change-2",{"text":687},"Il metodo di base rimane valido: identificare i componenti che possono cambiare indipendentemente il risultato, costruire test controllati che sostituiscono i componenti incerti con input noti come corretti e misurare ciascun componente utilizzando evidenze appropriate a quel livello.",{},{"id":690,"data":691,"type":42,"tunes":693},"h-limitations",{"text":692,"level":240},"Limitazioni",{},{"id":695,"data":696,"type":218,"tunes":698},"p-limit-1",{"text":697},"I fallimenti reali sono spesso accoppiati. Una query debole può ridurre il recall, che cambia il reranking, che cambia il contesto, che aumenta la varianza della generazione. Il test del contesto oracolare è una scorciatoia diagnostica, non la prova che un componente sia l'unico responsabile. Anche i dataset di valutazione possono essere non rappresentativi, e i valutatori basati su modelli possono introdurre i propri errori.",{},{"id":700,"data":701,"type":218,"tunes":703},"p-limit-2",{"text":702},"Lo stack proposto è quindi meglio utilizzato come struttura di indagine: registrare la pipeline, isolare le variabili, riprodurre i fallimenti, testare spiegazioni concorrenti e mantenere la valutazione end-to-end dopo le correzioni a livello di livello.",{},{"id":705,"data":706,"type":42,"tunes":708},"h-conclusion",{"text":707,"level":240},"Conclusione",{},{"id":710,"data":711,"type":218,"tunes":713},"p-conclusion-1",{"text":712},"\"RAG ha fallito\" dovrebbe essere l'inizio dell'indagine, non la conclusione. Una diagnosi utile identifica se al sistema mancava l'evidenza, ha cercato in modo errato, non è riuscito a recuperarla, l'ha classificata male, ha assemblato un contesto inutilizzabile, ha generato in modo errato, ha attribuito male le affermazioni o ha applicato evidenze al di fuori del suo confine di validità.",{},{"id":715,"data":716,"type":218,"tunes":718},"p-conclusion-2",{"text":717},"La regola pratica è semplice: sostituire l'incertezza con evidenze controllate un livello alla volta. Iniziare con il test del contesto oracolare. Separare la valutazione del solo recupero dalla valutazione della generazione. Conservare la traccia completa. Poi correggere il componente che ha effettivamente fallito invece di ottimizzare l'intero stack RAG per intuizione.",{},{"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","Fornisci al modello manualmente un piccolo insieme di evidenze note come corrette. Se la risposta diventa corretta, indaga la copertura delle fonti, la costruzione della query, il recupero, il ranking e l'assemblaggio del contesto. Se il modello fallisce ancora con evidenze sufficienti, il recupero non è il problema principale.","Come posso capire se ha fallito il recupero RAG o l'LLM?",{"id":733,"answer":734,"question":735},"faq2","Sì. Il passaggio rilevante può essere classificato troppo in basso, troncato, separato da un'eccezione, mescolato con evidenze contrastanti, sovrastato da contesto irrilevante o utilizzato in modo errato dal generatore.","Può fallire il RAG anche quando è stato recuperato il documento corretto?",{"id":737,"answer":738,"question":739},"faq3","No. Un modello può produrre una risposta corretta nonostante un recupero debole affidandosi alla conoscenza pregressa del modello o al caso. Valuta il recupero e il supporto delle evidenze separatamente dalla correttezza della risposta finale.","La correttezza della risposta è sufficiente per valutare un sistema RAG?",{"id":741,"answer":742,"question":743},"faq4","Come minimo registra la richiesta dell'utente, la query di recupero trasformata, i filtri, i documenti candidati e i loro rank, il contesto finale selezionato, la versione del modello e del prompt, la risposta, le citazioni, la versione del corpus\u002Findice e i metadati di temporizzazione o versione rilevanti per l'aggiornamento.","Cosa dovrei registrare durante il debug di RAG?",{"id":745,"answer":746,"question":747},"faq5","Non in modo affidabile. Un insieme più ampio di candidati o di contesto può migliorare il recall, ma può anche aggiungere rumore, contraddizioni, duplicati e sovraccarico di contesto. Verifica se l'evidenza rilevante è mancante prima di aumentare il top-k.","Aumentare il top-k di solito risolve il RAG?","Diagnosi dei fallimenti RAG",{},{"id":751,"data":752,"type":42,"tunes":754},"h-glossary",{"text":753,"level":240},"Glossario",{},{"id":756,"data":757,"type":756,"tunes":782},"glossary",{"title":758,"entries":759},"Termini diagnostici chiave",[760,763,767,770,774,778],{"term":464,"anchor":761,"definition":762},"oracle-context-test","Un test controllato in cui al generatore vengono fornite direttamente evidenze note come sufficienti per determinare se il fallimento dominante è a monte della generazione.",{"term":764,"anchor":765,"definition":766},"Recupero dei candidati","candidate-retrieval","La fase che seleziona un insieme iniziale di documenti, chunk, record o passaggi potenzialmente rilevanti prima del ranking finale o dell'assemblaggio del contesto.",{"term":611,"anchor":768,"definition":769},"context-assembly","Il processo di conversione delle evidenze recuperate nell'input effettivo del modello, inclusi ordinamento, troncamento, deduplicazione, formattazione e decisioni sul budget di token.",{"term":771,"anchor":772,"definition":773},"Fedeltà","faithfulness","Il grado in cui le affermazioni generate rimangono supportate dalle evidenze recuperate o fornite, invece di introdurre contenuti non supportati.",{"term":775,"anchor":776,"definition":777},"Copertura del contesto","context-coverage","Una misura orientata al recupero che indica se le evidenze selezionate coprono le informazioni necessarie per rispondere alla domanda.",{"term":779,"anchor":780,"definition":781},"Confine di validità","validity-boundary","Le condizioni in cui un'affermazione o una risposta rimane applicabile, come tempo, versione, giurisdizione, stato, popolazione, permessi o assunzioni sulla fonte.",{},{"id":784,"data":785,"type":42,"tunes":787},"h-sources",{"text":786,"level":240},"Fonti primarie e ulteriori letture",{},{"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 — Ottimizzare l'accuratezza degli LLM","Linee guida di OpenAI che separano i fallimenti del recupero dai fallimenti degli LLM nelle applicazioni 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 — Migliori pratiche di valutazione","Linee guida sulla valutazione strutturata per sistemi di IA variabili e sulla progettazione di test orientati alla produzione.",{},{"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 — Metriche di valutazione RAG","Documentazione che separa le metriche di sola ricerca dalle metriche di ricerca e generazione, inclusi rilevanza del contesto, copertura, fedeltà e misure di citazione.",{},{"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 — Demistificare le valutazioni per gli agenti di IA","Linee guida pratiche di valutazione su compiti, prove, valutatori, tracce, regressioni e comportamento in produzione.",{},{"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 — Generazione aumentata dal recupero","Panoramica dell'architettura RAG e dell'importanza di un recupero pertinente e di una generazione fondata.",{},"2.31.6","Quando una risposta RAG è sbagliata, dare la colpa al recupero o al modello è troppo vago. Questo metodo diagnostico isola la copertura delle fonti, la costruzione della query, il recupero, il ranking, l'assemblaggio del contesto, la generazione, l'attribuzione delle evidenze e l'aggiornamento—così il guasto effettivo può essere riprodotto e corretto.","\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,"Valutazione e gate di qualità","evaluation",{"id":857,"name":858,"slug":859},89,"Harness di valutazione","evaluation-harness",{"id":861,"name":862,"slug":863},85,"Gate di 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,956,960,964,968,973,977,981,985,989,993,997,1001,1005,1009,1013,1017,1021,1025,1029,1033,1037,1041,1045,1049,1053,1057,1061,1065,1086,1091,1095,1124,1128,1132,1136,1140,1183,1187,1221,1225,1229,1233,1240,1244,1248,1252,1259,1263,1267,1271,1275,1279,1283,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":955},{"content":918,"stretched":43,"withHeadings":14},[919,923,927,931,935,939,943,947,951],[920,921,922],"Layer","Question","Typical failure",[924,925,926],"1. Source coverage","Does the required evidence exist in an allowed authoritative source?","The corpus cannot answer the question at all",[928,929,930],"2. Query construction","Did the system search for the right thing?","Intent, entities, filters, language, or time constraints are lost",[932,933,934],"3. Candidate retrieval","Did the relevant evidence enter the candidate set?","Low recall; the right chunk is never retrieved",[936,937,938],"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",[940,941,942],"5. Context assembly","Did the model receive usable evidence?","Truncation, bad chunk boundaries, duplicates, conflicting passages, or context overload",[944,945,946],"6. Generation","Did the model use the supplied evidence correctly?","Unsupported inference, instruction failure, reasoning error, or refusal mismatch",[948,949,950],"7. Evidence attribution","Can the answer be traced to the evidence it claims to use?","Missing, weak, or incorrect citations; claims exceed retrieved support",[952,953,954],"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":957,"type":42,"tunes":959},{"text":958,"level":239},"Layer 1 — Source coverage: can the system answer this at all?",{},{"id":316,"data":961,"type":218,"tunes":963},{"text":962},"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":965,"type":218,"tunes":967},{"text":966},"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":969,"type":226,"tunes":972},{"body":970,"title":971,"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":974,"type":42,"tunes":976},{"text":975,"level":239},"Layer 2 — Query construction: did the system ask the corpus the right question?",{},{"id":338,"data":978,"type":218,"tunes":980},{"text":979},"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":982,"type":218,"tunes":984},{"text":983},"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":986,"type":42,"tunes":988},{"text":987,"level":239},"Layer 3 — Candidate retrieval: did the relevant evidence enter the set?",{},{"id":353,"data":990,"type":218,"tunes":992},{"text":991},"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":994,"type":218,"tunes":996},{"text":995},"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":998,"type":42,"tunes":1000},{"text":999,"level":239},"Layer 4 — Ranking and filtering: was the right evidence discarded or buried?",{},{"id":368,"data":1002,"type":218,"tunes":1004},{"text":1003},"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":1006,"type":218,"tunes":1008},{"text":1007},"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":1010,"type":42,"tunes":1012},{"text":1011,"level":239},"Layer 5 — Context assembly: did useful evidence become usable context?",{},{"id":383,"data":1014,"type":218,"tunes":1016},{"text":1015},"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":1018,"type":218,"tunes":1020},{"text":1019},"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":1022,"type":42,"tunes":1024},{"text":1023,"level":239},"Layer 6 — Generation: can the model use correct evidence correctly?",{},{"id":398,"data":1026,"type":218,"tunes":1028},{"text":1027},"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":1030,"type":218,"tunes":1032},{"text":1031},"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":1034,"type":42,"tunes":1036},{"text":1035,"level":239},"Layer 7 — Evidence attribution: is the answer actually supported?",{},{"id":413,"data":1038,"type":218,"tunes":1040},{"text":1039},"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":1042,"type":218,"tunes":1044},{"text":1043},"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":1046,"type":42,"tunes":1048},{"text":1047,"level":239},"Layer 8 — Validity and freshness: was the evidence correct for this version of reality?",{},{"id":428,"data":1050,"type":218,"tunes":1052},{"text":1051},"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":1054,"type":218,"tunes":1056},{"text":1055},"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":1058,"type":42,"tunes":1060},{"text":1059,"level":240},"The fastest isolation method: the oracle-context test",{},{"id":443,"data":1062,"type":218,"tunes":1064},{"text":1063},"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":1066,"type":475,"tunes":1085},{"rows":1067,"title":1077,"layout":308,"columns":1078},[1068,1071,1074],{"id":452,"label":1069,"values":1070},"Answer becomes correct",[455,455,455],{"id":457,"label":1072,"values":1073},"Answer remains wrong",[455,455,455],{"id":461,"label":1075,"values":1076},"Answer improves but remains incomplete",[455,455,455],"Oracle-context test",[1079,1081,1083],{"id":467,"label":1080},"Result",{"id":470,"label":1082},"Likely interpretation",{"id":473,"label":1084},"Next diagnostic step",{},{"id":478,"data":1087,"type":226,"tunes":1090},{"body":1088,"title":1089,"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":1092,"type":42,"tunes":1094},{"text":1093,"level":240},"A production diagnostic sequence",{},{"id":490,"data":1096,"type":519,"tunes":1123},{"steps":1097,"title":1122,"orientation":518},[1098,1101,1104,1107,1110,1113,1116,1119],{"label":1099,"description":1100},"1. Define the expected claim","Write the expected answer, allowed uncertainty, and the evidence that would justify it.",{"label":1102,"description":1103},"2. Verify source coverage","Confirm that authoritative and permitted evidence exists in the indexed or reachable source set.",{"label":1105,"description":1106},"3. Run the oracle-context test","Supply sufficient gold evidence directly to the generator and observe whether the answer becomes correct.",{"label":1108,"description":1109},"4. Inspect the retrieval query","Check rewrites, entities, filters, language, time constraints, decomposition, and hidden assumptions.",{"label":1111,"description":1112},"5. Inspect candidates before reranking","Determine whether relevant evidence was retrieved at all and record its rank.",{"label":1114,"description":1115},"6. Inspect ranking and context assembly","Check reranking, metadata filters, truncation, chunk boundaries, duplicates, conflicts, and top-k composition.",{"label":1117,"description":1118},"7. Grade generation and citations separately","Measure answer correctness, completeness, faithfulness, and claim-level evidence support.",{"label":1120,"description":1121},"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":1125,"type":42,"tunes":1127},{"text":1126,"level":240},"Do not change three layers at once",{},{"id":527,"data":1129,"type":218,"tunes":1131},{"text":1130},"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":1133,"type":218,"tunes":1135},{"text":1134},"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":1137,"type":42,"tunes":1139},{"text":1138,"level":240},"A failure matrix for common RAG symptoms",{},{"id":542,"data":1141,"type":308,"tunes":1182},{"content":1142,"stretched":43,"withHeadings":14},[1143,1147,1151,1155,1159,1163,1167,1171,1175,1179],[1144,1145,1146],"Symptom","Most likely layers to test first","Discriminating test",[1148,1149,1150],"No relevant source appears","Source coverage → Query → Candidate retrieval","Search the corpus manually, then inspect rewritten query and unfiltered candidates",[1152,1153,1154],"Relevant source appears but answer is wrong","Context assembly → Generation","Oracle-context test with the same source reduced to decisive passages",[1156,1157,1158],"Answer is correct sometimes, wrong other times","Ranking → Context assembly → Generation variability","Repeat trials while logging retrieved set, rank, prompt context, and model output",[1160,1161,1162],"Answer cites the right document but overstates it","Generation → Evidence attribution → Validity","Grade each claim against the exact cited passage",[1164,1165,1166],"Old information keeps winning","Ranking → Validity\u002Ffreshness","Compare with recency\u002Fsupersession rules and inspect metadata",[1168,1169,1170],"Answer misses an exception","Chunking → Context assembly","Check whether rule and exception were split or truncated",[1172,1173,1174],"Adding more top-k makes quality worse","Ranking → Context overload","Ablate low-value chunks and compare with a minimal evidence set",[1176,1177,1178],"Changing the model fixes the answer","Generation, but not necessarily retrieval","Repeat with identical retrieved context across models",[1180,583,1181],"Changing embeddings fixes the answer","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":1220},{"content":1189,"stretched":43,"withHeadings":14},[1190,1193,1197,1201,1204,1208,1212,1216],[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",[607,1202,1203],"MRR, NDCG, gold rank, precision@k","Good ranking does not prove the generator used the evidence",[1205,1206,1207],"Context assembly","Evidence retention, duplication, contradiction rate, token utilization","Large context does not mean useful context",[1209,1210,1211],"Generation","Correctness, completeness, task success, faithfulness","Correctness alone does not prove grounding",[1213,1214,1215],"Evidence attribution","Citation precision, citation coverage, claim support","A citation count is not evidence quality",[1217,1218,1219],"Validity","Freshness, supersession accuracy, version\u002Fjurisdiction match","Relevant evidence is not automatically applicable evidence",{},{"id":628,"data":1222,"type":42,"tunes":1224},{"text":1223,"level":240},"A correct answer can still hide a RAG defect",{},{"id":633,"data":1226,"type":218,"tunes":1228},{"text":1227},"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":1230,"type":218,"tunes":1232},{"text":1231},"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":1234,"type":649,"tunes":1239},{"url":1235,"title":1236,"excerpt":1237,"ctaLabel":1238},"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":1241,"type":42,"tunes":1243},{"text":1242,"level":240},"Use competing hypotheses, not a favourite explanation",{},{"id":657,"data":1245,"type":218,"tunes":1247},{"text":1246},"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":1249,"type":218,"tunes":1251},{"text":1250},"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":1253,"type":649,"tunes":1258},{"url":1254,"title":1255,"excerpt":1256,"ctaLabel":1257},"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":1260,"type":42,"tunes":1262},{"text":1261,"level":240},"What would change this answer?",{},{"id":680,"data":1264,"type":218,"tunes":1266},{"text":1265},"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":1268,"type":218,"tunes":1270},{"text":1269},"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":1272,"type":42,"tunes":1274},{"text":1273,"level":240},"Limitations",{},{"id":695,"data":1276,"type":218,"tunes":1278},{"text":1277},"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":1280,"type":218,"tunes":1282},{"text":1281},"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":1284,"type":42,"tunes":1286},{"text":1285,"level":240},"Conclusion",{},{"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":1077,"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":1205,"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":1741,"manualIds":1742,"manualMatchedIds":1743},[1686,1693,1700,1707,1714,1721,1728,1734],{"id":1687,"slug":1688,"title":1689,"excerpt":1690,"featuredImage":1691,"publishedAt":1692},"460","ai-agent-reliability-why-the-final-answer-is-not-enough","Affidabilità degli Agenti AI: Perché la Risposta Finale Non è Sufficiente","Un output corretto non dimostra un ragionamento corretto, un'esecuzione sicura o un sistema affidabile.","\u002Fuploads\u002F2026\u002F09\u002Fai-agent-reliability-why-the-final-answer-is-not-enough-1788955466306-pl0qhz.webp","2026-09-09T04:01:00.000Z",{"id":1694,"slug":1695,"title":1696,"excerpt":1697,"featuredImage":1698,"publishedAt":1699},"478","what-is-rag-the-simplest-explanation-of-how-it-works","Cos'è il RAG? La spiegazione più semplice di come funziona","RAG sembra complicato, ma l'idea è semplice: prima che un'IA risponda, cerca prima informazioni utili da una fonte di conoscenza e fornisce tali informazioni al modello linguistico. Questa guida spiega RAG, LLM, stato, memoria e strumenti utilizzando un semplice modello mentale.","\u002Fuploads\u002F2026\u002F09\u002Fwhat-is-rag-the-simplest-explanation-of-how-it-works-1790377492124-khjagt.webp","2026-09-25T19:03:00.000Z",{"id":1701,"slug":1702,"title":1703,"excerpt":1704,"featuredImage":1705,"publishedAt":1706},"459","ollama-is-not-the-product-building-production-ready-open-llm-applications","Ollama non è il prodotto: costruire applicazioni Open-LLM pronte per la produzione","Eseguire un modello locale con Ollama è facile. Costruire un'applicazione Open-LLM pronta per la produzione è più difficile: richiede RAG, controllo degli accessi, astrazione del provider, valutazione, logging, disciplina di deployment e un livello applicativo controllato attorno al modello.","\u002Fuploads\u002F2026\u002F06\u002Follama-is-not-the-product-building-production-ready-open-llm-applications-1782679361640-h0usqf.webp","2026-06-28T16:39:00.000Z",{"id":1708,"slug":1709,"title":1710,"excerpt":1711,"featuredImage":1712,"publishedAt":1713},"364","tipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung","Padroneggiare il Flusso di Lavoro SEO: Strategie di Ottimizzazione Essenziali per la Crescita Organica","Un flusso di lavoro SEO strutturato è fondamentale per una crescita organica sostenibile. Scopri le dieci strategie fondamentali, dalla ricerca di parole chiave e dall'ottimizzazione tecnica alla qualità dei contenuti e all'analisi delle prestazioni.","\u002Fuploads\u002F2026\u002F03\u002Ftipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung-1774866098131-hwkzrg.webp","2024-01-26T06:35:00.000Z",{"id":1715,"slug":1716,"title":1717,"excerpt":1718,"featuredImage":1719,"publishedAt":1720},"468","ai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","La memoria dell'agente IA non è RAG: come separare memoria, recupero, stato e contesto","Memoria dell'agente, RAG, stato e contesto vengono spesso usati come se fossero intercambiabili. Non lo sono. Questo pratico modello architetturale separa i quattro livelli, mostra dove si colloca ciascuno e spiega cosa si rompe quando i sistemi li fanno collassare in uno solo.","\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":1722,"slug":1723,"title":1724,"excerpt":1725,"featuredImage":1726,"publishedAt":1727},"475","managed-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose","Harness per agenti gestito vs loop per agenti self-hosted: cosa si guadagna, cosa si perde","“Agente self-hosted” può indicare architetture molto diverse. Questa guida separa l'harness gestito, l'ambiente di esecuzione self-hosted e il loop dell'agente completamente autogestito—e mostra quale perimetro di controllo serve effettivamente ai team.","\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":1729,"slug":859,"title":1730,"excerpt":1731,"featuredImage":1732,"publishedAt":1733},"434","Guida completa a Evaluation Harness: Padroneggiare la valutazione delle prestazioni degli LLM","Questa guida fornisce una panoramica dettagliata di Evaluation Harness, un framework essenziale per valutare rigorosamente le capacità dei modelli linguistici di grandi dimensioni (LLM) nelle pipeline LLMOps aziendali. Scopri la configurazione, le best practice e le tecniche avanzate per garantire un benchmarking e un'ottimizzazione dei modelli affidabili.","\u002Fuploads\u002F2026\u002F04\u002Fevaluation-harness-1775466944495-4s0xv2.webp","2026-03-01T17:50:00.000Z",{"id":1735,"slug":1736,"title":1737,"excerpt":1738,"featuredImage":1739,"publishedAt":1740},"477","computer-use-agents-why-a-successful-demo-can-still-be-an-unreliable-system","Agenti per l'uso del computer: perché una demo di successo può comunque essere un sistema inaffidabile","Gli agenti computer-use possono ora completare impressionanti flussi di lavoro su browser e desktop, ma una singola esecuzione riuscita dimostra la capacità—non l'affidabilità. Questo articolo mostra come testare la ripetibilità, la robustezza ambientale, il controllo a lungo orizzonte, la consapevolezza dello stato, la verifica dei risultati e la gestione sicura degli obiettivi.","\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","fallback",[],[]]