[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portal-settings:stajic:sr":3,"public-menus:all":38,"post:rag-failed-but-which-layer-actually-failed-a-diagnostic-method:sr":205,"related:post:rag-failed-but-which-layer-actually-failed-a-diagnostic-method:sr:1":1688},{"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","sr","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":1687},{"id":207,"title":208,"slug":209,"content":210,"contentJson":211,"excerpt":836,"featuredImage":837,"featuredImageAlt":838,"featuredImageCaption":10,"featuredImageTitle":10,"featuredImageCopyright":10,"featuredImageAuthor":10,"featuredImageSourceUrl":10,"featuredImageLicense":10,"featuredImageIsAiGenerated":43,"status":839,"publishedAt":840,"createdAt":841,"updatedAt":842,"seoLocalePaths":843,"categories":852,"author":865,"translations":870},"469","RAG nije uspeo — ali koji sloj je zapravo zakazao? Dijagnostička metoda","rag-failed-but-which-layer-actually-failed-a-diagnostic-method","{\"time\":1790369120184,\"blocks\":[{\"id\":\"intro\",\"type\":\"paragraph\",\"data\":{\"text\":\"RAG sistem vraća slab, pogrešan, nepotpun ili nepotkrepljen odgovor. Uobičajena dijagnoza je „pretraga nije uspela“ ili „model je halucinirao“. Obe oznake su previše široke da bi bile korisne. Produkcioni RAG pipeline može da zakaže pre pretrage, tokom pretrage, tokom rangiranja, tokom sastavljanja konteksta, tokom generisanja ili nakon generisanja kada se proveravaju dokazi i validnost.\"},\"tunes\":{}},{\"id\":\"direct\",\"type\":\"callout\",\"data\":{\"variant\":\"info\",\"title\":\"Direktan odgovor\",\"body\":\"\u003Cstrong>Ne debagujte RAG kao jednu komponentu.\u003C\u002Fstrong> Dijagnostikujte ga kao lanac nezavisno testabilnih slojeva. Prvo utvrdite da li potrebni dokaz postoji u autoritativnom izvoru. Zatim testirajte konstrukciju upita, pretragu kandidata, rangiranje, sastavljanje konteksta, generisanje, pripisivanje dokaza i svežinu. Najbrža tehnika izolacije je \u003Cstrong>test sa oracle kontekstom\u003C\u002Fstrong>: ručno dajte generatoru tačan dokaz. Ako odgovor postane tačan, dominantni problem je uzvodno od generisanja. Ako i dalje bude pogrešan, pretraga nije primarni problem.\"},\"tunes\":{}},{\"id\":\"model-note\",\"type\":\"callout\",\"data\":{\"variant\":\"note\",\"title\":\"O dijagnostičkom modelu\",\"body\":\"RAG Failure Stack u ovom članku je praktični dijagnostički model, a ne formalni industrijski standard. Postojeće platforme već razdvajaju metrike samo pretrage od metrika pretrage i generisanja; ovaj model proširuje to razdvajanje u korak-po-korak metodu produkcijskog debagovanja.\"},\"tunes\":{}},{\"id\":\"toc\",\"type\":\"tableOfContents\",\"data\":{\"title\":\"Sadržaj\",\"minLevel\":2,\"maxLevel\":3},\"tunes\":{}},{\"id\":\"h-not-diagnosis\",\"type\":\"header\",\"data\":{\"text\":\"Zašto „RAG nije uspeo“ nije dijagnoza\",\"level\":2},\"tunes\":{}},{\"id\":\"p-not-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Generisanje potpomognuto pretragom kombinuje nekoliko mehanizama: korisnički zahtev se interpretira, konstruiše se jedna ili više pretraga, pronalazi se materijal kandidata, rezultati se filtriraju ili ponovo rangiraju, izabrani dokazi se ubacuju u kontekst modela, a model generiše odgovor. Produkcioni sistemi mogu dodati dozvole, filtere metapodataka, pravila svežine, citate, prepisivanje upita, hibridnu pretragu, pozive alata, memoriju i eksterno stanje.\"},\"tunes\":{}},{\"id\":\"p-not-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Pogrešan konačni odgovor vam stoga ne govori koja komponenta je zakazala. Model je možda dobio pogrešne dokaze. Možda je dobio tačne dokaze pomešane sa previše šuma. Dokazi mogu biti tačni ali zastareli. Izvor možda nikada nije ni sadržao odgovor. Ili je model možda ignorisao savršeno adekvatan kontekst.\"},\"tunes\":{}},{\"id\":\"p-not-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"OpenAI smernice za RAG već prave fundamentalnu razliku između neuspeha pretrage i neuspeha modela: sistem može da obezbedi pogrešan kontekst ili može da obezbedi tačan kontekst i ipak generiše pogrešan odgovor. AWS na sličan način razdvaja evaluaciju samo pretrage od evaluacije pretrage i generisanja. Za produkcijsku dijagnostiku, tu razliku treba odvesti dalje.\"},\"tunes\":{}},{\"id\":\"h-stack\",\"type\":\"header\",\"data\":{\"text\":\"RAG Failure Stack\",\"level\":2},\"tunes\":{}},{\"id\":\"table-stack\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Sloj\",\"Pitanje\",\"Tipičan neuspeh\"],[\"1. Pokrivenost izvora\",\"Da li potrebni dokaz postoji u dozvoljenom autoritativnom izvoru?\",\"Korpus uopšte ne može da odgovori na pitanje\"],[\"2. Konstrukcija upita\",\"Da li je sistem tražio pravu stvar?\",\"Namjera, entiteti, filteri, jezik ili vremenska ograničenja se gube\"],[\"3. Pretraga kandidata\",\"Da li su relevantni dokazi ušli u skup kandidata?\",\"Nizak recall; pravi chunk se nikada ne pronalazi\"],[\"4. Rangiranje i filtriranje\",\"Da li su pravi dokazi opstali i rangirali se dovoljno visoko?\",\"Relevantni dokazi su zakopani, filtrirani ili nadjačani površno sličnim tekstom\"],[\"5. Sastavljanje konteksta\",\"Da li je model dobio upotrebljive dokaze?\",\"Skraćivanje, loše granice chunk-ova, duplikati, konfliktni odlomci ili preopterećenje konteksta\"],[\"6. Generisanje\",\"Da li je model pravilno iskoristio dostavljene dokaze?\",\"Nepotkrepljeni zaključak, neuspeh instrukcije, greška u rezonovanju ili neslaganje sa odbijanjem\"],[\"7. Pripisivanje dokaza\",\"Može li se odgovor pratiti do dokaza za koje tvrdi da ih koristi?\",\"Nedostajući, slabi ili netačni citati; tvrdnje prevazilaze pronađenu podršku\"],[\"8. Validnost i svežina\",\"Da li su dokazi još uvek validni za ovo pitanje sada?\",\"Tačni istorijski dokazi se ponovo koriste van svog validnog vremena, verzije, jurisdikcije ili stanja\"]]},\"tunes\":{}},{\"id\":\"h-source\",\"type\":\"header\",\"data\":{\"text\":\"Sloj 1 — Pokrivenost izvora: može li sistem uopšte da odgovori na ovo?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-source-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Pre podešavanja embedding-a, rerankera ili prompt-ova, proverite da li odgovor postoji u prostoru znanja koji sistem sme da koristi. Ovo zvuči očigledno, ali mnogi RAG neuspesi su zapravo neuspesi korpusa. Tražena činjenica može biti odsutna, skrivena u neindeksiranom prilogu, dostupna samo u novijem dokumentu, sačuvana u sistemu izvan RAG korpusa ili blokirana dozvolama.\"},\"tunes\":{}},{\"id\":\"p-source-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Metrika pretrage ne može da povrati informaciju koja nikada nije indeksirana. Veći top-k ne može da pronađe dokument koji pipeline ne sadrži. Ako test pokrivenosti izvora ne uspe, ispravno rešenje je ingestija, izbor izvora, dozvole ili eksplicitno ponašanje „nije odgovorivo iz dostupnih dokaza“.\"},\"tunes\":{}},{\"id\":\"source-warning\",\"type\":\"callout\",\"data\":{\"variant\":\"warning\",\"title\":\"Obrazac neuspeha\",\"body\":\"Timovi često podešavaju pretragu prema pitanjima na koja korpus zapravo ne može da odgovori. To može da učini retriever boljim u pronalaženju povezanog teksta, dok osnovni informacijski jaz ostaje netaknut.\"},\"tunes\":{}},{\"id\":\"h-query\",\"type\":\"header\",\"data\":{\"text\":\"Sloj 2 — Konstrukcija upita: da li je sistem korpusu postavio pravo pitanje?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-query-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Korisnički upit nije uvek upit za pretragu. Produkcioni sistemi prepisuju pitanja, razrešavaju zamenice, izvlače entitete, prevode jezike, dodaju ograničenja metapodataka, dele složena pitanja ili generišu više pretraga. Svaka transformacija može da poboljša pretragu, ali svaka transformacija može i da uništi informaciju.\"},\"tunes\":{}},{\"id\":\"p-query-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Zahtev kao što je „Da li se politika još uvek primenjuje na izvođače u Nemačkoj nakon septembarskog ažuriranja?“ sadrži najmanje entitet, populaciju, jurisdikciju i vremensku granicu. Prepisani upit koji postane „politika za izvođače“ može da pronađe semantički povezan tekst, ali izgubi promenljive koje odlučuju da li je odgovor validan.\"},\"tunes\":{}},{\"id\":\"h-retrieval\",\"type\":\"header\",\"data\":{\"text\":\"Sloj 3 — Pronalaženje kandidata: da li su relevantni dokazi ušli u skup?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-ret-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Pronalaženje kandidata je prvenstveno problem odziva. Dijagnostičko pitanje još uvek nije da li je najbolji rezultat rangiran prvi; već da li su se relevantni dokazi pojavili bilo gde u skupu kandidata. Ako se poznati ispravan izvor ne pojavljuje, istražite indeksiranje, deljenje na delove, ugrađivanja, leksičko podudaranje, metapodatke, hibridnu pretragu, rukovanje jezikom, sinonime i proširenje upita.\"},\"tunes\":{}},{\"id\":\"p-ret-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Ovde je evaluacija samo pretrage dragocena. AWS izlaže relevantnost konteksta i pokrivenost konteksta za RAG evaluaciju samo pretrage. Važna proizvodna navika je da se evaluira pretraga pre generisanja, tako da uglađen konačan odgovor ne može sakriti slab skup kandidata.\"},\"tunes\":{}},{\"id\":\"h-ranking\",\"type\":\"header\",\"data\":{\"text\":\"Sloj 4 — Rangiranje i filtriranje: da li su pravi dokazi odbačeni ili zakopani?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-rank-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Sistem može imati dobar odziv i ipak ne uspeti jer su relevantni dokazi rangirani ispod bučnog ali semantički sličnog materijala. Ponovni rangirači, pojačavanja skorašnjosti, težine autoriteta, jezičke preferencije, filteri zakupaca, kontrole pristupa, filteri statusa proizvoda i uklanjanje duplikata menjaju ono što preživi u konačnom kontekstu.\"},\"tunes\":{}},{\"id\":\"p-rank-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Otklanjanje grešaka bi stoga trebalo da sačuva punu listu kandidata, ne samo konačnih top-k. Ako su zlatni dokazi pronađeni na rangu 18 i ponovni rangirač ih je uklonio, ispravka nije ista kao promašaj pretrage.\"},\"tunes\":{}},{\"id\":\"h-context\",\"type\":\"header\",\"data\":{\"text\":\"Sloj 5 — Sastavljanje konteksta: da li su korisni dokazi postali upotrebljiv kontekst?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-ctx-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Uspeh pretrage ne garantuje uspeh konteksta. Relevantni delovi mogu biti skraćeni, odvojeni od svojih kvalifikatora, duplicirani dok ne dominiraju upitom, pomešani sa kontradiktornim verzijama ili okruženi dovoljno irelevantnog teksta da odlučujući odlomak izgubi istaknutost.\"},\"tunes\":{}},{\"id\":\"p-ctx-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Granice delova su posebno važne. Rečenica može sadržati pravilo dok sledeća rečenica sadrži izuzetak. Ako su indeksirane odvojeno i samo prva je pronađena, pretraživač može izgledati relevantno dok sastavljeni kontekst postaje obmanjujući.\"},\"tunes\":{}},{\"id\":\"h-generation\",\"type\":\"header\",\"data\":{\"text\":\"Sloj 6 — Generisanje: može li model ispravno koristiti ispravne dokaze?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-gen-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Kada je sistem dokazano obezbedio dovoljno dokaza, generisanje postaje nezavisno testabilno. Model može preterano generalizovati, kombinovati nekompatibilne odlomke, ignorisati negativnu izjavu, ne uspeti da prati traženi format odgovora, izmisliti vezu između činjenica ili odgovoriti iz parametarske memorije umesto iz pronađenih dokaza.\"},\"tunes\":{}},{\"id\":\"p-gen-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Zato je samo end-to-end ispravnost nedovoljna za dijagnozu. OpenAI preporučuje evaluaciju kao strukturiran način razumevanja ponašanja aplikacije, dok Anthropic-ove smernice za evaluaciju agenata naglašavaju višestruka ispitivanja, ocenjivače, tragove i realistične slučajeve neuspeha. Za RAG, generator treba testirati i sa normalnom pretragom i sa kontrolisanim zlatnim kontekstom.\"},\"tunes\":{}},{\"id\":\"h-evidence\",\"type\":\"header\",\"data\":{\"text\":\"Sloj 7 — Pripisivanje dokaza: da li je odgovor zaista podržan?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-evidence-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Uverljiv odgovor sa citatima i dalje može biti slabo utemeljen. Citirani dokument može biti relevantan za temu ali ne podržava konkretnu tvrdnju. Jedna rečenica može biti podržana dok je druga izvedena. Citat može ukazivati na izvor koji protivreči odgovoru kada se pročitaju njegovi uslovi.\"},\"tunes\":{}},{\"id\":\"p-evidence-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Evaluacija citata stoga pripada posle generisanja. AWS razlikuje preciznost citata od pokrivenosti citata: da li su citirani odlomci ispravno citirani i da li je odgovor dovoljno podržan citatima. U proizvodnji, podrška na nivou tvrdnje je korisnija od tretiranja prisustva bilo kog citata kao kvaliteta dokaza.\"},\"tunes\":{}},{\"id\":\"h-validity\",\"type\":\"header\",\"data\":{\"text\":\"Sloj 8 — Validnost i svežina: da li su dokazi bili ispravni za ovu verziju stvarnosti?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-valid-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"RAG može pronaći savršeno autentičan, visoko relevantan, verno citiran izvor i ipak proizvesti pogrešan odgovor ako izvor više nije validan za trenutno pitanje. Politike se menjaju. API-ji se ukidaju. cene se menjaju. ponašanje softvera se menja između verzija. inventar proizvoda se menja. dozvole se menjaju. zakrpe igara menjaju mehaniku.\"},\"tunes\":{}},{\"id\":\"p-valid-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Ovo je odvojena klasa neuspeha od halucinacije. Dokazi su stvarni; njihova primenljivost je pogrešna. Robustan sistem stoga zahteva vremenske oznake, metapodatke o verziji ili jurisdikciji gde je relevantno, autoritet izvora, pravila zamene i eksplicitan mehanizam za odlučivanje kada stariji dokazi moraju biti ograničeni ili napušteni.\"},\"tunes\":{}},{\"id\":\"h-oracle\",\"type\":\"header\",\"data\":{\"text\":\"Najbrži metod izolacije: test sa orakulskim kontekstom\",\"level\":2},\"tunes\":{}},{\"id\":\"p-oracle-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Najkorisnija prva podela je jednostavna: ručno obezbedite generatoru mali skup dokaza za koje znate da su dovoljni da odgovore na pitanje. Zadržite zadatak i očekivani odgovor nepromenjenim.\"},\"tunes\":{}},{\"id\":\"oracle-comparison\",\"type\":\"comparison\",\"data\":{\"title\":\"Test sa orakulskim kontekstom\",\"layout\":\"table\",\"columns\":[{\"id\":\"result\",\"label\":\"Rezultat\"},{\"id\":\"meaning\",\"label\":\"Verovatno tumačenje\"},{\"id\":\"next\",\"label\":\"Sledeći dijagnostički korak\"}],\"rows\":[{\"id\":\"oracle-pass\",\"label\":\"Odgovor postaje tačan\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"oracle-fail\",\"label\":\"Odgovor ostaje netačan\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"oracle-partial\",\"label\":\"Odgovor se poboljšava ali ostaje nepotpun\",\"values\":[\"\",\"\",\"\"]}]},\"tunes\":{}},{\"id\":\"oracle-tip\",\"type\":\"callout\",\"data\":{\"variant\":\"tip\",\"title\":\"Zašto je ovaj test moćan\",\"body\":\"Test sa orakulskim kontekstom uklanja većinu procesa pronalaženja iz eksperimenta. Ne dokazuje da je generisanje savršeno, ali vam daje brzu kontrafaktualnu sliku: \u003Cstrong>šta bi model uradio da je pronalaženje već uspelo?\u003C\u002Fstrong>\"},\"tunes\":{}},{\"id\":\"h-sequence\",\"type\":\"header\",\"data\":{\"text\":\"Produkcijska dijagnostička sekvenca\",\"level\":2},\"tunes\":{}},{\"id\":\"diag-flow\",\"type\":\"processFlow\",\"data\":{\"title\":\"Dijagnostikujte neuspeh od dokaza do odgovora\",\"orientation\":\"auto\",\"steps\":[{\"label\":\"1. Definišite očekivanu tvrdnju\",\"description\":\"Napišite očekivani odgovor, dozvoljenu nesigurnost i dokaze koji bi ga opravdali.\"},{\"label\":\"2. Proverite pokrivenost izvora\",\"description\":\"Potvrdite da autoritativni i dozvoljeni dokazi postoje u indeksiranom ili dostupnom skupu izvora.\"},{\"label\":\"3. Pokrenite test sa orakulskim kontekstom\",\"description\":\"Dostavite dovoljne zlatne dokaze direktno generatoru i posmatrajte da li odgovor postaje tačan.\"},{\"label\":\"4. Pregledajte upit za pronalaženje\",\"description\":\"Proverite prepisivanja, entitete, filtere, jezik, vremenska ograničenja, dekompoziciju i skrivene pretpostavke.\"},{\"label\":\"5. Pregledajte kandidate pre ponovnog rangiranja\",\"description\":\"Utvrdite da li su relevantni dokazi uopšte pronađeni i zabeležite njihov rang.\"},{\"label\":\"6. Pregledajte rangiranje i sastavljanje konteksta\",\"description\":\"Proverite ponovno rangiranje, filtere metapodataka, skraćivanje, granice delova, duplikate, konflikte i sastav top-k.\"},{\"label\":\"7. Ocjenjujte generisanje i citate odvojeno\",\"description\":\"Izmerite tačnost odgovora, potpunost, vernost i podršku dokaza na nivou tvrdnje.\"},{\"label\":\"8. Testirajte granice validnosti\",\"description\":\"Proverite da li verzija, datum, stanje, jurisdikcija, dozvole ili dokazi koji zamenjuju prethodne menjaju odgovor.\"}]},\"tunes\":{}},{\"id\":\"h-one-change\",\"type\":\"header\",\"data\":{\"text\":\"Ne menjajte tri sloja odjednom\",\"level\":2},\"tunes\":{}},{\"id\":\"p-one-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Česta greška pri otklanjanju grešaka je menjanje ugrađivanja, veličina delova, top-k, upita i modela u jednoj iteraciji. Ako se rezultat poboljša, ne znate zašto. Ako se pogorša, ne znate koja promena je izazvala regresiju.\"},\"tunes\":{}},{\"id\":\"p-one-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Tretirajte otklanjanje grešaka u RAG-u kao eksperimentalnu dijagnostiku: držite što veći deo procesa konstantnim i zamenite jednu neizvesnu komponentu kontrolisanim ulazom. Zlatni dokumenti izoluju pronalaženje. Zlatni delovi izoluju izbor delova. Fiksni kontekst izoluje generisanje. Fiksni model izoluje promene u pronalaženju. Fiksni korpus izoluje promene u unosu i indeksiranju.\"},\"tunes\":{}},{\"id\":\"h-matrix\",\"type\":\"header\",\"data\":{\"text\":\"Matrica neuspeha za uobičajene RAG simptome\",\"level\":2},\"tunes\":{}},{\"id\":\"symptom-matrix\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Simptom\",\"Slojevi koje najverovatnije prvo testirati\",\"Diskriminišući test\"],[\"Nijedan relevantan izvor se ne pojavljuje\",\"Pokrivenost izvora → Upit → Pronalaženje kandidata\",\"Ručno pretražite korpus, zatim pregledajte prepisani upit i nefiltrirane kandidate\"],[\"Relevantan izvor se pojavljuje ali odgovor je netačan\",\"Sastavljanje konteksta → Generisanje\",\"Test sa orakulskim kontekstom sa istim izvorom svedenim na odlučujuće pasuse\"],[\"Odgovor je ponekad tačan, ponekad netačan\",\"Rangiranje → Sastavljanje konteksta → Varijabilnost generisanja\",\"Ponovite pokušaje uz beleženje pronađenog skupa, ranga, konteksta upita i izlaza modela\"],[\"Odgovor citira pravi dokument ali ga preuveličava\",\"Generisanje → Pripisivanje dokaza → Validnost\",\"Ocenite svaku tvrdnju prema tačnom citiranom pasusu\"],[\"Stare informacije stalno pobeđuju\",\"Rangiranje → Validnost\u002Fsvežina\",\"Uporedite sa pravilima o novijim\u002Fzamenjujućim informacijama i pregledajte metapodatke\"],[\"Odgovor propušta izuzetak\",\"Deljenje na delove → Sastavljanje konteksta\",\"Proverite da li su pravilo i izuzetak razdvojeni ili skraćeni\"],[\"Dodavanje više top-k pogoršava kvalitet\",\"Rangiranje → Preopterećenje konteksta\",\"Uklonite delove male vrednosti i uporedite sa minimalnim skupom dokaza\"],[\"Promena modela popravlja odgovor\",\"Generisanje, ali ne nužno pronalaženje\",\"Ponovite sa identičnim pronađenim kontekstom kroz modele\"],[\"Promena ugrađivanja popravlja odgovor\",\"Pronalaženje\u002Frangiranje\",\"Držite generator i šablon konteksta konstantnim dok upoređujete obuhvat kandidata\"]]},\"tunes\":{}},{\"id\":\"h-metrics\",\"type\":\"header\",\"data\":{\"text\":\"Merite svaki sloj metrikom na koju zaista može da utiče\",\"level\":2},\"tunes\":{}},{\"id\":\"metrics-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Sloj\",\"Korisna merenja\",\"Šta ne treba zaključivati\"],[\"Pokrivenost izvora\",\"Stopa pitanja na koja se može odgovoriti, pokrivenost korpusa, potpunost unosa\",\"Ne krivite ugrađivanja za nedostatak izvornog materijala\"],[\"Pronalaženje kandidata\",\"Recall@k, stopa pogodaka, pokrivenost konteksta\",\"Visok recall ne dokazuje kvalitet rangiranja\"],[\"Rangiranje\",\"MRR, NDCG, zlatni rang, precision@k\",\"Dobro rangiranje ne dokazuje da je generator koristio dokaze\"],[\"Sastavljanje konteksta\",\"Zadržavanje dokaza, duplikacija, stopa kontradikcija, iskorišćenost tokena\",\"Veliki kontekst ne znači koristan kontekst\"],[\"Generisanje\",\"Tačnost, potpunost, uspeh zadatka, vernost\",\"Sama tačnost ne dokazuje utemeljenost\"],[\"Pripisivanje dokaza\",\"Preciznost citata, pokrivenost citata, podrška tvrdnji\",\"Broj citata nije kvalitet dokaza\"],[\"Validnost\",\"Svežina, tačnost zamene, podudaranje verzije\u002Fjurisdikcije\",\"Relevantni dokazi nisu automatski primenljivi dokazi\"]]},\"tunes\":{}},{\"id\":\"h-correct-answer\",\"type\":\"header\",\"data\":{\"text\":\"Tačan odgovor i dalje može da sakrije RAG defekt\",\"level\":2},\"tunes\":{}},{\"id\":\"p-correct-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Obrnuti problem je takođe važan. RAG sistem može da proizvede tačan odgovor dok je pronalaženje pokvareno. Model možda već zna odgovor iz treninga, zaključuje ga iz slabih dokaza ili tačno pogađa. Ako evaluacija gleda samo konačni odgovor, sistem može izgledati zdravo dok pitanje ne dođe do informacija koje postoje samo u privatnom korpusu.\"},\"tunes\":{}},{\"id\":\"p-correct-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"To je isti problem pouzdanosti koji se šire pojavljuje u agentskim sistemima: tačnost ishoda nije dovoljna da dokaže da je put izvršavanja bio pouzdan. Za RAG, tragovi treba da sačuvaju najmanje upit za pronalaženje, skup kandidata, rangiranje, konačni kontekst, odgovor, citate, verziju modela, verziju korpusa\u002Findeksa i relevantne filtere.\"},\"tunes\":{}},{\"id\":\"internal-reliability\",\"type\":\"referralArticle\",\"data\":{\"url\":\"https:\u002F\u002Fstajic.de\u002Fsr\u002Fblog\u002Fai-agent-reliability-why-the-final-answer-is-not-enough\",\"title\":\"Pouzdanost AI agenata: Zašto konačni odgovor nije dovoljan\",\"excerpt\":\"Tačan izlaz ne dokazuje ispravno rezonovanje, bezbedno izvršavanje ili sistem od poverenja. Ovaj članak proširuje taj princip od RAG dijagnostike do agentskih trajektorija i operativnog osiguranja.\",\"ctaLabel\":\"Pročitajte povezani članak\"},\"tunes\":{}},{\"id\":\"h-hypotheses\",\"type\":\"header\",\"data\":{\"text\":\"Koristite konkurentske hipoteze, a ne omiljeno objašnjenje\",\"level\":2},\"tunes\":{}},{\"id\":\"p-hyp-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Ako loš odgovor odmah postane „problem sa embeddingom“, istraga je već pristrasna. Jača metoda otklanjanja grešaka zapisuje konkurentske hipoteze pre promene sistema: nedostajući izvor, loše prepisivanje upita, nizak recall pretrage, loše rangiranje, skraćivanje konteksta, konfliktne verzije, greška generisanja, greška citiranja ili zastareli dokazi.\"},\"tunes\":{}},{\"id\":\"p-hyp-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Zatim izaberite test koji bi razdvojio te hipoteze. To je efikasnije od prikupljanja više primera koji podržavaju prvo objašnjenje. Isti princip važi za AI-podržano tehničko rezonovanje uopšte: korisna dijagnoza je ona koja preživi diskriminišuće testove, a ne ona koja samo zvuči uverljivo.\"},\"tunes\":{}},{\"id\":\"internal-reasoning\",\"type\":\"referralArticle\",\"data\":{\"url\":\"https:\u002F\u002Fstajic.de\u002Fsr\u002Fblog\u002Ffrom-research-protocol-to-a-general-ai-reasoning-framework\",\"title\":\"Od istraživačkog protokola do opšteg okvira za AI rezonovanje\",\"excerpt\":\"Domen-nezavisna metoda rezonovanja za razdvajanje dokaza od pretpostavki, testiranje konkurentskih hipoteza i korišćenje validatora specifičnih za domen.\",\"ctaLabel\":\"Pročitajte okvir za rezonovanje\"},\"tunes\":{}},{\"id\":\"h-change\",\"type\":\"header\",\"data\":{\"text\":\"Šta bi promenilo ovaj odgovor?\",\"level\":2},\"tunes\":{}},{\"id\":\"p-change-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Tačni dijagnostički slojevi se menjaju sa arhitekturom. Jednostavna RAG aplikacija sa jednim dokumentom možda nema prepisivanje upita, reranker ili sloj citiranja. Agentni sistem pretrage može dodati planiranje, višestruke pretrage, izbor alata, memoriju, dozvole i iterativno prikupljanje dokaza. Strukturisano pretraživanje baze podataka možda uopšte ne koristi chunk-ove ili embedding-e.\"},\"tunes\":{}},{\"id\":\"p-change-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Osnovna metoda i dalje važi: identifikujte komponente koje mogu nezavisno da promene rezultat, konstruišite kontrolisane testove koji zamenjuju neizvesne komponente poznato-ispravnim ulazima i merite svaku komponentu koristeći dokaze prikladne tom sloju.\"},\"tunes\":{}},{\"id\":\"h-limitations\",\"type\":\"header\",\"data\":{\"text\":\"Ograničenja\",\"level\":2},\"tunes\":{}},{\"id\":\"p-limit-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Stvarni otkazi su često povezani. Slab upit može smanjiti recall, što menja rangiranje, što menja kontekst, što povećava varijansu generisanja. Test sa oracle kontekstom je dijagnostička prečica, a ne dokaz da je jedna komponenta isključivo odgovorna. Skupovi podataka za evaluaciju takođe mogu biti nereprezentativni, a ocenjivači zasnovani na modelima mogu uneti sopstvene greške.\"},\"tunes\":{}},{\"id\":\"p-limit-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Predloženi stack je stoga najbolje koristiti kao strukturu istrage: logujte pipeline, izolujte promenljive, reprodukujte otkaze, testirajte konkurentska objašnjenja i zadržite end-to-end evaluaciju nakon popravki na nivou slojeva.\"},\"tunes\":{}},{\"id\":\"h-conclusion\",\"type\":\"header\",\"data\":{\"text\":\"Zaključak\",\"level\":2},\"tunes\":{}},{\"id\":\"p-conclusion-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"„RAG nije uspeo“ treba da bude početak istrage, a ne zaključak. Korisna dijagnoza identifikuje da li je sistemu nedostajao dokaz, pretraživao pogrešno, nije uspeo da ga pronađe, loše ga rangirao, sastavio neupotrebljiv kontekst, generisao pogrešno, loše pripisao tvrdnje ili primenio dokaz izvan njegove granice važenja.\"},\"tunes\":{}},{\"id\":\"p-conclusion-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Praktično pravilo je jednostavno: zamenite neizvesnost kontrolisanim dokazima sloj po sloj. Počnite sa testom oracle konteksta. Razdvojite evaluaciju samo pretrage od evaluacije generisanja. Sačuvajte puni trag. Zatim popravite komponentu koja je zaista otkazala umesto da podešavate ceo RAG stack po intuiciji.\"},\"tunes\":{}},{\"id\":\"h-faq\",\"type\":\"header\",\"data\":{\"text\":\"Česta pitanja\",\"level\":2},\"tunes\":{}},{\"id\":\"faq\",\"type\":\"faq\",\"data\":{\"title\":\"Dijagnoza RAG otkaza\",\"items\":[{\"id\":\"faq1\",\"question\":\"Kako mogu da utvrdim da li je RAG pretraga ili LLM otkazao?\",\"answer\":\"Dajte modelu mali skup poznato-ispravnih dokaza ručno. Ako odgovor postane tačan, istražite pokrivenost izvora, konstrukciju upita, pretragu, rangiranje i sastavljanje konteksta. Ako model i dalje otkazuje sa dovoljno dokaza, pretraga nije primarni problem.\"},{\"id\":\"faq2\",\"question\":\"Može li RAG da otkaže čak i kada je ispravan dokument pronađen?\",\"answer\":\"Da. Relevantni odlomak može biti rangiran prenisko, skraćen, odvojen od izuzetka, pomešan sa konfliktnim dokazima, preplavljen irelevantnim kontekstom ili pogrešno iskorišćen od strane generatora.\"},{\"id\":\"faq3\",\"question\":\"Da li je tačnost odgovora dovoljna za evaluaciju RAG sistema?\",\"answer\":\"Ne. Model može proizvesti tačan odgovor uprkos slaboj pretrazi oslanjajući se na prethodno znanje modela ili slučajnost. Evaluacija pretrage i podrške dokazima treba da bude odvojena od tačnosti konačnog odgovora.\"},{\"id\":\"faq4\",\"question\":\"Šta treba da logujem kada otklanjam greške u RAG-u?\",\"answer\":\"Najmanje logujte korisnički zahtev, transformisani upit pretrage, filtere, kandidat dokumente i rangove, finalno izabrani kontekst, verziju modela i prompta, odgovor, citate, verziju korpusa\u002Findeksa i vremenske ili verzijske metapodatke relevantne za svežinu.\"},{\"id\":\"faq5\",\"question\":\"Da li povećanje top-k obično popravlja RAG?\",\"answer\":\"Ne pouzdano. Veći skup kandidata ili konteksta može poboljšati recall, ali može dodati i šum, kontradikcije, duplikate i preopterećenje konteksta. Testirajte da li relevantni dokaz nedostaje pre povećanja top-k.\"}]},\"tunes\":{}},{\"id\":\"h-glossary\",\"type\":\"header\",\"data\":{\"text\":\"Pojmovnik\",\"level\":2},\"tunes\":{}},{\"id\":\"glossary\",\"type\":\"glossary\",\"data\":{\"title\":\"Ključni dijagnostički pojmovi\",\"entries\":[{\"term\":\"Test oracle konteksta\",\"definition\":\"Kontrolisani test u kojem se generatoru direktno daju poznato-dovoljni dokazi kako bi se utvrdilo da li je dominantni otkaz uzvodno od generisanja.\",\"anchor\":\"oracle-context-test\"},{\"term\":\"Pretraga kandidata\",\"definition\":\"Faza koja bira početni skup potencijalno relevantnih dokumenata, chunk-ova, zapisa ili odlomaka pre finalnog rangiranja ili sastavljanja konteksta.\",\"anchor\":\"candidate-retrieval\"},{\"term\":\"Sastavljanje konteksta\",\"definition\":\"Proces pretvaranja pronađenih dokaza u stvarni ulaz modela, uključujući redosled, skraćivanje, uklanjanje duplikata, formatiranje i odluke o budžetu tokena.\",\"anchor\":\"context-assembly\"},{\"term\":\"Verodostojnost\",\"definition\":\"Stepen do kojeg generisane tvrdnje ostaju podržane pronađenim ili dostavljenim dokazima umesto uvođenja nepodržanog sadržaja.\",\"anchor\":\"faithfulness\"},{\"term\":\"Pokrivenost konteksta\",\"definition\":\"Mera orijentisana na pretragu koja pokazuje da li izabrani dokazi pokrivaju informacije potrebne za odgovor na pitanje.\",\"anchor\":\"context-coverage\"},{\"term\":\"Granica važenja\",\"definition\":\"Uslovi pod kojima tvrdnja ili odgovor ostaje primenljiv, kao što su vreme, verzija, jurisdikcija, stanje, populacija, dozvole ili pretpostavke izvora.\",\"anchor\":\"validity-boundary\"}]},\"tunes\":{}},{\"id\":\"h-sources\",\"type\":\"header\",\"data\":{\"text\":\"Primarni izvori i dodatno čitanje\",\"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 — Optimizacija tačnosti LLM-a\",\"description\":\"OpenAI smernice koje razdvajaju otkaze pretrage od otkaza LLM-a u RAG aplikacijama.\"}},\"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 — Najbolje prakse za evaluaciju\",\"description\":\"Smernice o strukturisanoj evaluaciji za promenljive AI sisteme i dizajnu testova usmerenom na produkciju.\"}},\"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 — Metrike evaluacije RAG-a\",\"description\":\"Dokumentacija koja razdvaja metrike samo za preuzimanje od metrika za preuzimanje i generisanje, uključujući relevantnost konteksta, pokrivenost, vernost i mere citiranja.\"}},\"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 — Razotkrivanje evaluacija za AI agente\",\"description\":\"Praktične smernice za evaluaciju zadataka, ispitivanja, ocenjivača, tragova, regresija i ponašanja u produkciji.\"}},\"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 — Generisanje uz podršku preuzimanja\",\"description\":\"Pregled RAG arhitekture i važnosti relevantnog preuzimanja i utemeljenog generisanja.\"}},\"tunes\":{}}],\"version\":\"2.31.6\"}",{"time":212,"blocks":213,"version":835},1790369120184,[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,784,789,799,808,817,826],{"id":215,"data":216,"type":218,"tunes":219},"intro",{"text":217},"RAG sistem vraća slab, pogrešan, nepotpun ili nepotkrepljen odgovor. Uobičajena dijagnoza je „pretraga nije uspela“ ili „model je halucinirao“. Obe oznake su previše široke da bi bile korisne. Produkcioni RAG pipeline može da zakaže pre pretrage, tokom pretrage, tokom rangiranja, tokom sastavljanja konteksta, tokom generisanja ili nakon generisanja kada se proveravaju dokazi i validnost.","paragraph",{},{"id":221,"data":222,"type":226,"tunes":227},"direct",{"body":223,"title":224,"variant":225},"\u003Cstrong>Ne debagujte RAG kao jednu komponentu.\u003C\u002Fstrong> Dijagnostikujte ga kao lanac nezavisno testabilnih slojeva. Prvo utvrdite da li potrebni dokaz postoji u autoritativnom izvoru. Zatim testirajte konstrukciju upita, pretragu kandidata, rangiranje, sastavljanje konteksta, generisanje, pripisivanje dokaza i svežinu. Najbrža tehnika izolacije je \u003Cstrong>test sa oracle kontekstom\u003C\u002Fstrong>: ručno dajte generatoru tačan dokaz. Ako odgovor postane tačan, dominantni problem je uzvodno od generisanja. Ako i dalje bude pogrešan, pretraga nije primarni problem.","Direktan odgovor","info","callout",{},{"id":229,"data":230,"type":226,"tunes":234},"model-note",{"body":231,"title":232,"variant":233},"RAG Failure Stack u ovom članku je praktični dijagnostički model, a ne formalni industrijski standard. Postojeće platforme već razdvajaju metrike samo pretrage od metrika pretrage i generisanja; ovaj model proširuje to razdvajanje u korak-po-korak metodu produkcijskog debagovanja.","O dijagnostičkom modelu","note",{},{"id":236,"data":237,"type":241,"tunes":242},"toc",{"title":238,"maxLevel":239,"minLevel":240},"Sadržaj",3,2,"tableOfContents",{},{"id":244,"data":245,"type":42,"tunes":247},"h-not-diagnosis",{"text":246,"level":240},"Zašto „RAG nije uspeo“ nije dijagnoza",{},{"id":249,"data":250,"type":218,"tunes":252},"p-not-1",{"text":251},"Generisanje potpomognuto pretragom kombinuje nekoliko mehanizama: korisnički zahtev se interpretira, konstruiše se jedna ili više pretraga, pronalazi se materijal kandidata, rezultati se filtriraju ili ponovo rangiraju, izabrani dokazi se ubacuju u kontekst modela, a model generiše odgovor. Produkcioni sistemi mogu dodati dozvole, filtere metapodataka, pravila svežine, citate, prepisivanje upita, hibridnu pretragu, pozive alata, memoriju i eksterno stanje.",{},{"id":254,"data":255,"type":218,"tunes":257},"p-not-2",{"text":256},"Pogrešan konačni odgovor vam stoga ne govori koja komponenta je zakazala. Model je možda dobio pogrešne dokaze. Možda je dobio tačne dokaze pomešane sa previše šuma. Dokazi mogu biti tačni ali zastareli. Izvor možda nikada nije ni sadržao odgovor. Ili je model možda ignorisao savršeno adekvatan kontekst.",{},{"id":259,"data":260,"type":218,"tunes":262},"p-not-3",{"text":261},"OpenAI smernice za RAG već prave fundamentalnu razliku između neuspeha pretrage i neuspeha modela: sistem može da obezbedi pogrešan kontekst ili može da obezbedi tačan kontekst i ipak generiše pogrešan odgovor. AWS na sličan način razdvaja evaluaciju samo pretrage od evaluacije pretrage i generisanja. Za produkcijsku dijagnostiku, tu razliku treba odvesti dalje.",{},{"id":264,"data":265,"type":42,"tunes":267},"h-stack",{"text":266,"level":240},"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],"Sloj","Pitanje","Tipičan neuspeh",[277,278,279],"1. Pokrivenost izvora","Da li potrebni dokaz postoji u dozvoljenom autoritativnom izvoru?","Korpus uopšte ne može da odgovori na pitanje",[281,282,283],"2. Konstrukcija upita","Da li je sistem tražio pravu stvar?","Namjera, entiteti, filteri, jezik ili vremenska ograničenja se gube",[285,286,287],"3. Pretraga kandidata","Da li su relevantni dokazi ušli u skup kandidata?","Nizak recall; pravi chunk se nikada ne pronalazi",[289,290,291],"4. Rangiranje i filtriranje","Da li su pravi dokazi opstali i rangirali se dovoljno visoko?","Relevantni dokazi su zakopani, filtrirani ili nadjačani površno sličnim tekstom",[293,294,295],"5. Sastavljanje konteksta","Da li je model dobio upotrebljive dokaze?","Skraćivanje, loše granice chunk-ova, duplikati, konfliktni odlomci ili preopterećenje konteksta",[297,298,299],"6. Generisanje","Da li je model pravilno iskoristio dostavljene dokaze?","Nepotkrepljeni zaključak, neuspeh instrukcije, greška u rezonovanju ili neslaganje sa odbijanjem",[301,302,303],"7. Pripisivanje dokaza","Može li se odgovor pratiti do dokaza za koje tvrdi da ih koristi?","Nedostajući, slabi ili netačni citati; tvrdnje prevazilaze pronađenu podršku",[305,306,307],"8. Validnost i svežina","Da li su dokazi još uvek validni za ovo pitanje sada?","Tačni istorijski dokazi se ponovo koriste van svog validnog vremena, verzije, jurisdikcije ili stanja","table",{},{"id":311,"data":312,"type":42,"tunes":314},"h-source",{"text":313,"level":239},"Sloj 1 — Pokrivenost izvora: može li sistem uopšte da odgovori na ovo?",{},{"id":316,"data":317,"type":218,"tunes":319},"p-source-1",{"text":318},"Pre podešavanja embedding-a, rerankera ili prompt-ova, proverite da li odgovor postoji u prostoru znanja koji sistem sme da koristi. Ovo zvuči očigledno, ali mnogi RAG neuspesi su zapravo neuspesi korpusa. Tražena činjenica može biti odsutna, skrivena u neindeksiranom prilogu, dostupna samo u novijem dokumentu, sačuvana u sistemu izvan RAG korpusa ili blokirana dozvolama.",{},{"id":321,"data":322,"type":218,"tunes":324},"p-source-2",{"text":323},"Metrika pretrage ne može da povrati informaciju koja nikada nije indeksirana. Veći top-k ne može da pronađe dokument koji pipeline ne sadrži. Ako test pokrivenosti izvora ne uspe, ispravno rešenje je ingestija, izbor izvora, dozvole ili eksplicitno ponašanje „nije odgovorivo iz dostupnih dokaza“.",{},{"id":326,"data":327,"type":226,"tunes":331},"source-warning",{"body":328,"title":329,"variant":330},"Timovi često podešavaju pretragu prema pitanjima na koja korpus zapravo ne može da odgovori. To može da učini retriever boljim u pronalaženju povezanog teksta, dok osnovni informacijski jaz ostaje netaknut.","Obrazac neuspeha","warning",{},{"id":333,"data":334,"type":42,"tunes":336},"h-query",{"text":335,"level":239},"Sloj 2 — Konstrukcija upita: da li je sistem korpusu postavio pravo pitanje?",{},{"id":338,"data":339,"type":218,"tunes":341},"p-query-1",{"text":340},"Korisnički upit nije uvek upit za pretragu. Produkcioni sistemi prepisuju pitanja, razrešavaju zamenice, izvlače entitete, prevode jezike, dodaju ograničenja metapodataka, dele složena pitanja ili generišu više pretraga. Svaka transformacija može da poboljša pretragu, ali svaka transformacija može i da uništi informaciju.",{},{"id":343,"data":344,"type":218,"tunes":346},"p-query-2",{"text":345},"Zahtev kao što je „Da li se politika još uvek primenjuje na izvođače u Nemačkoj nakon septembarskog ažuriranja?“ sadrži najmanje entitet, populaciju, jurisdikciju i vremensku granicu. Prepisani upit koji postane „politika za izvođače“ može da pronađe semantički povezan tekst, ali izgubi promenljive koje odlučuju da li je odgovor validan.",{},{"id":348,"data":349,"type":42,"tunes":351},"h-retrieval",{"text":350,"level":239},"Sloj 3 — Pronalaženje kandidata: da li su relevantni dokazi ušli u skup?",{},{"id":353,"data":354,"type":218,"tunes":356},"p-ret-1",{"text":355},"Pronalaženje kandidata je prvenstveno problem odziva. Dijagnostičko pitanje još uvek nije da li je najbolji rezultat rangiran prvi; već da li su se relevantni dokazi pojavili bilo gde u skupu kandidata. Ako se poznati ispravan izvor ne pojavljuje, istražite indeksiranje, deljenje na delove, ugrađivanja, leksičko podudaranje, metapodatke, hibridnu pretragu, rukovanje jezikom, sinonime i proširenje upita.",{},{"id":358,"data":359,"type":218,"tunes":361},"p-ret-2",{"text":360},"Ovde je evaluacija samo pretrage dragocena. AWS izlaže relevantnost konteksta i pokrivenost konteksta za RAG evaluaciju samo pretrage. Važna proizvodna navika je da se evaluira pretraga pre generisanja, tako da uglađen konačan odgovor ne može sakriti slab skup kandidata.",{},{"id":363,"data":364,"type":42,"tunes":366},"h-ranking",{"text":365,"level":239},"Sloj 4 — Rangiranje i filtriranje: da li su pravi dokazi odbačeni ili zakopani?",{},{"id":368,"data":369,"type":218,"tunes":371},"p-rank-1",{"text":370},"Sistem može imati dobar odziv i ipak ne uspeti jer su relevantni dokazi rangirani ispod bučnog ali semantički sličnog materijala. Ponovni rangirači, pojačavanja skorašnjosti, težine autoriteta, jezičke preferencije, filteri zakupaca, kontrole pristupa, filteri statusa proizvoda i uklanjanje duplikata menjaju ono što preživi u konačnom kontekstu.",{},{"id":373,"data":374,"type":218,"tunes":376},"p-rank-2",{"text":375},"Otklanjanje grešaka bi stoga trebalo da sačuva punu listu kandidata, ne samo konačnih top-k. Ako su zlatni dokazi pronađeni na rangu 18 i ponovni rangirač ih je uklonio, ispravka nije ista kao promašaj pretrage.",{},{"id":378,"data":379,"type":42,"tunes":381},"h-context",{"text":380,"level":239},"Sloj 5 — Sastavljanje konteksta: da li su korisni dokazi postali upotrebljiv kontekst?",{},{"id":383,"data":384,"type":218,"tunes":386},"p-ctx-1",{"text":385},"Uspeh pretrage ne garantuje uspeh konteksta. Relevantni delovi mogu biti skraćeni, odvojeni od svojih kvalifikatora, duplicirani dok ne dominiraju upitom, pomešani sa kontradiktornim verzijama ili okruženi dovoljno irelevantnog teksta da odlučujući odlomak izgubi istaknutost.",{},{"id":388,"data":389,"type":218,"tunes":391},"p-ctx-2",{"text":390},"Granice delova su posebno važne. Rečenica može sadržati pravilo dok sledeća rečenica sadrži izuzetak. Ako su indeksirane odvojeno i samo prva je pronađena, pretraživač može izgledati relevantno dok sastavljeni kontekst postaje obmanjujući.",{},{"id":393,"data":394,"type":42,"tunes":396},"h-generation",{"text":395,"level":239},"Sloj 6 — Generisanje: može li model ispravno koristiti ispravne dokaze?",{},{"id":398,"data":399,"type":218,"tunes":401},"p-gen-1",{"text":400},"Kada je sistem dokazano obezbedio dovoljno dokaza, generisanje postaje nezavisno testabilno. Model može preterano generalizovati, kombinovati nekompatibilne odlomke, ignorisati negativnu izjavu, ne uspeti da prati traženi format odgovora, izmisliti vezu između činjenica ili odgovoriti iz parametarske memorije umesto iz pronađenih dokaza.",{},{"id":403,"data":404,"type":218,"tunes":406},"p-gen-2",{"text":405},"Zato je samo end-to-end ispravnost nedovoljna za dijagnozu. OpenAI preporučuje evaluaciju kao strukturiran način razumevanja ponašanja aplikacije, dok Anthropic-ove smernice za evaluaciju agenata naglašavaju višestruka ispitivanja, ocenjivače, tragove i realistične slučajeve neuspeha. Za RAG, generator treba testirati i sa normalnom pretragom i sa kontrolisanim zlatnim kontekstom.",{},{"id":408,"data":409,"type":42,"tunes":411},"h-evidence",{"text":410,"level":239},"Sloj 7 — Pripisivanje dokaza: da li je odgovor zaista podržan?",{},{"id":413,"data":414,"type":218,"tunes":416},"p-evidence-1",{"text":415},"Uverljiv odgovor sa citatima i dalje može biti slabo utemeljen. Citirani dokument može biti relevantan za temu ali ne podržava konkretnu tvrdnju. Jedna rečenica može biti podržana dok je druga izvedena. Citat može ukazivati na izvor koji protivreči odgovoru kada se pročitaju njegovi uslovi.",{},{"id":418,"data":419,"type":218,"tunes":421},"p-evidence-2",{"text":420},"Evaluacija citata stoga pripada posle generisanja. AWS razlikuje preciznost citata od pokrivenosti citata: da li su citirani odlomci ispravno citirani i da li je odgovor dovoljno podržan citatima. U proizvodnji, podrška na nivou tvrdnje je korisnija od tretiranja prisustva bilo kog citata kao kvaliteta dokaza.",{},{"id":423,"data":424,"type":42,"tunes":426},"h-validity",{"text":425,"level":239},"Sloj 8 — Validnost i svežina: da li su dokazi bili ispravni za ovu verziju stvarnosti?",{},{"id":428,"data":429,"type":218,"tunes":431},"p-valid-1",{"text":430},"RAG može pronaći savršeno autentičan, visoko relevantan, verno citiran izvor i ipak proizvesti pogrešan odgovor ako izvor više nije validan za trenutno pitanje. Politike se menjaju. API-ji se ukidaju. cene se menjaju. ponašanje softvera se menja između verzija. inventar proizvoda se menja. dozvole se menjaju. zakrpe igara menjaju mehaniku.",{},{"id":433,"data":434,"type":218,"tunes":436},"p-valid-2",{"text":435},"Ovo je odvojena klasa neuspeha od halucinacije. Dokazi su stvarni; njihova primenljivost je pogrešna. Robustan sistem stoga zahteva vremenske oznake, metapodatke o verziji ili jurisdikciji gde je relevantno, autoritet izvora, pravila zamene i eksplicitan mehanizam za odlučivanje kada stariji dokazi moraju biti ograničeni ili napušteni.",{},{"id":438,"data":439,"type":42,"tunes":441},"h-oracle",{"text":440,"level":240},"Najbrži metod izolacije: test sa orakulskim kontekstom",{},{"id":443,"data":444,"type":218,"tunes":446},"p-oracle-1",{"text":445},"Najkorisnija prva podela je jednostavna: ručno obezbedite generatoru mali skup dokaza za koje znate da su dovoljni da odgovore na pitanje. Zadržite zadatak i očekivani odgovor nepromenjenim.",{},{"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","Odgovor postaje tačan",[455,455,455],"",{"id":457,"label":458,"values":459},"oracle-fail","Odgovor ostaje netačan",[455,455,455],{"id":461,"label":462,"values":463},"oracle-partial","Odgovor se poboljšava ali ostaje nepotpun",[455,455,455],"Test sa orakulskim kontekstom",[466,469,472],{"id":467,"label":468},"result","Rezultat",{"id":470,"label":471},"meaning","Verovatno tumačenje",{"id":473,"label":474},"next","Sledeći dijagnostički korak","comparison",{},{"id":478,"data":479,"type":226,"tunes":483},"oracle-tip",{"body":480,"title":481,"variant":482},"Test sa orakulskim kontekstom uklanja većinu procesa pronalaženja iz eksperimenta. Ne dokazuje da je generisanje savršeno, ali vam daje brzu kontrafaktualnu sliku: \u003Cstrong>šta bi model uradio da je pronalaženje već uspelo?\u003C\u002Fstrong>","Zašto je ovaj test moćan","tip",{},{"id":485,"data":486,"type":42,"tunes":488},"h-sequence",{"text":487,"level":240},"Produkcijska dijagnostička sekvenca",{},{"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. Definišite očekivanu tvrdnju","Napišite očekivani odgovor, dozvoljenu nesigurnost i dokaze koji bi ga opravdali.",{"label":497,"description":498},"2. Proverite pokrivenost izvora","Potvrdite da autoritativni i dozvoljeni dokazi postoje u indeksiranom ili dostupnom skupu izvora.",{"label":500,"description":501},"3. Pokrenite test sa orakulskim kontekstom","Dostavite dovoljne zlatne dokaze direktno generatoru i posmatrajte da li odgovor postaje tačan.",{"label":503,"description":504},"4. Pregledajte upit za pronalaženje","Proverite prepisivanja, entitete, filtere, jezik, vremenska ograničenja, dekompoziciju i skrivene pretpostavke.",{"label":506,"description":507},"5. Pregledajte kandidate pre ponovnog rangiranja","Utvrdite da li su relevantni dokazi uopšte pronađeni i zabeležite njihov rang.",{"label":509,"description":510},"6. Pregledajte rangiranje i sastavljanje konteksta","Proverite ponovno rangiranje, filtere metapodataka, skraćivanje, granice delova, duplikate, konflikte i sastav top-k.",{"label":512,"description":513},"7. Ocjenjujte generisanje i citate odvojeno","Izmerite tačnost odgovora, potpunost, vernost i podršku dokaza na nivou tvrdnje.",{"label":515,"description":516},"8. Testirajte granice validnosti","Proverite da li verzija, datum, stanje, jurisdikcija, dozvole ili dokazi koji zamenjuju prethodne menjaju odgovor.","Dijagnostikujte neuspeh od dokaza do odgovora","auto","processFlow",{},{"id":522,"data":523,"type":42,"tunes":525},"h-one-change",{"text":524,"level":240},"Ne menjajte tri sloja odjednom",{},{"id":527,"data":528,"type":218,"tunes":530},"p-one-1",{"text":529},"Česta greška pri otklanjanju grešaka je menjanje ugrađivanja, veličina delova, top-k, upita i modela u jednoj iteraciji. Ako se rezultat poboljša, ne znate zašto. Ako se pogorša, ne znate koja promena je izazvala regresiju.",{},{"id":532,"data":533,"type":218,"tunes":535},"p-one-2",{"text":534},"Tretirajte otklanjanje grešaka u RAG-u kao eksperimentalnu dijagnostiku: držite što veći deo procesa konstantnim i zamenite jednu neizvesnu komponentu kontrolisanim ulazom. Zlatni dokumenti izoluju pronalaženje. Zlatni delovi izoluju izbor delova. Fiksni kontekst izoluje generisanje. Fiksni model izoluje promene u pronalaženju. Fiksni korpus izoluje promene u unosu i indeksiranju.",{},{"id":537,"data":538,"type":42,"tunes":540},"h-matrix",{"text":539,"level":240},"Matrica neuspeha za uobičajene RAG simptome",{},{"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],"Simptom","Slojevi koje najverovatnije prvo testirati","Diskriminišući test",[550,551,552],"Nijedan relevantan izvor se ne pojavljuje","Pokrivenost izvora → Upit → Pronalaženje kandidata","Ručno pretražite korpus, zatim pregledajte prepisani upit i nefiltrirane kandidate",[554,555,556],"Relevantan izvor se pojavljuje ali odgovor je netačan","Sastavljanje konteksta → Generisanje","Test sa orakulskim kontekstom sa istim izvorom svedenim na odlučujuće pasuse",[558,559,560],"Odgovor je ponekad tačan, ponekad netačan","Rangiranje → Sastavljanje konteksta → Varijabilnost generisanja","Ponovite pokušaje uz beleženje pronađenog skupa, ranga, konteksta upita i izlaza modela",[562,563,564],"Odgovor citira pravi dokument ali ga preuveličava","Generisanje → Pripisivanje dokaza → Validnost","Ocenite svaku tvrdnju prema tačnom citiranom pasusu",[566,567,568],"Stare informacije stalno pobeđuju","Rangiranje → Validnost\u002Fsvežina","Uporedite sa pravilima o novijim\u002Fzamenjujućim informacijama i pregledajte metapodatke",[570,571,572],"Odgovor propušta izuzetak","Deljenje na delove → Sastavljanje konteksta","Proverite da li su pravilo i izuzetak razdvojeni ili skraćeni",[574,575,576],"Dodavanje više top-k pogoršava kvalitet","Rangiranje → Preopterećenje konteksta","Uklonite delove male vrednosti i uporedite sa minimalnim skupom dokaza",[578,579,580],"Promena modela popravlja odgovor","Generisanje, ali ne nužno pronalaženje","Ponovite sa identičnim pronađenim kontekstom kroz modele",[582,583,584],"Promena ugrađivanja popravlja odgovor","Pronalaženje\u002Frangiranje","Držite generator i šablon konteksta konstantnim dok upoređujete obuhvat kandidata",{},{"id":587,"data":588,"type":42,"tunes":590},"h-metrics",{"text":589,"level":240},"Merite svaki sloj metrikom na koju zaista može da utiče",{},{"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],"Korisna merenja","Šta ne treba zaključivati",[599,600,601],"Pokrivenost izvora","Stopa pitanja na koja se može odgovoriti, pokrivenost korpusa, potpunost unosa","Ne krivite ugrađivanja za nedostatak izvornog materijala",[603,604,605],"Pronalaženje kandidata","Recall@k, stopa pogodaka, pokrivenost konteksta","Visok recall ne dokazuje kvalitet rangiranja",[607,608,609],"Rangiranje","MRR, NDCG, zlatni rang, precision@k","Dobro rangiranje ne dokazuje da je generator koristio dokaze",[611,612,613],"Sastavljanje konteksta","Zadržavanje dokaza, duplikacija, stopa kontradikcija, iskorišćenost tokena","Veliki kontekst ne znači koristan kontekst",[615,616,617],"Generisanje","Tačnost, potpunost, uspeh zadatka, vernost","Sama tačnost ne dokazuje utemeljenost",[619,620,621],"Pripisivanje dokaza","Preciznost citata, pokrivenost citata, podrška tvrdnji","Broj citata nije kvalitet dokaza",[623,624,625],"Validnost","Svežina, tačnost zamene, podudaranje verzije\u002Fjurisdikcije","Relevantni dokazi nisu automatski primenljivi dokazi",{},{"id":628,"data":629,"type":42,"tunes":631},"h-correct-answer",{"text":630,"level":240},"Tačan odgovor i dalje može da sakrije RAG defekt",{},{"id":633,"data":634,"type":218,"tunes":636},"p-correct-1",{"text":635},"Obrnuti problem je takođe važan. RAG sistem može da proizvede tačan odgovor dok je pronalaženje pokvareno. Model možda već zna odgovor iz treninga, zaključuje ga iz slabih dokaza ili tačno pogađa. Ako evaluacija gleda samo konačni odgovor, sistem može izgledati zdravo dok pitanje ne dođe do informacija koje postoje samo u privatnom korpusu.",{},{"id":638,"data":639,"type":218,"tunes":641},"p-correct-2",{"text":640},"To je isti problem pouzdanosti koji se šire pojavljuje u agentskim sistemima: tačnost ishoda nije dovoljna da dokaže da je put izvršavanja bio pouzdan. Za RAG, tragovi treba da sačuvaju najmanje upit za pronalaženje, skup kandidata, rangiranje, konačni kontekst, odgovor, citate, verziju modela, verziju korpusa\u002Findeksa i relevantne filtere.",{},{"id":643,"data":644,"type":649,"tunes":650},"internal-reliability",{"url":645,"title":646,"excerpt":647,"ctaLabel":648},"https:\u002F\u002Fstajic.de\u002Fsr\u002Fblog\u002Fai-agent-reliability-why-the-final-answer-is-not-enough","Pouzdanost AI agenata: Zašto konačni odgovor nije dovoljan","Tačan izlaz ne dokazuje ispravno rezonovanje, bezbedno izvršavanje ili sistem od poverenja. Ovaj članak proširuje taj princip od RAG dijagnostike do agentskih trajektorija i operativnog osiguranja.","Pročitajte povezani članak","referralArticle",{},{"id":652,"data":653,"type":42,"tunes":655},"h-hypotheses",{"text":654,"level":240},"Koristite konkurentske hipoteze, a ne omiljeno objašnjenje",{},{"id":657,"data":658,"type":218,"tunes":660},"p-hyp-1",{"text":659},"Ako loš odgovor odmah postane „problem sa embeddingom“, istraga je već pristrasna. Jača metoda otklanjanja grešaka zapisuje konkurentske hipoteze pre promene sistema: nedostajući izvor, loše prepisivanje upita, nizak recall pretrage, loše rangiranje, skraćivanje konteksta, konfliktne verzije, greška generisanja, greška citiranja ili zastareli dokazi.",{},{"id":662,"data":663,"type":218,"tunes":665},"p-hyp-2",{"text":664},"Zatim izaberite test koji bi razdvojio te hipoteze. To je efikasnije od prikupljanja više primera koji podržavaju prvo objašnjenje. Isti princip važi za AI-podržano tehničko rezonovanje uopšte: korisna dijagnoza je ona koja preživi diskriminišuće testove, a ne ona koja samo zvuči uverljivo.",{},{"id":667,"data":668,"type":649,"tunes":673},"internal-reasoning",{"url":669,"title":670,"excerpt":671,"ctaLabel":672},"https:\u002F\u002Fstajic.de\u002Fsr\u002Fblog\u002Ffrom-research-protocol-to-a-general-ai-reasoning-framework","Od istraživačkog protokola do opšteg okvira za AI rezonovanje","Domen-nezavisna metoda rezonovanja za razdvajanje dokaza od pretpostavki, testiranje konkurentskih hipoteza i korišćenje validatora specifičnih za domen.","Pročitajte okvir za rezonovanje",{},{"id":675,"data":676,"type":42,"tunes":678},"h-change",{"text":677,"level":240},"Šta bi promenilo ovaj odgovor?",{},{"id":680,"data":681,"type":218,"tunes":683},"p-change-1",{"text":682},"Tačni dijagnostički slojevi se menjaju sa arhitekturom. Jednostavna RAG aplikacija sa jednim dokumentom možda nema prepisivanje upita, reranker ili sloj citiranja. Agentni sistem pretrage može dodati planiranje, višestruke pretrage, izbor alata, memoriju, dozvole i iterativno prikupljanje dokaza. Strukturisano pretraživanje baze podataka možda uopšte ne koristi chunk-ove ili embedding-e.",{},{"id":685,"data":686,"type":218,"tunes":688},"p-change-2",{"text":687},"Osnovna metoda i dalje važi: identifikujte komponente koje mogu nezavisno da promene rezultat, konstruišite kontrolisane testove koji zamenjuju neizvesne komponente poznato-ispravnim ulazima i merite svaku komponentu koristeći dokaze prikladne tom sloju.",{},{"id":690,"data":691,"type":42,"tunes":693},"h-limitations",{"text":692,"level":240},"Ograničenja",{},{"id":695,"data":696,"type":218,"tunes":698},"p-limit-1",{"text":697},"Stvarni otkazi su često povezani. Slab upit može smanjiti recall, što menja rangiranje, što menja kontekst, što povećava varijansu generisanja. Test sa oracle kontekstom je dijagnostička prečica, a ne dokaz da je jedna komponenta isključivo odgovorna. Skupovi podataka za evaluaciju takođe mogu biti nereprezentativni, a ocenjivači zasnovani na modelima mogu uneti sopstvene greške.",{},{"id":700,"data":701,"type":218,"tunes":703},"p-limit-2",{"text":702},"Predloženi stack je stoga najbolje koristiti kao strukturu istrage: logujte pipeline, izolujte promenljive, reprodukujte otkaze, testirajte konkurentska objašnjenja i zadržite end-to-end evaluaciju nakon popravki na nivou slojeva.",{},{"id":705,"data":706,"type":42,"tunes":708},"h-conclusion",{"text":707,"level":240},"Zaključak",{},{"id":710,"data":711,"type":218,"tunes":713},"p-conclusion-1",{"text":712},"„RAG nije uspeo“ treba da bude početak istrage, a ne zaključak. Korisna dijagnoza identifikuje da li je sistemu nedostajao dokaz, pretraživao pogrešno, nije uspeo da ga pronađe, loše ga rangirao, sastavio neupotrebljiv kontekst, generisao pogrešno, loše pripisao tvrdnje ili primenio dokaz izvan njegove granice važenja.",{},{"id":715,"data":716,"type":218,"tunes":718},"p-conclusion-2",{"text":717},"Praktično pravilo je jednostavno: zamenite neizvesnost kontrolisanim dokazima sloj po sloj. Počnite sa testom oracle konteksta. Razdvojite evaluaciju samo pretrage od evaluacije generisanja. Sačuvajte puni trag. Zatim popravite komponentu koja je zaista otkazala umesto da podešavate ceo RAG stack po intuiciji.",{},{"id":720,"data":721,"type":42,"tunes":723},"h-faq",{"text":722,"level":240},"Česta pitanja",{},{"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","Dajte modelu mali skup poznato-ispravnih dokaza ručno. Ako odgovor postane tačan, istražite pokrivenost izvora, konstrukciju upita, pretragu, rangiranje i sastavljanje konteksta. Ako model i dalje otkazuje sa dovoljno dokaza, pretraga nije primarni problem.","Kako mogu da utvrdim da li je RAG pretraga ili LLM otkazao?",{"id":733,"answer":734,"question":735},"faq2","Da. Relevantni odlomak može biti rangiran prenisko, skraćen, odvojen od izuzetka, pomešan sa konfliktnim dokazima, preplavljen irelevantnim kontekstom ili pogrešno iskorišćen od strane generatora.","Može li RAG da otkaže čak i kada je ispravan dokument pronađen?",{"id":737,"answer":738,"question":739},"faq3","Ne. Model može proizvesti tačan odgovor uprkos slaboj pretrazi oslanjajući se na prethodno znanje modela ili slučajnost. Evaluacija pretrage i podrške dokazima treba da bude odvojena od tačnosti konačnog odgovora.","Da li je tačnost odgovora dovoljna za evaluaciju RAG sistema?",{"id":741,"answer":742,"question":743},"faq4","Najmanje logujte korisnički zahtev, transformisani upit pretrage, filtere, kandidat dokumente i rangove, finalno izabrani kontekst, verziju modela i prompta, odgovor, citate, verziju korpusa\u002Findeksa i vremenske ili verzijske metapodatke relevantne za svežinu.","Šta treba da logujem kada otklanjam greške u RAG-u?",{"id":745,"answer":746,"question":747},"faq5","Ne pouzdano. Veći skup kandidata ili konteksta može poboljšati recall, ali može dodati i šum, kontradikcije, duplikate i preopterećenje konteksta. Testirajte da li relevantni dokaz nedostaje pre povećanja top-k.","Da li povećanje top-k obično popravlja RAG?","Dijagnoza RAG otkaza",{},{"id":751,"data":752,"type":42,"tunes":754},"h-glossary",{"text":753,"level":240},"Pojmovnik",{},{"id":756,"data":757,"type":756,"tunes":783},"glossary",{"title":758,"entries":759},"Ključni dijagnostički pojmovi",[760,764,768,771,775,779],{"term":761,"anchor":762,"definition":763},"Test oracle konteksta","oracle-context-test","Kontrolisani test u kojem se generatoru direktno daju poznato-dovoljni dokazi kako bi se utvrdilo da li je dominantni otkaz uzvodno od generisanja.",{"term":765,"anchor":766,"definition":767},"Pretraga kandidata","candidate-retrieval","Faza koja bira početni skup potencijalno relevantnih dokumenata, chunk-ova, zapisa ili odlomaka pre finalnog rangiranja ili sastavljanja konteksta.",{"term":611,"anchor":769,"definition":770},"context-assembly","Proces pretvaranja pronađenih dokaza u stvarni ulaz modela, uključujući redosled, skraćivanje, uklanjanje duplikata, formatiranje i odluke o budžetu tokena.",{"term":772,"anchor":773,"definition":774},"Verodostojnost","faithfulness","Stepen do kojeg generisane tvrdnje ostaju podržane pronađenim ili dostavljenim dokazima umesto uvođenja nepodržanog sadržaja.",{"term":776,"anchor":777,"definition":778},"Pokrivenost konteksta","context-coverage","Mera orijentisana na pretragu koja pokazuje da li izabrani dokazi pokrivaju informacije potrebne za odgovor na pitanje.",{"term":780,"anchor":781,"definition":782},"Granica važenja","validity-boundary","Uslovi pod kojima tvrdnja ili odgovor ostaje primenljiv, kao što su vreme, verzija, jurisdikcija, stanje, populacija, dozvole ili pretpostavke izvora.",{},{"id":785,"data":786,"type":42,"tunes":788},"h-sources",{"text":787,"level":240},"Primarni izvori i dodatno čitanje",{},{"id":790,"data":791,"type":797,"tunes":798},"src-openai-rag",{"link":792,"meta":793},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Foptimizing-llm-accuracy",{"image":794,"title":795,"description":796},{"url":455},"OpenAI — Optimizacija tačnosti LLM-a","OpenAI smernice koje razdvajaju otkaze pretrage od otkaza LLM-a u RAG aplikacijama.","linkTool",{},{"id":800,"data":801,"type":797,"tunes":807},"src-openai-evals",{"link":802,"meta":803},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fevaluation-best-practices",{"image":804,"title":805,"description":806},{"url":455},"OpenAI — Najbolje prakse za evaluaciju","Smernice o strukturisanoj evaluaciji za promenljive AI sisteme i dizajnu testova usmerenom na produkciju.",{},{"id":809,"data":810,"type":797,"tunes":816},"src-aws-rag",{"link":811,"meta":812},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fknowledge-base-evaluation-metrics.html",{"image":813,"title":814,"description":815},{"url":455},"Amazon Bedrock — Metrike evaluacije RAG-a","Dokumentacija koja razdvaja metrike samo za preuzimanje od metrika za preuzimanje i generisanje, uključujući relevantnost konteksta, pokrivenost, vernost i mere citiranja.",{},{"id":818,"data":819,"type":797,"tunes":825},"src-anthropic-evals",{"link":820,"meta":821},"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fdemystifying-evals-for-ai-agents",{"image":822,"title":823,"description":824},{"url":455},"Anthropic — Razotkrivanje evaluacija za AI agente","Praktične smernice za evaluaciju zadataka, ispitivanja, ocenjivača, tragova, regresija i ponašanja u produkciji.",{},{"id":827,"data":828,"type":797,"tunes":834},"src-google-rag",{"link":829,"meta":830},"https:\u002F\u002Fcloud.google.com\u002Fuse-cases\u002Fretrieval-augmented-generation",{"image":831,"title":832,"description":833},{"url":455},"Google Cloud — Generisanje uz podršku preuzimanja","Pregled RAG arhitekture i važnosti relevantnog preuzimanja i utemeljenog generisanja.",{},"2.31.6","Kada je RAG odgovor pogrešan, kriviti pretragu ili model je previše neodređeno. Ova dijagnostička metoda izoluje pokrivenost izvora, konstrukciju upita, pretragu, rangiranje, sastavljanje konteksta, generisanje, pripisivanje dokaza i svežinu—tako da se stvarni kvar može reprodukovati i ispraviti.","\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":844,"de":845,"sr":846,"es":847,"fr":848,"it":849,"ru":850,"zh":851},"\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",[853,857,861],{"id":854,"name":855,"slug":856},58,"Evaluacija i gate-ovi kvaliteta","evaluation",{"id":858,"name":859,"slug":860},89,"Eval harness","evaluation-harness",{"id":862,"name":863,"slug":864},85,"Gate-ovi kvaliteta","quality-gates",{"id":866,"login":867,"email":868,"displayName":869},"20","rooth8233","aleksandar@stajic.de","Aleksandar Stajić",[871,1386],{"lang":872,"title":873,"content":874,"contentJson":875,"excerpt":1385},"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":876,"blocks":877,"version":835},1790369097340,[878,883,887,892,897,901,905,909,913,917,957,961,965,969,974,978,982,986,990,994,998,1002,1006,1010,1014,1018,1022,1026,1030,1034,1038,1042,1046,1050,1054,1058,1062,1066,1087,1092,1096,1125,1129,1133,1137,1141,1185,1189,1224,1228,1232,1236,1243,1247,1251,1255,1262,1266,1270,1274,1278,1282,1286,1290,1294,1298,1302,1322,1326,1346,1350,1357,1364,1371,1378],{"id":879,"data":880,"type":241,"tunes":882},"8zyFXn5HD5",{"title":881,"maxLevel":239,"minLevel":240},"Contents",{},{"id":215,"data":884,"type":218,"tunes":886},{"text":885},"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":888,"type":226,"tunes":891},{"body":889,"title":890,"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":893,"type":226,"tunes":896},{"body":894,"title":895,"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":898,"type":42,"tunes":900},{"text":899,"level":240},"Why “RAG failed” is not a diagnosis",{},{"id":249,"data":902,"type":218,"tunes":904},{"text":903},"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":906,"type":218,"tunes":908},{"text":907},"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":910,"type":218,"tunes":912},{"text":911},"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":914,"type":42,"tunes":916},{"text":915,"level":240},"The RAG Failure Stack",{},{"id":269,"data":918,"type":308,"tunes":956},{"content":919,"stretched":43,"withHeadings":14},[920,924,928,932,936,940,944,948,952],[921,922,923],"Layer","Question","Typical failure",[925,926,927],"1. Source coverage","Does the required evidence exist in an allowed authoritative source?","The corpus cannot answer the question at all",[929,930,931],"2. Query construction","Did the system search for the right thing?","Intent, entities, filters, language, or time constraints are lost",[933,934,935],"3. Candidate retrieval","Did the relevant evidence enter the candidate set?","Low recall; the right chunk is never retrieved",[937,938,939],"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",[941,942,943],"5. Context assembly","Did the model receive usable evidence?","Truncation, bad chunk boundaries, duplicates, conflicting passages, or context overload",[945,946,947],"6. Generation","Did the model use the supplied evidence correctly?","Unsupported inference, instruction failure, reasoning error, or refusal mismatch",[949,950,951],"7. Evidence attribution","Can the answer be traced to the evidence it claims to use?","Missing, weak, or incorrect citations; claims exceed retrieved support",[953,954,955],"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":958,"type":42,"tunes":960},{"text":959,"level":239},"Layer 1 — Source coverage: can the system answer this at all?",{},{"id":316,"data":962,"type":218,"tunes":964},{"text":963},"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":966,"type":218,"tunes":968},{"text":967},"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":970,"type":226,"tunes":973},{"body":971,"title":972,"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":975,"type":42,"tunes":977},{"text":976,"level":239},"Layer 2 — Query construction: did the system ask the corpus the right question?",{},{"id":338,"data":979,"type":218,"tunes":981},{"text":980},"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":983,"type":218,"tunes":985},{"text":984},"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":987,"type":42,"tunes":989},{"text":988,"level":239},"Layer 3 — Candidate retrieval: did the relevant evidence enter the set?",{},{"id":353,"data":991,"type":218,"tunes":993},{"text":992},"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":995,"type":218,"tunes":997},{"text":996},"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":999,"type":42,"tunes":1001},{"text":1000,"level":239},"Layer 4 — Ranking and filtering: was the right evidence discarded or buried?",{},{"id":368,"data":1003,"type":218,"tunes":1005},{"text":1004},"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":1007,"type":218,"tunes":1009},{"text":1008},"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":1011,"type":42,"tunes":1013},{"text":1012,"level":239},"Layer 5 — Context assembly: did useful evidence become usable context?",{},{"id":383,"data":1015,"type":218,"tunes":1017},{"text":1016},"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":1019,"type":218,"tunes":1021},{"text":1020},"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":1023,"type":42,"tunes":1025},{"text":1024,"level":239},"Layer 6 — Generation: can the model use correct evidence correctly?",{},{"id":398,"data":1027,"type":218,"tunes":1029},{"text":1028},"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":1031,"type":218,"tunes":1033},{"text":1032},"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":1035,"type":42,"tunes":1037},{"text":1036,"level":239},"Layer 7 — Evidence attribution: is the answer actually supported?",{},{"id":413,"data":1039,"type":218,"tunes":1041},{"text":1040},"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":1043,"type":218,"tunes":1045},{"text":1044},"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":1047,"type":42,"tunes":1049},{"text":1048,"level":239},"Layer 8 — Validity and freshness: was the evidence correct for this version of reality?",{},{"id":428,"data":1051,"type":218,"tunes":1053},{"text":1052},"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":1055,"type":218,"tunes":1057},{"text":1056},"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":1059,"type":42,"tunes":1061},{"text":1060,"level":240},"The fastest isolation method: the oracle-context test",{},{"id":443,"data":1063,"type":218,"tunes":1065},{"text":1064},"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":1067,"type":475,"tunes":1086},{"rows":1068,"title":1078,"layout":308,"columns":1079},[1069,1072,1075],{"id":452,"label":1070,"values":1071},"Answer becomes correct",[455,455,455],{"id":457,"label":1073,"values":1074},"Answer remains wrong",[455,455,455],{"id":461,"label":1076,"values":1077},"Answer improves but remains incomplete",[455,455,455],"Oracle-context test",[1080,1082,1084],{"id":467,"label":1081},"Result",{"id":470,"label":1083},"Likely interpretation",{"id":473,"label":1085},"Next diagnostic step",{},{"id":478,"data":1088,"type":226,"tunes":1091},{"body":1089,"title":1090,"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":1093,"type":42,"tunes":1095},{"text":1094,"level":240},"A production diagnostic sequence",{},{"id":490,"data":1097,"type":519,"tunes":1124},{"steps":1098,"title":1123,"orientation":518},[1099,1102,1105,1108,1111,1114,1117,1120],{"label":1100,"description":1101},"1. Define the expected claim","Write the expected answer, allowed uncertainty, and the evidence that would justify it.",{"label":1103,"description":1104},"2. Verify source coverage","Confirm that authoritative and permitted evidence exists in the indexed or reachable source set.",{"label":1106,"description":1107},"3. Run the oracle-context test","Supply sufficient gold evidence directly to the generator and observe whether the answer becomes correct.",{"label":1109,"description":1110},"4. Inspect the retrieval query","Check rewrites, entities, filters, language, time constraints, decomposition, and hidden assumptions.",{"label":1112,"description":1113},"5. Inspect candidates before reranking","Determine whether relevant evidence was retrieved at all and record its rank.",{"label":1115,"description":1116},"6. Inspect ranking and context assembly","Check reranking, metadata filters, truncation, chunk boundaries, duplicates, conflicts, and top-k composition.",{"label":1118,"description":1119},"7. Grade generation and citations separately","Measure answer correctness, completeness, faithfulness, and claim-level evidence support.",{"label":1121,"description":1122},"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":1126,"type":42,"tunes":1128},{"text":1127,"level":240},"Do not change three layers at once",{},{"id":527,"data":1130,"type":218,"tunes":1132},{"text":1131},"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":1134,"type":218,"tunes":1136},{"text":1135},"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":1138,"type":42,"tunes":1140},{"text":1139,"level":240},"A failure matrix for common RAG symptoms",{},{"id":542,"data":1142,"type":308,"tunes":1184},{"content":1143,"stretched":43,"withHeadings":14},[1144,1148,1152,1156,1160,1164,1168,1172,1176,1180],[1145,1146,1147],"Symptom","Most likely layers to test first","Discriminating test",[1149,1150,1151],"No relevant source appears","Source coverage → Query → Candidate retrieval","Search the corpus manually, then inspect rewritten query and unfiltered candidates",[1153,1154,1155],"Relevant source appears but answer is wrong","Context assembly → Generation","Oracle-context test with the same source reduced to decisive passages",[1157,1158,1159],"Answer is correct sometimes, wrong other times","Ranking → Context assembly → Generation variability","Repeat trials while logging retrieved set, rank, prompt context, and model output",[1161,1162,1163],"Answer cites the right document but overstates it","Generation → Evidence attribution → Validity","Grade each claim against the exact cited passage",[1165,1166,1167],"Old information keeps winning","Ranking → Validity\u002Ffreshness","Compare with recency\u002Fsupersession rules and inspect metadata",[1169,1170,1171],"Answer misses an exception","Chunking → Context assembly","Check whether rule and exception were split or truncated",[1173,1174,1175],"Adding more top-k makes quality worse","Ranking → Context overload","Ablate low-value chunks and compare with a minimal evidence set",[1177,1178,1179],"Changing the model fixes the answer","Generation, but not necessarily retrieval","Repeat with identical retrieved context across models",[1181,1182,1183],"Changing embeddings fixes the answer","Retrieval\u002Franking","Keep generator and context template constant while comparing candidate recall",{},{"id":587,"data":1186,"type":42,"tunes":1188},{"text":1187,"level":240},"Measure each layer with the metric it can actually influence",{},{"id":592,"data":1190,"type":308,"tunes":1223},{"content":1191,"stretched":43,"withHeadings":14},[1192,1195,1199,1203,1207,1211,1215,1219],[921,1193,1194],"Useful measurements","What not to infer",[1196,1197,1198],"Source coverage","Answerable-question rate, corpus coverage, ingestion completeness","Do not blame embeddings for missing source material",[1200,1201,1202],"Candidate retrieval","Recall@k, hit rate, context coverage","High recall does not prove ranking quality",[1204,1205,1206],"Ranking","MRR, NDCG, gold rank, precision@k","Good ranking does not prove the generator used the evidence",[1208,1209,1210],"Context assembly","Evidence retention, duplication, contradiction rate, token utilization","Large context does not mean useful context",[1212,1213,1214],"Generation","Correctness, completeness, task success, faithfulness","Correctness alone does not prove grounding",[1216,1217,1218],"Evidence attribution","Citation precision, citation coverage, claim support","A citation count is not evidence quality",[1220,1221,1222],"Validity","Freshness, supersession accuracy, version\u002Fjurisdiction match","Relevant evidence is not automatically applicable evidence",{},{"id":628,"data":1225,"type":42,"tunes":1227},{"text":1226,"level":240},"A correct answer can still hide a RAG defect",{},{"id":633,"data":1229,"type":218,"tunes":1231},{"text":1230},"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":1233,"type":218,"tunes":1235},{"text":1234},"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":1237,"type":649,"tunes":1242},{"url":1238,"title":1239,"excerpt":1240,"ctaLabel":1241},"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":1244,"type":42,"tunes":1246},{"text":1245,"level":240},"Use competing hypotheses, not a favourite explanation",{},{"id":657,"data":1248,"type":218,"tunes":1250},{"text":1249},"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":1252,"type":218,"tunes":1254},{"text":1253},"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":1256,"type":649,"tunes":1261},{"url":1257,"title":1258,"excerpt":1259,"ctaLabel":1260},"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":1263,"type":42,"tunes":1265},{"text":1264,"level":240},"What would change this answer?",{},{"id":680,"data":1267,"type":218,"tunes":1269},{"text":1268},"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":1271,"type":218,"tunes":1273},{"text":1272},"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":1275,"type":42,"tunes":1277},{"text":1276,"level":240},"Limitations",{},{"id":695,"data":1279,"type":218,"tunes":1281},{"text":1280},"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":1283,"type":218,"tunes":1285},{"text":1284},"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":1287,"type":42,"tunes":1289},{"text":1288,"level":240},"Conclusion",{},{"id":710,"data":1291,"type":218,"tunes":1293},{"text":1292},"“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":1295,"type":218,"tunes":1297},{"text":1296},"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":1299,"type":42,"tunes":1301},{"text":1300,"level":240},"FAQ",{},{"id":725,"data":1303,"type":725,"tunes":1321},{"items":1304,"title":1320},[1305,1308,1311,1314,1317],{"id":729,"answer":1306,"question":1307},"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":1309,"question":1310},"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":1312,"question":1313},"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":1315,"question":1316},"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":1318,"question":1319},"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":1323,"type":42,"tunes":1325},{"text":1324,"level":240},"Glossary",{},{"id":756,"data":1327,"type":756,"tunes":1345},{"title":1328,"entries":1329},"Key diagnostic terms",[1330,1332,1334,1336,1339,1342],{"term":1078,"anchor":762,"definition":1331},"A controlled test in which the generator is given known-sufficient evidence directly to determine whether the dominant failure is upstream of generation.",{"term":1200,"anchor":766,"definition":1333},"The stage that selects an initial set of potentially relevant documents, chunks, records, or passages before final ranking or context assembly.",{"term":1208,"anchor":769,"definition":1335},"The process of converting retrieved evidence into the actual model input, including ordering, truncation, deduplication, formatting, and token-budget decisions.",{"term":1337,"anchor":773,"definition":1338},"Faithfulness","The degree to which generated claims remain supported by the retrieved or supplied evidence rather than introducing unsupported content.",{"term":1340,"anchor":777,"definition":1341},"Context coverage","A retrieval-oriented measure of whether selected evidence covers the information needed to answer the question.",{"term":1343,"anchor":781,"definition":1344},"Validity boundary","The conditions under which a claim or answer remains applicable, such as time, version, jurisdiction, state, population, permissions, or source assumptions.",{},{"id":785,"data":1347,"type":42,"tunes":1349},{"text":1348,"level":240},"Primary sources and further reading",{},{"id":790,"data":1351,"type":797,"tunes":1356},{"link":792,"meta":1352},{"image":1353,"title":1354,"description":1355},{"url":455},"OpenAI — Optimizing LLM Accuracy","OpenAI guidance separating retrieval failures from LLM failures in RAG applications.",{},{"id":800,"data":1358,"type":797,"tunes":1363},{"link":802,"meta":1359},{"image":1360,"title":1361,"description":1362},{"url":455},"OpenAI — Evaluation Best Practices","Guidance on structured evaluation for variable AI systems and production-oriented test design.",{},{"id":809,"data":1365,"type":797,"tunes":1370},{"link":811,"meta":1366},{"image":1367,"title":1368,"description":1369},{"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":818,"data":1372,"type":797,"tunes":1377},{"link":820,"meta":1373},{"image":1374,"title":1375,"description":1376},{"url":455},"Anthropic — Demystifying Evals for AI Agents","Practical evaluation guidance on tasks, trials, graders, traces, regressions and production behaviour.",{},{"id":827,"data":1379,"type":797,"tunes":1384},{"link":829,"meta":1380},{"image":1381,"title":1382,"description":1383},{"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":1387,"excerpt":836},{"time":212,"blocks":1388,"version":835},[1389,1392,1395,1398,1401,1404,1407,1410,1413,1416,1429,1432,1435,1438,1441,1444,1447,1450,1453,1456,1459,1462,1465,1468,1471,1474,1477,1480,1483,1486,1489,1492,1495,1498,1501,1504,1507,1510,1524,1527,1530,1542,1545,1548,1551,1554,1568,1571,1583,1586,1589,1592,1595,1598,1601,1604,1607,1610,1613,1616,1619,1622,1625,1628,1631,1634,1637,1646,1649,1659,1662,1667,1672,1677,1682],{"id":215,"data":1390,"type":218,"tunes":1391},{"text":217},{},{"id":221,"data":1393,"type":226,"tunes":1394},{"body":223,"title":224,"variant":225},{},{"id":229,"data":1396,"type":226,"tunes":1397},{"body":231,"title":232,"variant":233},{},{"id":236,"data":1399,"type":241,"tunes":1400},{"title":238,"maxLevel":239,"minLevel":240},{},{"id":244,"data":1402,"type":42,"tunes":1403},{"text":246,"level":240},{},{"id":249,"data":1405,"type":218,"tunes":1406},{"text":251},{},{"id":254,"data":1408,"type":218,"tunes":1409},{"text":256},{},{"id":259,"data":1411,"type":218,"tunes":1412},{"text":261},{},{"id":264,"data":1414,"type":42,"tunes":1415},{"text":266,"level":240},{},{"id":269,"data":1417,"type":308,"tunes":1428},{"content":1418,"stretched":43,"withHeadings":14},[1419,1420,1421,1422,1423,1424,1425,1426,1427],[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":1430,"type":42,"tunes":1431},{"text":313,"level":239},{},{"id":316,"data":1433,"type":218,"tunes":1434},{"text":318},{},{"id":321,"data":1436,"type":218,"tunes":1437},{"text":323},{},{"id":326,"data":1439,"type":226,"tunes":1440},{"body":328,"title":329,"variant":330},{},{"id":333,"data":1442,"type":42,"tunes":1443},{"text":335,"level":239},{},{"id":338,"data":1445,"type":218,"tunes":1446},{"text":340},{},{"id":343,"data":1448,"type":218,"tunes":1449},{"text":345},{},{"id":348,"data":1451,"type":42,"tunes":1452},{"text":350,"level":239},{},{"id":353,"data":1454,"type":218,"tunes":1455},{"text":355},{},{"id":358,"data":1457,"type":218,"tunes":1458},{"text":360},{},{"id":363,"data":1460,"type":42,"tunes":1461},{"text":365,"level":239},{},{"id":368,"data":1463,"type":218,"tunes":1464},{"text":370},{},{"id":373,"data":1466,"type":218,"tunes":1467},{"text":375},{},{"id":378,"data":1469,"type":42,"tunes":1470},{"text":380,"level":239},{},{"id":383,"data":1472,"type":218,"tunes":1473},{"text":385},{},{"id":388,"data":1475,"type":218,"tunes":1476},{"text":390},{},{"id":393,"data":1478,"type":42,"tunes":1479},{"text":395,"level":239},{},{"id":398,"data":1481,"type":218,"tunes":1482},{"text":400},{},{"id":403,"data":1484,"type":218,"tunes":1485},{"text":405},{},{"id":408,"data":1487,"type":42,"tunes":1488},{"text":410,"level":239},{},{"id":413,"data":1490,"type":218,"tunes":1491},{"text":415},{},{"id":418,"data":1493,"type":218,"tunes":1494},{"text":420},{},{"id":423,"data":1496,"type":42,"tunes":1497},{"text":425,"level":239},{},{"id":428,"data":1499,"type":218,"tunes":1500},{"text":430},{},{"id":433,"data":1502,"type":218,"tunes":1503},{"text":435},{},{"id":438,"data":1505,"type":42,"tunes":1506},{"text":440,"level":240},{},{"id":443,"data":1508,"type":218,"tunes":1509},{"text":445},{},{"id":448,"data":1511,"type":475,"tunes":1523},{"rows":1512,"title":464,"layout":308,"columns":1519},[1513,1515,1517],{"id":452,"label":453,"values":1514},[455,455,455],{"id":457,"label":458,"values":1516},[455,455,455],{"id":461,"label":462,"values":1518},[455,455,455],[1520,1521,1522],{"id":467,"label":468},{"id":470,"label":471},{"id":473,"label":474},{},{"id":478,"data":1525,"type":226,"tunes":1526},{"body":480,"title":481,"variant":482},{},{"id":485,"data":1528,"type":42,"tunes":1529},{"text":487,"level":240},{},{"id":490,"data":1531,"type":519,"tunes":1541},{"steps":1532,"title":517,"orientation":518},[1533,1534,1535,1536,1537,1538,1539,1540],{"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":1543,"type":42,"tunes":1544},{"text":524,"level":240},{},{"id":527,"data":1546,"type":218,"tunes":1547},{"text":529},{},{"id":532,"data":1549,"type":218,"tunes":1550},{"text":534},{},{"id":537,"data":1552,"type":42,"tunes":1553},{"text":539,"level":240},{},{"id":542,"data":1555,"type":308,"tunes":1567},{"content":1556,"stretched":43,"withHeadings":14},[1557,1558,1559,1560,1561,1562,1563,1564,1565,1566],[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":1569,"type":42,"tunes":1570},{"text":589,"level":240},{},{"id":592,"data":1572,"type":308,"tunes":1582},{"content":1573,"stretched":43,"withHeadings":14},[1574,1575,1576,1577,1578,1579,1580,1581],[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":1584,"type":42,"tunes":1585},{"text":630,"level":240},{},{"id":633,"data":1587,"type":218,"tunes":1588},{"text":635},{},{"id":638,"data":1590,"type":218,"tunes":1591},{"text":640},{},{"id":643,"data":1593,"type":649,"tunes":1594},{"url":645,"title":646,"excerpt":647,"ctaLabel":648},{},{"id":652,"data":1596,"type":42,"tunes":1597},{"text":654,"level":240},{},{"id":657,"data":1599,"type":218,"tunes":1600},{"text":659},{},{"id":662,"data":1602,"type":218,"tunes":1603},{"text":664},{},{"id":667,"data":1605,"type":649,"tunes":1606},{"url":669,"title":670,"excerpt":671,"ctaLabel":672},{},{"id":675,"data":1608,"type":42,"tunes":1609},{"text":677,"level":240},{},{"id":680,"data":1611,"type":218,"tunes":1612},{"text":682},{},{"id":685,"data":1614,"type":218,"tunes":1615},{"text":687},{},{"id":690,"data":1617,"type":42,"tunes":1618},{"text":692,"level":240},{},{"id":695,"data":1620,"type":218,"tunes":1621},{"text":697},{},{"id":700,"data":1623,"type":218,"tunes":1624},{"text":702},{},{"id":705,"data":1626,"type":42,"tunes":1627},{"text":707,"level":240},{},{"id":710,"data":1629,"type":218,"tunes":1630},{"text":712},{},{"id":715,"data":1632,"type":218,"tunes":1633},{"text":717},{},{"id":720,"data":1635,"type":42,"tunes":1636},{"text":722,"level":240},{},{"id":725,"data":1638,"type":725,"tunes":1645},{"items":1639,"title":748},[1640,1641,1642,1643,1644],{"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":1647,"type":42,"tunes":1648},{"text":753,"level":240},{},{"id":756,"data":1650,"type":756,"tunes":1658},{"title":758,"entries":1651},[1652,1653,1654,1655,1656,1657],{"term":761,"anchor":762,"definition":763},{"term":765,"anchor":766,"definition":767},{"term":611,"anchor":769,"definition":770},{"term":772,"anchor":773,"definition":774},{"term":776,"anchor":777,"definition":778},{"term":780,"anchor":781,"definition":782},{},{"id":785,"data":1660,"type":42,"tunes":1661},{"text":787,"level":240},{},{"id":790,"data":1663,"type":797,"tunes":1666},{"link":792,"meta":1664},{"image":1665,"title":795,"description":796},{"url":455},{},{"id":800,"data":1668,"type":797,"tunes":1671},{"link":802,"meta":1669},{"image":1670,"title":805,"description":806},{"url":455},{},{"id":809,"data":1673,"type":797,"tunes":1676},{"link":811,"meta":1674},{"image":1675,"title":814,"description":815},{"url":455},{},{"id":818,"data":1678,"type":797,"tunes":1681},{"link":820,"meta":1679},{"image":1680,"title":823,"description":824},{"url":455},{},{"id":827,"data":1683,"type":797,"tunes":1686},{"link":829,"meta":1684},{"image":1685,"title":832,"description":833},{"url":455},{},"Post erfolgreich abgerufen",{"items":1689,"source":1744,"manualIds":1745,"manualMatchedIds":1746},[1690,1696,1703,1710,1717,1723,1730,1737],{"id":1691,"slug":1692,"title":646,"excerpt":1693,"featuredImage":1694,"publishedAt":1695},"460","ai-agent-reliability-why-the-final-answer-is-not-enough","Tačan rezultat ne dokazuje ispravno razmišljanje, bezbedno izvršavanje ili pouzdan sistem.","\u002Fuploads\u002F2026\u002F09\u002Fai-agent-reliability-why-the-final-answer-is-not-enough-1788955466306-pl0qhz.webp","2026-09-09T04:01:00.000Z",{"id":1697,"slug":1698,"title":1699,"excerpt":1700,"featuredImage":1701,"publishedAt":1702},"459","ollama-is-not-the-product-building-production-ready-open-llm-applications","Ollama nije proizvod: Izgradnja aplikacija spremnih za produkciju sa otvorenim LLM-ovima","Pokretanje lokalnog modela pomoću Ollama-e je jednostavno. Izgradnja Open-LLM aplikacije spremne za produkciju je teža: zahteva RAG, kontrolu pristupa, apstrakciju provajdera, evaluaciju, logovanje, disciplinu puštanja u rad i kontrolisani aplikativni sloj oko modela.","\u002Fuploads\u002F2026\u002F06\u002Follama-is-not-the-product-building-production-ready-open-llm-applications-1782679361640-h0usqf.webp","2026-06-28T16:39:00.000Z",{"id":1704,"slug":1705,"title":1706,"excerpt":1707,"featuredImage":1708,"publishedAt":1709},"468","ai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","Memorija AI agenta nije RAG: Kako razdvojiti memoriju, pronalaženje, stanje i kontekst","Memorija agenta, RAG, stanje i kontekst često se koriste kao da su međusobno zamenjivi. Oni to nisu. Ovaj praktični arhitektonski model razdvaja ova četiri sloja, pokazuje gde svaki pripada i objašnjava šta se kvari kada ih sistemi stope u jedno.","\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":1711,"slug":1712,"title":1713,"excerpt":1714,"featuredImage":1715,"publishedAt":1716},"477","computer-use-agents-why-a-successful-demo-can-still-be-an-unreliable-system","Agenti za korišćenje računara: Zašto uspešan demo i dalje može biti nepouzdan sistem","Agenti za korišćenje računara sada mogu da završe impresivne radne tokove u pregledaču i na radnoj površini, ali jedno uspešno izvršavanje dokazuje sposobnost—ne pouzdanost. Ovaj članak pokazuje kako testirati ponovljivost, robusnost u odnosu na okruženje, kontrolu dugog horizonta, svest o stanju, verifikaciju ishoda i bezbedno upravljanje ciljevima.","\u002Fuploads\u002F2026\u002F09\u002Fcomputer-use-agents-why-a-successful-demo-can-still-be-an-unreliable-system-1790352854690-75qnrg.webp","2026-09-25T12:13:00.000Z",{"id":1718,"slug":860,"title":1719,"excerpt":1720,"featuredImage":1721,"publishedAt":1722},"434","Sveobuhvatan vodič za Evaluation Harness: Ovladavanje evaluacijom performansi LLM-ova","Ovaj vodič pruža detaljan pregled Evaluation Harness-a, ključnog okvira za rigoroznu procenu sposobnosti velikih jezičkih modela (LLM) u korporativnim LLMOps procesima. Naučite podešavanje, najbolje prakse i napredne tehnike kako biste osigurali pouzdano benčmarkovanje i optimizaciju modela.","\u002Fuploads\u002F2026\u002F04\u002Fevaluation-harness-1775466944495-4s0xv2.webp","2026-03-01T17:50:00.000Z",{"id":1724,"slug":1725,"title":1726,"excerpt":1727,"featuredImage":1728,"publishedAt":1729},"475","managed-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose","Upravljani harness za agente naspram samostalno hostovane petlje agenta: Šta dobijate, šta gubite","“Samostalno hostovani agent” može značiti veoma različite arhitekture. Ovaj vodič razgraničava upravljani harness, samostalno hostovano okruženje za izvršavanje i potpuno samostalno upravljanu petlju agenta—i pokazuje koja je granica kontrole timovima zapravo potrebna.","\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":1731,"slug":1732,"title":1733,"excerpt":1734,"featuredImage":1735,"publishedAt":1736},"478","what-is-rag-the-simplest-explanation-of-how-it-works","Šta je RAG? Najjednostavnije objašnjenje kako funkcioniše","RAG zvuči komplikovano, ali ideja je jednostavna: pre nego što AI odgovori, prvo potraži korisne informacije iz izvora znanja i daje te informacije jezičkom modelu. Ovaj vodič objašnjava RAG, LLM-ove, stanje, memoriju i alate koristeći jedan jednostavan mentalni model.","\u002Fuploads\u002F2026\u002F09\u002Fwhat-is-rag-the-simplest-explanation-of-how-it-works-1790377492124-khjagt.webp","2026-09-25T19:03:00.000Z",{"id":1738,"slug":1739,"title":1740,"excerpt":1741,"featuredImage":1742,"publishedAt":1743},"364","tipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung","Ovladavanje SEO radnim tokom: Ključne strategije optimizacije za organski rast","Strukturiran SEO tok posla je ključan za održiv organski rast. Naučite deset osnovnih strategija, od istraživanja ključnih reči i tehničke optimizacije do kvaliteta sadržaja i analize performansi.","\u002Fuploads\u002F2026\u002F03\u002Ftipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung-1774866098131-hwkzrg.webp","2024-01-26T06:35:00.000Z","fallback",[],[]]