[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portal-settings:stajic:ru":3,"public-menus:all":38,"post:rag-failed-but-which-layer-actually-failed-a-diagnostic-method:ru":205,"related:post:rag-failed-but-which-layer-actually-failed-a-diagnostic-method:ru:1":1686},{"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","ru","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":1685},{"id":207,"title":208,"slug":209,"content":210,"contentJson":211,"excerpt":834,"featuredImage":835,"featuredImageAlt":836,"featuredImageCaption":10,"featuredImageTitle":10,"featuredImageCopyright":10,"featuredImageAuthor":10,"featuredImageSourceUrl":10,"featuredImageLicense":10,"featuredImageIsAiGenerated":43,"status":837,"publishedAt":838,"createdAt":839,"updatedAt":840,"seoLocalePaths":841,"categories":850,"author":863,"translations":868},"469","RAG не сработал — но какой именно слой на самом деле отказал? Метод диагностики","rag-failed-but-which-layer-actually-failed-a-diagnostic-method","{\"time\":1790369172851,\"blocks\":[{\"id\":\"intro\",\"type\":\"paragraph\",\"data\":{\"text\":\"Система RAG возвращает слабый, неверный, неполный или необоснованный ответ. Обычный диагноз — «поиск не сработал» или «модель галлюцинировала». Оба ярлыка слишком широки, чтобы быть полезными. Продакшн-конвейер RAG может дать сбой до поиска, во время поиска, при ранжировании, при сборке контекста, во время генерации или после генерации, когда проверяются доказательства и валидность.\"},\"tunes\":{}},{\"id\":\"direct\",\"type\":\"callout\",\"data\":{\"variant\":\"info\",\"title\":\"Прямой ответ\",\"body\":\"\u003Cstrong>Не отлаживайте RAG как один компонент.\u003C\u002Fstrong> Диагностируйте его как цепочку независимо тестируемых слоёв. Сначала определите, существуют ли необходимые доказательства в авторитетном источнике. Затем проверьте построение запроса, поиск кандидатов, ранжирование, сборку контекста, генерацию, атрибуцию доказательств и актуальность. Самый быстрый метод изоляции — \u003Cstrong>тест с оракульным контекстом\u003C\u002Fstrong>: вручную передайте генератору правильные доказательства. Если ответ становится правильным, доминирующий сбой находится выше генерации. Если он остаётся неверным, поиск не является основной проблемой.\"},\"tunes\":{}},{\"id\":\"model-note\",\"type\":\"callout\",\"data\":{\"variant\":\"note\",\"title\":\"О диагностической модели\",\"body\":\"Стек сбоев RAG в этой статье — это практическая диагностическая модель, а не формальный отраслевой стандарт. Существующие платформы уже разделяют метрики только поиска и метрики поиска с генерацией; эта модель расширяет такое разделение до пошагового метода отладки в продакшне.\"},\"tunes\":{}},{\"id\":\"toc\",\"type\":\"tableOfContents\",\"data\":{\"title\":\"Содержание\",\"minLevel\":2,\"maxLevel\":3},\"tunes\":{}},{\"id\":\"h-not-diagnosis\",\"type\":\"header\",\"data\":{\"text\":\"Почему «RAG дал сбой» — это не диагноз\",\"level\":2},\"tunes\":{}},{\"id\":\"p-not-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Генерация с дополненной выборкой объединяет несколько механизмов: запрос пользователя интерпретируется, формируется один или несколько поисковых запросов, извлекаются кандидатные материалы, результаты фильтруются или переранжируются, выбранные доказательства вставляются в контекст модели, и модель генерирует ответ. Продакшн-системы могут добавлять права доступа, фильтры по метаданным, правила актуальности, цитирование, переформулирование запросов, гибридный поиск, вызовы инструментов, память и внешнее состояние.\"},\"tunes\":{}},{\"id\":\"p-not-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Поэтому неверный итоговый ответ не говорит, какой компонент дал сбой. Модель могла получить неверные доказательства. Она могла получить правильные доказательства в смеси с чрезмерным шумом. Доказательства могут быть корректными, но устаревшими. Источник мог вообще никогда не содержать ответ. Или модель могла проигнорировать вполне достаточный контекст.\"},\"tunes\":{}},{\"id\":\"p-not-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Руководство OpenAI по RAG уже проводит фундаментальное различие между сбоем поиска и сбоем модели: система может предоставить неверный контекст или предоставить правильный контекст и всё равно сгенерировать неверный ответ. AWS аналогично разделяет оценку только поиска и оценку поиска с генерацией. Для диагностики в продакшне это различие следует развить дальше.\"},\"tunes\":{}},{\"id\":\"h-stack\",\"type\":\"header\",\"data\":{\"text\":\"Стек сбоев RAG\",\"level\":2},\"tunes\":{}},{\"id\":\"table-stack\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Слой\",\"Вопрос\",\"Типичный сбой\"],[\"1. Покрытие источников\",\"Существуют ли необходимые доказательства в разрешённом авторитетном источнике?\",\"Корпус вообще не может ответить на вопрос\"],[\"2. Построение запроса\",\"Искала ли система то, что нужно?\",\"Теряются намерение, сущности, фильтры, язык или временные ограничения\"],[\"3. Поиск кандидатов\",\"Попали ли релевантные доказательства в набор кандидатов?\",\"Низкая полнота; нужный фрагмент никогда не извлекается\"],[\"4. Ранжирование и фильтрация\",\"Выжили ли правильные доказательства и достаточно ли высоко ранжированы?\",\"Релевантные доказательства погребены, отфильтрованы или уступают поверхностно похожему тексту\"],[\"5. Сборка контекста\",\"Получила ли модель пригодные для использования доказательства?\",\"Усечение, плохие границы фрагментов, дубликаты, противоречивые пассажи или перегрузка контекста\"],[\"6. Генерация\",\"Использовала ли модель предоставленные доказательства правильно?\",\"Необоснованный вывод, сбой инструкции, ошибка рассуждения или несоответствие отказа\"],[\"7. Атрибуция доказательств\",\"Можно ли проследить ответ к доказательствам, на которые он ссылается?\",\"Отсутствующие, слабые или неверные цитаты; утверждения превышают поддержку извлечённых данных\"],[\"8. Валидность и актуальность\",\"Действительны ли доказательства для этого вопроса сейчас?\",\"Корректные исторические доказательства используются вне их допустимого времени, версии, юрисдикции или состояния\"]]},\"tunes\":{}},{\"id\":\"h-source\",\"type\":\"header\",\"data\":{\"text\":\"Слой 1 — Покрытие источников: может ли система вообще ответить на это?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-source-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Прежде чем настраивать эмбеддинги, реранкеры или промпты, убедитесь, что ответ существует в пространстве знаний, которое системе разрешено использовать. Это звучит очевидно, но многие сбои RAG на самом деле являются сбоями корпуса. Запрошенный факт может отсутствовать, быть скрытым в неиндексированном вложении, доступным только в более новом документе, храниться в системе вне корпуса RAG или быть заблокированным правами доступа.\"},\"tunes\":{}},{\"id\":\"p-source-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Метрика поиска не может восстановить информацию, которая никогда не была проиндексирована. Больший top-k не может извлечь документ, которого нет в конвейере. Если тест покрытия источников не проходит, правильное исправление — это приём данных, выбор источников, права доступа или явное поведение «невозможно ответить на основе доступных доказательств».\"},\"tunes\":{}},{\"id\":\"source-warning\",\"type\":\"callout\",\"data\":{\"variant\":\"warning\",\"title\":\"Паттерн сбоя\",\"body\":\"Команды часто настраивают поиск на вопросах, на которые корпус фактически не может ответить. Это может сделать ретривер лучше в нахождении связанного текста, оставляя основной информационный пробел нетронутым.\"},\"tunes\":{}},{\"id\":\"h-query\",\"type\":\"header\",\"data\":{\"text\":\"Слой 2 — Построение запроса: задала ли система корпусу правильный вопрос?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-query-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Пользовательский запрос не всегда является поисковым запросом. Продакшн-системы переформулируют вопросы, разрешают местоимения, извлекают сущности, переводят языки, добавляют ограничения по метаданным, разбивают сложные вопросы или генерируют несколько поисковых запросов. Каждое преобразование может улучшить поиск, но каждое преобразование также может уничтожить информацию.\"},\"tunes\":{}},{\"id\":\"p-query-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Запрос вроде «Применяется ли политика к подрядчикам в Германии после сентябрьского обновления?» содержит как минимум сущность, популяцию, юрисдикцию и временную границу. Переформулированный запрос, который становится «политика для подрядчиков», может извлечь семантически связанный текст, потеряв переменные, определяющие, действителен ли ответ.\"},\"tunes\":{}},{\"id\":\"h-retrieval\",\"type\":\"header\",\"data\":{\"text\":\"Уровень 3 — Поиск кандидатов: попали ли релевантные доказательства в набор?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-ret-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Поиск кандидатов — это прежде всего задача полноты. Диагностический вопрос пока не в том, оказался ли лучший результат на первом месте; а в том, появились ли релевантные доказательства где-либо в пуле кандидатов. Если известный правильный источник не появляется, следует исследовать индексацию, разбиение на фрагменты, эмбеддинги, лексическое сопоставление, метаданные, гибридный поиск, обработку языка, синонимы и расширение запроса.\"},\"tunes\":{}},{\"id\":\"p-ret-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Именно здесь ценна оценка только поиска. AWS предоставляет метрики релевантности контекста и покрытия контекста для оценки RAG только на этапе поиска. Важная производственная привычка — оценивать поиск до генерации, чтобы отполированный финальный ответ не мог скрыть слабый набор кандидатов.\"},\"tunes\":{}},{\"id\":\"h-ranking\",\"type\":\"header\",\"data\":{\"text\":\"Уровень 4 — Ранжирование и фильтрация: были ли правильные доказательства отброшены или погребены?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-rank-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Система может иметь хорошую полноту и всё равно давать сбои, потому что релевантные доказательства ранжируются ниже шумного, но семантически похожего материала. Реранкеры, повышение свежести, веса авторитетности, языковые предпочтения, фильтры арендаторов, контроль доступа, фильтры статуса продукта и дедупликация — всё это меняет то, что выживает в финальном контексте.\"},\"tunes\":{}},{\"id\":\"p-rank-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Поэтому отладка должна сохранять полный список кандидатов, а не только финальный top-k. Если эталонное доказательство было найдено на 18-м месте, а реранкер удалил его, исправление будет не таким же, как при промахе поиска.\"},\"tunes\":{}},{\"id\":\"h-context\",\"type\":\"header\",\"data\":{\"text\":\"Уровень 5 — Сборка контекста: стали ли полезные доказательства пригодным для использования контекстом?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-ctx-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Успех поиска не гарантирует успех контекста. Релевантные фрагменты могут быть усечены, отделены от своих уточнений, дублированы до доминирования в промпте, смешаны с противоречивыми версиями или окружены таким количеством нерелевантного текста, что решающий отрывок теряет значимость.\"},\"tunes\":{}},{\"id\":\"p-ctx-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Границы фрагментов особенно важны. Предложение может содержать правило, а следующее предложение — исключение. Если они индексируются отдельно и извлекается только первое, поисковик может выглядеть релевантным, тогда как собранный контекст становится вводящим в заблуждение.\"},\"tunes\":{}},{\"id\":\"h-generation\",\"type\":\"header\",\"data\":{\"text\":\"Уровень 6 — Генерация: может ли модель правильно использовать правильные доказательства?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-gen-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Как только система доказанно предоставила достаточные доказательства, генерация становится независимо проверяемой. Модель может чрезмерно обобщать, объединять несовместимые отрывки, игнорировать отрицательное утверждение, не соблюдать запрошенный формат ответа, изобретать связь между фактами или отвечать из параметрической памяти вместо извлечённых доказательств.\"},\"tunes\":{}},{\"id\":\"p-gen-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Вот почему одной сквозной правильности недостаточно для диагностики. OpenAI рекомендует оценку как структурированный способ понять поведение приложения, а руководство Anthropic по оценке агентов подчёркивает множественные прогоны, оценщиков, трассировки и реалистичные случаи сбоев. Для RAG генератор следует тестировать как с обычным поиском, так и с контролируемым эталонным контекстом.\"},\"tunes\":{}},{\"id\":\"h-evidence\",\"type\":\"header\",\"data\":{\"text\":\"Уровень 7 — Атрибуция доказательств: действительно ли ответ подкреплён?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-evidence-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Правдоподобный ответ со ссылками всё ещё может быть слабо обоснован. Цитируемый документ может быть релевантен теме, но не подтверждать конкретное утверждение. Одно предложение может быть подкреплено, тогда как другое выведено. Ссылка может указывать на источник, который противоречит ответу, как только прочитаны его условия.\"},\"tunes\":{}},{\"id\":\"p-evidence-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Поэтому оценка цитирования относится к этапу после генерации. AWS различает точность цитирования и покрытие цитирования: правильно ли цитируются процитированные отрывки и достаточно ли ответ подкреплён цитатами. В производстве поддержка на уровне утверждений полезнее, чем трактовка наличия любой цитаты как качества доказательств.\"},\"tunes\":{}},{\"id\":\"h-validity\",\"type\":\"header\",\"data\":{\"text\":\"Уровень 8 — Актуальность и свежесть: были ли доказательства верны для этой версии реальности?\",\"level\":3},\"tunes\":{}},{\"id\":\"p-valid-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"RAG может извлечь совершенно подлинный, высокорелевантный, точно процитированный источник и всё равно выдать неверный ответ, если источник больше не действителен для текущего вопроса. Политики меняются. API устаревают. цены меняются. поведение программного обеспечения меняется между версиями. товарные запасы меняются. разрешения меняются. игровые патчи меняют механику.\"},\"tunes\":{}},{\"id\":\"p-valid-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Это отдельный класс сбоев, отличный от галлюцинации. Доказательство реально; его применимость неверна. Поэтому надёжной системе нужны временные метки, метаданные версии или юрисдикции, где это уместно, авторитетность источника, правила замены и явный механизм для решения, когда старые доказательства должны быть ограничены или отброшены.\"},\"tunes\":{}},{\"id\":\"h-oracle\",\"type\":\"header\",\"data\":{\"text\":\"Самый быстрый метод изоляции: тест с оракульным контекстом\",\"level\":2},\"tunes\":{}},{\"id\":\"p-oracle-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Самое полезное первое разделение простое: вручную предоставьте генератору небольшой набор доказательств, которые, как вы знаете, достаточны для ответа на вопрос. Оставьте задачу и ожидаемый ответ без изменений.\"},\"tunes\":{}},{\"id\":\"oracle-comparison\",\"type\":\"comparison\",\"data\":{\"title\":\"Тест с оракульным контекстом\",\"layout\":\"table\",\"columns\":[{\"id\":\"result\",\"label\":\"Результат\"},{\"id\":\"meaning\",\"label\":\"Вероятная интерпретация\"},{\"id\":\"next\",\"label\":\"Следующий шаг диагностики\"}],\"rows\":[{\"id\":\"oracle-pass\",\"label\":\"Ответ становится правильным\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"oracle-fail\",\"label\":\"Ответ остаётся неправильным\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"oracle-partial\",\"label\":\"Ответ улучшается, но остаётся неполным\",\"values\":[\"\",\"\",\"\"]}]},\"tunes\":{}},{\"id\":\"oracle-tip\",\"type\":\"callout\",\"data\":{\"variant\":\"tip\",\"title\":\"Почему этот тест эффективен\",\"body\":\"Тест с оракульным контекстом исключает большую часть конвейера поиска из эксперимента. Он не доказывает, что генерация идеальна, но даёт быстрый контрфактический результат: \u003Cstrong>что сделала бы модель, если бы поиск уже увенчался успехом?\u003C\u002Fstrong>\"},\"tunes\":{}},{\"id\":\"h-sequence\",\"type\":\"header\",\"data\":{\"text\":\"Последовательность диагностики в продакшене\",\"level\":2},\"tunes\":{}},{\"id\":\"diag-flow\",\"type\":\"processFlow\",\"data\":{\"title\":\"Диагностика сбоя от доказательств до ответа\",\"orientation\":\"auto\",\"steps\":[{\"label\":\"1. Определите ожидаемое утверждение\",\"description\":\"Запишите ожидаемый ответ, допустимую неопределённость и доказательства, которые бы его обосновали.\"},{\"label\":\"2. Проверьте покрытие источников\",\"description\":\"Убедитесь, что авторитетные и разрешённые доказательства существуют в проиндексированном или доступном наборе источников.\"},{\"label\":\"3. Запустите тест с оракульным контекстом\",\"description\":\"Предоставьте генератору достаточные эталонные доказательства напрямую и посмотрите, станет ли ответ правильным.\"},{\"label\":\"4. Изучите поисковый запрос\",\"description\":\"Проверьте переформулировки, сущности, фильтры, язык, временные ограничения, декомпозицию и скрытые допущения.\"},{\"label\":\"5. Изучите кандидатов до переранжирования\",\"description\":\"Определите, были ли релевантные доказательства вообще найдены, и зафиксируйте их ранг.\"},{\"label\":\"6. Изучите ранжирование и сборку контекста\",\"description\":\"Проверьте переранжирование, фильтры метаданных, усечение, границы чанков, дубликаты, конфликты и состав top-k.\"},{\"label\":\"7. Оценивайте генерацию и цитирование отдельно\",\"description\":\"Измеряйте правильность ответа, полноту, достоверность и подтверждение доказательствами на уровне утверждений.\"},{\"label\":\"8. Проверьте границы применимости\",\"description\":\"Проверьте, меняют ли ответ версия, дата, состояние, юрисдикция, разрешения или замещающие доказательства.\"}]},\"tunes\":{}},{\"id\":\"h-one-change\",\"type\":\"header\",\"data\":{\"text\":\"Не меняйте три слоя одновременно\",\"level\":2},\"tunes\":{}},{\"id\":\"p-one-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Распространённая ошибка отладки — менять эмбеддинги, размеры чанков, top-k, промпты и модель за одну итерацию. Если оценка улучшается, вы не знаете почему. Если ухудшается, вы не знаете, какое изменение вызвало регрессию.\"},\"tunes\":{}},{\"id\":\"p-one-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Относитесь к отладке RAG как к экспериментальной диагностике: сохраняйте как можно большую часть конвейера неизменной и заменяйте один неопределённый компонент контролируемым входом. Эталонные документы изолируют поиск. Эталонные чанки изолируют выбор чанков. Фиксированный контекст изолирует генерацию. Фиксированная модель изолирует изменения поиска. Фиксированный корпус изолирует изменения приёма и индексации.\"},\"tunes\":{}},{\"id\":\"h-matrix\",\"type\":\"header\",\"data\":{\"text\":\"Матрица сбоев для типичных симптомов RAG\",\"level\":2},\"tunes\":{}},{\"id\":\"symptom-matrix\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Симптом\",\"Наиболее вероятные слои для первоочередной проверки\",\"Различающий тест\"],[\"Релевантный источник не появляется\",\"Покрытие источников → Запрос → Поиск кандидатов\",\"Вручную поищите в корпусе, затем изучите переформулированный запрос и нефильтрованных кандидатов\"],[\"Релевантный источник появляется, но ответ неверный\",\"Сборка контекста → Генерация\",\"Тест с оракульным контекстом с тем же источником, сокращённым до решающих фрагментов\"],[\"Ответ иногда правильный, иногда неправильный\",\"Ранжирование → Сборка контекста → Вариативность генерации\",\"Повторяйте испытания, регистрируя найденный набор, ранг, контекст промпта и вывод модели\"],[\"Ответ ссылается на правильный документ, но преувеличивает его\",\"Генерация → Атрибуция доказательств → Применимость\",\"Оценивайте каждое утверждение по точному цитируемому фрагменту\"],[\"Старая информация постоянно побеждает\",\"Ранжирование → Применимость\u002Fактуальность\",\"Сравните с правилами актуальности\u002Fзамещения и изучите метаданные\"],[\"Ответ упускает исключение\",\"Чанкинг → Сборка контекста\",\"Проверьте, были ли правило и исключение разделены или усечены\"],[\"Увеличение top-k ухудшает качество\",\"Ранжирование → Перегрузка контекста\",\"Исключите малоценные чанки и сравните с минимальным набором доказательств\"],[\"Смена модели исправляет ответ\",\"Генерация, но не обязательно поиск\",\"Повторите с идентичным найденным контекстом для разных моделей\"],[\"Смена эмбеддингов исправляет ответ\",\"Поиск\u002Fранжирование\",\"Сохраняйте генератор и шаблон контекста неизменными, сравнивая полноту кандидатов\"]]},\"tunes\":{}},{\"id\":\"h-metrics\",\"type\":\"header\",\"data\":{\"text\":\"Измеряйте каждый слой метрикой, на которую он действительно может влиять\",\"level\":2},\"tunes\":{}},{\"id\":\"metrics-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Слой\",\"Полезные измерения\",\"Что не следует выводить\"],[\"Покрытие источников\",\"Доля вопросов с возможным ответом, покрытие корпуса, полнота приёма\",\"Не вините эмбеддинги в отсутствии исходного материала\"],[\"Поиск кандидатов\",\"Recall@k, доля попаданий, покрытие контекста\",\"Высокий recall не доказывает качество ранжирования\"],[\"Ранжирование\",\"MRR, NDCG, ранг эталона, precision@k\",\"Хорошее ранжирование не доказывает, что генератор использовал доказательства\"],[\"Сборка контекста\",\"Сохранение доказательств, дублирование, доля противоречий, использование токенов\",\"Большой контекст не означает полезный контекст\"],[\"Генерация\",\"Правильность, полнота, успех задачи, достоверность\",\"Правильность сама по себе не доказывает обоснованность\"],[\"Атрибуция доказательств\",\"Точность цитирования, покрытие цитирования, подтверждение утверждений\",\"Количество цитат — это не качество доказательств\"],[\"Применимость\",\"Актуальность, точность замещения, соответствие версии\u002Fюрисдикции\",\"Релевантные доказательства не всегда применимы\"]]},\"tunes\":{}},{\"id\":\"h-correct-answer\",\"type\":\"header\",\"data\":{\"text\":\"Правильный ответ всё ещё может скрывать дефект RAG\",\"level\":2},\"tunes\":{}},{\"id\":\"p-correct-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Обратная проблема также важна. Система RAG может выдавать правильный ответ, когда поиск сломан. Модель может уже знать ответ из обучения, вывести его из слабых доказательств или правильно угадать. Если оценка смотрит только на итоговый ответ, система может казаться здоровой, пока вопрос не дойдёт до информации, которая существует только в приватном корпусе.\"},\"tunes\":{}},{\"id\":\"p-correct-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Это та же проблема надёжности, которая шире проявляется в агентных системах: правильность результата недостаточна, чтобы доказать надёжность пути выполнения. Для RAG трассировки должны сохранять как минимум поисковый запрос, набор кандидатов, ранжирование, итоговый контекст, ответ, цитаты, версию модели, версию корпуса\u002Fиндекса и соответствующие фильтры.\"},\"tunes\":{}},{\"id\":\"internal-reliability\",\"type\":\"referralArticle\",\"data\":{\"url\":\"https:\u002F\u002Fstajic.de\u002Fru\u002Fblog\u002Fai-agent-reliability-why-the-final-answer-is-not-enough\",\"title\":\"Надёжность ИИ-агентов: почему итогового ответа недостаточно\",\"excerpt\":\"Правильный вывод не доказывает правильность рассуждений, безопасность выполнения или доверие к системе. Эта статья распространяет данный принцип с диагностики RAG на траектории агентов и операционные гарантии.\",\"ctaLabel\":\"Читать связанную статью\"},\"tunes\":{}},{\"id\":\"h-hypotheses\",\"type\":\"header\",\"data\":{\"text\":\"Используйте конкурирующие гипотезы, а не любимое объяснение\",\"level\":2},\"tunes\":{}},{\"id\":\"p-hyp-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Если плохой ответ сразу становится «проблемой эмбеддингов», расследование уже предвзято. Более сильный метод отладки записывает конкурирующие гипотезы до изменения системы: отсутствующий источник, плохой перезапрос, низкая полнота поиска, плохой реранкинг, усечение контекста, конфликтующие версии, сбой генерации, сбой цитирования или устаревшие доказательства.\"},\"tunes\":{}},{\"id\":\"p-hyp-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Затем выберите тест, который разделит эти гипотезы. Это эффективнее, чем собирать больше примеров, подтверждающих первое объяснение. Тот же принцип применим к техническому рассуждению с помощью ИИ в целом: полезный диагноз — тот, который выдерживает различающие тесты, а не тот, который просто звучит правдоподобно.\"},\"tunes\":{}},{\"id\":\"internal-reasoning\",\"type\":\"referralArticle\",\"data\":{\"url\":\"https:\u002F\u002Fstajic.de\u002Fru\u002Fblog\u002Ffrom-research-protocol-to-a-general-ai-reasoning-framework\",\"title\":\"От исследовательского протокола к общей структуре рассуждений ИИ\",\"excerpt\":\"Независимый от предметной области метод рассуждения для отделения доказательств от предположений, проверки конкурирующих гипотез и использования предметно-специфичных валидаторов.\",\"ctaLabel\":\"Читать структуру рассуждений\"},\"tunes\":{}},{\"id\":\"h-change\",\"type\":\"header\",\"data\":{\"text\":\"Что изменило бы этот ответ?\",\"level\":2},\"tunes\":{}},{\"id\":\"p-change-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Точные диагностические слои меняются в зависимости от архитектуры. Простое приложение RAG с одним документом может не иметь перезапроса, реранкера или слоя цитирования. Агентная система поиска может добавлять планирование, множественные поиски, выбор инструментов, память, разрешения и итеративный сбор доказательств. Поиск в структурированной базе данных может вообще не использовать чанки или эмбеддинги.\"},\"tunes\":{}},{\"id\":\"p-change-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Основной метод остаётся неизменным: определить компоненты, которые могут независимо изменить результат, построить контролируемые тесты, заменяющие неопределённые компоненты на заведомо исправные входные данные, и измерить каждый компонент с помощью доказательств, соответствующих этому слою.\"},\"tunes\":{}},{\"id\":\"h-limitations\",\"type\":\"header\",\"data\":{\"text\":\"Ограничения\",\"level\":2},\"tunes\":{}},{\"id\":\"p-limit-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Реальные сбои часто связаны. Слабый запрос может снизить полноту, что меняет реранкинг, что меняет контекст, что увеличивает вариативность генерации. Тест с оракульным контекстом — это диагностический ярлык, а не доказательство того, что ответственен только один компонент. Наборы данных для оценки также могут быть нерепрезентативными, а оценщики на основе моделей могут вносить собственные ошибки.\"},\"tunes\":{}},{\"id\":\"p-limit-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Поэтому предлагаемый стек лучше всего использовать как структуру расследования: логировать конвейер, изолировать переменные, воспроизводить сбои, проверять конкурирующие объяснения и сохранять сквозную оценку после исправлений на уровне слоёв.\"},\"tunes\":{}},{\"id\":\"h-conclusion\",\"type\":\"header\",\"data\":{\"text\":\"Заключение\",\"level\":2},\"tunes\":{}},{\"id\":\"p-conclusion-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"«RAG не сработал» должно быть началом расследования, а не выводом. Полезный диагноз определяет, не хватало ли системе доказательств, искала ли она неправильно, не смогла ли их извлечь, плохо ли их ранжировала, собрала ли непригодный контекст, сгенерировала ли неправильно, плохо ли атрибутировала утверждения или применила доказательства за пределами их границы применимости.\"},\"tunes\":{}},{\"id\":\"p-conclusion-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Практическое правило простое: заменяйте неопределённость контролируемыми доказательствами слой за слоем. Начните с теста с оракульным контекстом. Отделите оценку только поиска от оценки генерации. Сохраняйте полную трассировку. Затем исправьте компонент, который действительно дал сбой, вместо настройки всего стека RAG по интуиции.\"},\"tunes\":{}},{\"id\":\"h-faq\",\"type\":\"header\",\"data\":{\"text\":\"Часто задаваемые вопросы\",\"level\":2},\"tunes\":{}},{\"id\":\"faq\",\"type\":\"faq\",\"data\":{\"title\":\"Диагностика сбоев RAG\",\"items\":[{\"id\":\"faq1\",\"question\":\"Как понять, что дало сбой: поиск RAG или LLM?\",\"answer\":\"Дайте модели небольшой набор заведомо правильных доказательств вручную. Если ответ становится правильным, исследуйте покрытие источников, построение запроса, поиск, ранжирование и сборку контекста. Если модель всё ещё даёт сбой при достаточных доказательствах, поиск не является основной проблемой.\"},{\"id\":\"faq2\",\"question\":\"Может ли RAG дать сбой, даже если правильный документ был извлечён?\",\"answer\":\"Да. Релевантный фрагмент может быть ранжирован слишком низко, усечён, отделён от исключения, смешан с конфликтующими доказательствами, подавлен нерелевантным контекстом или неправильно использован генератором.\"},{\"id\":\"faq3\",\"question\":\"Достаточно ли правильности ответа для оценки системы RAG?\",\"answer\":\"Нет. Модель может дать правильный ответ, несмотря на слабый поиск, полагаясь на предварительные знания модели или случайность. Оценивайте поиск и подтверждение доказательствами отдельно от правильности итогового ответа.\"},{\"id\":\"faq4\",\"question\":\"Что следует логировать при отладке RAG?\",\"answer\":\"Как минимум логируйте запрос пользователя, преобразованный поисковый запрос, фильтры, документы-кандидаты и их ранги, итоговый выбранный контекст, версию модели и промпта, ответ, цитаты, версию корпуса\u002Fиндекса, а также метаданные о времени или версии, относящиеся к актуальности.\"},{\"id\":\"faq5\",\"question\":\"Обычно ли увеличение top-k исправляет RAG?\",\"answer\":\"Не надёжно. Больший набор кандидатов или контекста может улучшить полноту, но также может добавить шум, противоречия, дубликаты и перегрузку контекста. Проверьте, не отсутствуют ли релевантные доказательства, прежде чем увеличивать top-k.\"}]},\"tunes\":{}},{\"id\":\"h-glossary\",\"type\":\"header\",\"data\":{\"text\":\"Глоссарий\",\"level\":2},\"tunes\":{}},{\"id\":\"glossary\",\"type\":\"glossary\",\"data\":{\"title\":\"Ключевые диагностические термины\",\"entries\":[{\"term\":\"Тест с оракульным контекстом\",\"definition\":\"Контролируемый тест, в котором генератору напрямую дают заведомо достаточные доказательства, чтобы определить, находится ли доминирующий сбой выше по потоку от генерации.\",\"anchor\":\"oracle-context-test\"},{\"term\":\"Поиск кандидатов\",\"definition\":\"Этап, на котором выбирается начальный набор потенциально релевантных документов, чанков, записей или фрагментов до окончательного ранжирования или сборки контекста.\",\"anchor\":\"candidate-retrieval\"},{\"term\":\"Сборка контекста\",\"definition\":\"Процесс преобразования извлечённых доказательств в фактический вход модели, включая порядок, усечение, дедупликацию, форматирование и решения о бюджете токенов.\",\"anchor\":\"context-assembly\"},{\"term\":\"Верность\",\"definition\":\"Степень, в которой сгенерированные утверждения остаются подтверждёнными извлечёнными или предоставленными доказательствами, а не вводят неподтверждённое содержание.\",\"anchor\":\"faithfulness\"},{\"term\":\"Покрытие контекста\",\"definition\":\"Ориентированная на поиск мера того, покрывают ли выбранные доказательства информацию, необходимую для ответа на вопрос.\",\"anchor\":\"context-coverage\"},{\"term\":\"Граница применимости\",\"definition\":\"Условия, при которых утверждение или ответ остаётся применимым, например время, версия, юрисдикция, состояние, популяция, разрешения или допущения об источнике.\",\"anchor\":\"validity-boundary\"}]},\"tunes\":{}},{\"id\":\"h-sources\",\"type\":\"header\",\"data\":{\"text\":\"Первоисточники и дополнительное чтение\",\"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 — Оптимизация точности LLM\",\"description\":\"Рекомендации OpenAI по разделению сбоев поиска и сбоев LLM в приложениях RAG.\"}},\"tunes\":{}},{\"id\":\"src-openai-evals\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fevaluation-best-practices\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI — Лучшие практики оценки\",\"description\":\"Руководство по структурированной оценке для вариативных ИИ-систем и проектированию тестов, ориентированных на продакшен.\"}},\"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\",\"description\":\"Документация, разделяющая метрики только поиска и метрики поиска с генерацией, включая релевантность контекста, покрытие, достоверность и метрики цитирования.\"}},\"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 — Демистификация оценок для ИИ-агентов\",\"description\":\"Практическое руководство по оценке задач, испытаний, оценщиков, трассировок, регрессий и поведения в продакшене.\"}},\"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 — Генерация с дополненной выборкой\",\"description\":\"Обзор архитектуры RAG и важности релевантной выборки и обоснованной генерации.\"}},\"tunes\":{}}],\"version\":\"2.31.6\"}",{"time":212,"blocks":213,"version":833},1790369172851,[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,782,787,797,806,815,824],{"id":215,"data":216,"type":218,"tunes":219},"intro",{"text":217},"Система RAG возвращает слабый, неверный, неполный или необоснованный ответ. Обычный диагноз — «поиск не сработал» или «модель галлюцинировала». Оба ярлыка слишком широки, чтобы быть полезными. Продакшн-конвейер RAG может дать сбой до поиска, во время поиска, при ранжировании, при сборке контекста, во время генерации или после генерации, когда проверяются доказательства и валидность.","paragraph",{},{"id":221,"data":222,"type":226,"tunes":227},"direct",{"body":223,"title":224,"variant":225},"\u003Cstrong>Не отлаживайте RAG как один компонент.\u003C\u002Fstrong> Диагностируйте его как цепочку независимо тестируемых слоёв. Сначала определите, существуют ли необходимые доказательства в авторитетном источнике. Затем проверьте построение запроса, поиск кандидатов, ранжирование, сборку контекста, генерацию, атрибуцию доказательств и актуальность. Самый быстрый метод изоляции — \u003Cstrong>тест с оракульным контекстом\u003C\u002Fstrong>: вручную передайте генератору правильные доказательства. Если ответ становится правильным, доминирующий сбой находится выше генерации. Если он остаётся неверным, поиск не является основной проблемой.","Прямой ответ","info","callout",{},{"id":229,"data":230,"type":226,"tunes":234},"model-note",{"body":231,"title":232,"variant":233},"Стек сбоев RAG в этой статье — это практическая диагностическая модель, а не формальный отраслевой стандарт. Существующие платформы уже разделяют метрики только поиска и метрики поиска с генерацией; эта модель расширяет такое разделение до пошагового метода отладки в продакшне.","О диагностической модели","note",{},{"id":236,"data":237,"type":241,"tunes":242},"toc",{"title":238,"maxLevel":239,"minLevel":240},"Содержание",3,2,"tableOfContents",{},{"id":244,"data":245,"type":42,"tunes":247},"h-not-diagnosis",{"text":246,"level":240},"Почему «RAG дал сбой» — это не диагноз",{},{"id":249,"data":250,"type":218,"tunes":252},"p-not-1",{"text":251},"Генерация с дополненной выборкой объединяет несколько механизмов: запрос пользователя интерпретируется, формируется один или несколько поисковых запросов, извлекаются кандидатные материалы, результаты фильтруются или переранжируются, выбранные доказательства вставляются в контекст модели, и модель генерирует ответ. Продакшн-системы могут добавлять права доступа, фильтры по метаданным, правила актуальности, цитирование, переформулирование запросов, гибридный поиск, вызовы инструментов, память и внешнее состояние.",{},{"id":254,"data":255,"type":218,"tunes":257},"p-not-2",{"text":256},"Поэтому неверный итоговый ответ не говорит, какой компонент дал сбой. Модель могла получить неверные доказательства. Она могла получить правильные доказательства в смеси с чрезмерным шумом. Доказательства могут быть корректными, но устаревшими. Источник мог вообще никогда не содержать ответ. Или модель могла проигнорировать вполне достаточный контекст.",{},{"id":259,"data":260,"type":218,"tunes":262},"p-not-3",{"text":261},"Руководство OpenAI по RAG уже проводит фундаментальное различие между сбоем поиска и сбоем модели: система может предоставить неверный контекст или предоставить правильный контекст и всё равно сгенерировать неверный ответ. AWS аналогично разделяет оценку только поиска и оценку поиска с генерацией. Для диагностики в продакшне это различие следует развить дальше.",{},{"id":264,"data":265,"type":42,"tunes":267},"h-stack",{"text":266,"level":240},"Стек сбоев RAG",{},{"id":269,"data":270,"type":308,"tunes":309},"table-stack",{"content":271,"stretched":43,"withHeadings":14},[272,276,280,284,288,292,296,300,304],[273,274,275],"Слой","Вопрос","Типичный сбой",[277,278,279],"1. Покрытие источников","Существуют ли необходимые доказательства в разрешённом авторитетном источнике?","Корпус вообще не может ответить на вопрос",[281,282,283],"2. Построение запроса","Искала ли система то, что нужно?","Теряются намерение, сущности, фильтры, язык или временные ограничения",[285,286,287],"3. Поиск кандидатов","Попали ли релевантные доказательства в набор кандидатов?","Низкая полнота; нужный фрагмент никогда не извлекается",[289,290,291],"4. Ранжирование и фильтрация","Выжили ли правильные доказательства и достаточно ли высоко ранжированы?","Релевантные доказательства погребены, отфильтрованы или уступают поверхностно похожему тексту",[293,294,295],"5. Сборка контекста","Получила ли модель пригодные для использования доказательства?","Усечение, плохие границы фрагментов, дубликаты, противоречивые пассажи или перегрузка контекста",[297,298,299],"6. Генерация","Использовала ли модель предоставленные доказательства правильно?","Необоснованный вывод, сбой инструкции, ошибка рассуждения или несоответствие отказа",[301,302,303],"7. Атрибуция доказательств","Можно ли проследить ответ к доказательствам, на которые он ссылается?","Отсутствующие, слабые или неверные цитаты; утверждения превышают поддержку извлечённых данных",[305,306,307],"8. Валидность и актуальность","Действительны ли доказательства для этого вопроса сейчас?","Корректные исторические доказательства используются вне их допустимого времени, версии, юрисдикции или состояния","table",{},{"id":311,"data":312,"type":42,"tunes":314},"h-source",{"text":313,"level":239},"Слой 1 — Покрытие источников: может ли система вообще ответить на это?",{},{"id":316,"data":317,"type":218,"tunes":319},"p-source-1",{"text":318},"Прежде чем настраивать эмбеддинги, реранкеры или промпты, убедитесь, что ответ существует в пространстве знаний, которое системе разрешено использовать. Это звучит очевидно, но многие сбои RAG на самом деле являются сбоями корпуса. Запрошенный факт может отсутствовать, быть скрытым в неиндексированном вложении, доступным только в более новом документе, храниться в системе вне корпуса RAG или быть заблокированным правами доступа.",{},{"id":321,"data":322,"type":218,"tunes":324},"p-source-2",{"text":323},"Метрика поиска не может восстановить информацию, которая никогда не была проиндексирована. Больший top-k не может извлечь документ, которого нет в конвейере. Если тест покрытия источников не проходит, правильное исправление — это приём данных, выбор источников, права доступа или явное поведение «невозможно ответить на основе доступных доказательств».",{},{"id":326,"data":327,"type":226,"tunes":331},"source-warning",{"body":328,"title":329,"variant":330},"Команды часто настраивают поиск на вопросах, на которые корпус фактически не может ответить. Это может сделать ретривер лучше в нахождении связанного текста, оставляя основной информационный пробел нетронутым.","Паттерн сбоя","warning",{},{"id":333,"data":334,"type":42,"tunes":336},"h-query",{"text":335,"level":239},"Слой 2 — Построение запроса: задала ли система корпусу правильный вопрос?",{},{"id":338,"data":339,"type":218,"tunes":341},"p-query-1",{"text":340},"Пользовательский запрос не всегда является поисковым запросом. Продакшн-системы переформулируют вопросы, разрешают местоимения, извлекают сущности, переводят языки, добавляют ограничения по метаданным, разбивают сложные вопросы или генерируют несколько поисковых запросов. Каждое преобразование может улучшить поиск, но каждое преобразование также может уничтожить информацию.",{},{"id":343,"data":344,"type":218,"tunes":346},"p-query-2",{"text":345},"Запрос вроде «Применяется ли политика к подрядчикам в Германии после сентябрьского обновления?» содержит как минимум сущность, популяцию, юрисдикцию и временную границу. Переформулированный запрос, который становится «политика для подрядчиков», может извлечь семантически связанный текст, потеряв переменные, определяющие, действителен ли ответ.",{},{"id":348,"data":349,"type":42,"tunes":351},"h-retrieval",{"text":350,"level":239},"Уровень 3 — Поиск кандидатов: попали ли релевантные доказательства в набор?",{},{"id":353,"data":354,"type":218,"tunes":356},"p-ret-1",{"text":355},"Поиск кандидатов — это прежде всего задача полноты. Диагностический вопрос пока не в том, оказался ли лучший результат на первом месте; а в том, появились ли релевантные доказательства где-либо в пуле кандидатов. Если известный правильный источник не появляется, следует исследовать индексацию, разбиение на фрагменты, эмбеддинги, лексическое сопоставление, метаданные, гибридный поиск, обработку языка, синонимы и расширение запроса.",{},{"id":358,"data":359,"type":218,"tunes":361},"p-ret-2",{"text":360},"Именно здесь ценна оценка только поиска. AWS предоставляет метрики релевантности контекста и покрытия контекста для оценки RAG только на этапе поиска. Важная производственная привычка — оценивать поиск до генерации, чтобы отполированный финальный ответ не мог скрыть слабый набор кандидатов.",{},{"id":363,"data":364,"type":42,"tunes":366},"h-ranking",{"text":365,"level":239},"Уровень 4 — Ранжирование и фильтрация: были ли правильные доказательства отброшены или погребены?",{},{"id":368,"data":369,"type":218,"tunes":371},"p-rank-1",{"text":370},"Система может иметь хорошую полноту и всё равно давать сбои, потому что релевантные доказательства ранжируются ниже шумного, но семантически похожего материала. Реранкеры, повышение свежести, веса авторитетности, языковые предпочтения, фильтры арендаторов, контроль доступа, фильтры статуса продукта и дедупликация — всё это меняет то, что выживает в финальном контексте.",{},{"id":373,"data":374,"type":218,"tunes":376},"p-rank-2",{"text":375},"Поэтому отладка должна сохранять полный список кандидатов, а не только финальный top-k. Если эталонное доказательство было найдено на 18-м месте, а реранкер удалил его, исправление будет не таким же, как при промахе поиска.",{},{"id":378,"data":379,"type":42,"tunes":381},"h-context",{"text":380,"level":239},"Уровень 5 — Сборка контекста: стали ли полезные доказательства пригодным для использования контекстом?",{},{"id":383,"data":384,"type":218,"tunes":386},"p-ctx-1",{"text":385},"Успех поиска не гарантирует успех контекста. Релевантные фрагменты могут быть усечены, отделены от своих уточнений, дублированы до доминирования в промпте, смешаны с противоречивыми версиями или окружены таким количеством нерелевантного текста, что решающий отрывок теряет значимость.",{},{"id":388,"data":389,"type":218,"tunes":391},"p-ctx-2",{"text":390},"Границы фрагментов особенно важны. Предложение может содержать правило, а следующее предложение — исключение. Если они индексируются отдельно и извлекается только первое, поисковик может выглядеть релевантным, тогда как собранный контекст становится вводящим в заблуждение.",{},{"id":393,"data":394,"type":42,"tunes":396},"h-generation",{"text":395,"level":239},"Уровень 6 — Генерация: может ли модель правильно использовать правильные доказательства?",{},{"id":398,"data":399,"type":218,"tunes":401},"p-gen-1",{"text":400},"Как только система доказанно предоставила достаточные доказательства, генерация становится независимо проверяемой. Модель может чрезмерно обобщать, объединять несовместимые отрывки, игнорировать отрицательное утверждение, не соблюдать запрошенный формат ответа, изобретать связь между фактами или отвечать из параметрической памяти вместо извлечённых доказательств.",{},{"id":403,"data":404,"type":218,"tunes":406},"p-gen-2",{"text":405},"Вот почему одной сквозной правильности недостаточно для диагностики. OpenAI рекомендует оценку как структурированный способ понять поведение приложения, а руководство Anthropic по оценке агентов подчёркивает множественные прогоны, оценщиков, трассировки и реалистичные случаи сбоев. Для RAG генератор следует тестировать как с обычным поиском, так и с контролируемым эталонным контекстом.",{},{"id":408,"data":409,"type":42,"tunes":411},"h-evidence",{"text":410,"level":239},"Уровень 7 — Атрибуция доказательств: действительно ли ответ подкреплён?",{},{"id":413,"data":414,"type":218,"tunes":416},"p-evidence-1",{"text":415},"Правдоподобный ответ со ссылками всё ещё может быть слабо обоснован. Цитируемый документ может быть релевантен теме, но не подтверждать конкретное утверждение. Одно предложение может быть подкреплено, тогда как другое выведено. Ссылка может указывать на источник, который противоречит ответу, как только прочитаны его условия.",{},{"id":418,"data":419,"type":218,"tunes":421},"p-evidence-2",{"text":420},"Поэтому оценка цитирования относится к этапу после генерации. AWS различает точность цитирования и покрытие цитирования: правильно ли цитируются процитированные отрывки и достаточно ли ответ подкреплён цитатами. В производстве поддержка на уровне утверждений полезнее, чем трактовка наличия любой цитаты как качества доказательств.",{},{"id":423,"data":424,"type":42,"tunes":426},"h-validity",{"text":425,"level":239},"Уровень 8 — Актуальность и свежесть: были ли доказательства верны для этой версии реальности?",{},{"id":428,"data":429,"type":218,"tunes":431},"p-valid-1",{"text":430},"RAG может извлечь совершенно подлинный, высокорелевантный, точно процитированный источник и всё равно выдать неверный ответ, если источник больше не действителен для текущего вопроса. Политики меняются. API устаревают. цены меняются. поведение программного обеспечения меняется между версиями. товарные запасы меняются. разрешения меняются. игровые патчи меняют механику.",{},{"id":433,"data":434,"type":218,"tunes":436},"p-valid-2",{"text":435},"Это отдельный класс сбоев, отличный от галлюцинации. Доказательство реально; его применимость неверна. Поэтому надёжной системе нужны временные метки, метаданные версии или юрисдикции, где это уместно, авторитетность источника, правила замены и явный механизм для решения, когда старые доказательства должны быть ограничены или отброшены.",{},{"id":438,"data":439,"type":42,"tunes":441},"h-oracle",{"text":440,"level":240},"Самый быстрый метод изоляции: тест с оракульным контекстом",{},{"id":443,"data":444,"type":218,"tunes":446},"p-oracle-1",{"text":445},"Самое полезное первое разделение простое: вручную предоставьте генератору небольшой набор доказательств, которые, как вы знаете, достаточны для ответа на вопрос. Оставьте задачу и ожидаемый ответ без изменений.",{},{"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","Ответ становится правильным",[455,455,455],"",{"id":457,"label":458,"values":459},"oracle-fail","Ответ остаётся неправильным",[455,455,455],{"id":461,"label":462,"values":463},"oracle-partial","Ответ улучшается, но остаётся неполным",[455,455,455],"Тест с оракульным контекстом",[466,469,472],{"id":467,"label":468},"result","Результат",{"id":470,"label":471},"meaning","Вероятная интерпретация",{"id":473,"label":474},"next","Следующий шаг диагностики","comparison",{},{"id":478,"data":479,"type":226,"tunes":483},"oracle-tip",{"body":480,"title":481,"variant":482},"Тест с оракульным контекстом исключает большую часть конвейера поиска из эксперимента. Он не доказывает, что генерация идеальна, но даёт быстрый контрфактический результат: \u003Cstrong>что сделала бы модель, если бы поиск уже увенчался успехом?\u003C\u002Fstrong>","Почему этот тест эффективен","tip",{},{"id":485,"data":486,"type":42,"tunes":488},"h-sequence",{"text":487,"level":240},"Последовательность диагностики в продакшене",{},{"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. Определите ожидаемое утверждение","Запишите ожидаемый ответ, допустимую неопределённость и доказательства, которые бы его обосновали.",{"label":497,"description":498},"2. Проверьте покрытие источников","Убедитесь, что авторитетные и разрешённые доказательства существуют в проиндексированном или доступном наборе источников.",{"label":500,"description":501},"3. Запустите тест с оракульным контекстом","Предоставьте генератору достаточные эталонные доказательства напрямую и посмотрите, станет ли ответ правильным.",{"label":503,"description":504},"4. Изучите поисковый запрос","Проверьте переформулировки, сущности, фильтры, язык, временные ограничения, декомпозицию и скрытые допущения.",{"label":506,"description":507},"5. Изучите кандидатов до переранжирования","Определите, были ли релевантные доказательства вообще найдены, и зафиксируйте их ранг.",{"label":509,"description":510},"6. Изучите ранжирование и сборку контекста","Проверьте переранжирование, фильтры метаданных, усечение, границы чанков, дубликаты, конфликты и состав top-k.",{"label":512,"description":513},"7. Оценивайте генерацию и цитирование отдельно","Измеряйте правильность ответа, полноту, достоверность и подтверждение доказательствами на уровне утверждений.",{"label":515,"description":516},"8. Проверьте границы применимости","Проверьте, меняют ли ответ версия, дата, состояние, юрисдикция, разрешения или замещающие доказательства.","Диагностика сбоя от доказательств до ответа","auto","processFlow",{},{"id":522,"data":523,"type":42,"tunes":525},"h-one-change",{"text":524,"level":240},"Не меняйте три слоя одновременно",{},{"id":527,"data":528,"type":218,"tunes":530},"p-one-1",{"text":529},"Распространённая ошибка отладки — менять эмбеддинги, размеры чанков, top-k, промпты и модель за одну итерацию. Если оценка улучшается, вы не знаете почему. Если ухудшается, вы не знаете, какое изменение вызвало регрессию.",{},{"id":532,"data":533,"type":218,"tunes":535},"p-one-2",{"text":534},"Относитесь к отладке RAG как к экспериментальной диагностике: сохраняйте как можно большую часть конвейера неизменной и заменяйте один неопределённый компонент контролируемым входом. Эталонные документы изолируют поиск. Эталонные чанки изолируют выбор чанков. Фиксированный контекст изолирует генерацию. Фиксированная модель изолирует изменения поиска. Фиксированный корпус изолирует изменения приёма и индексации.",{},{"id":537,"data":538,"type":42,"tunes":540},"h-matrix",{"text":539,"level":240},"Матрица сбоев для типичных симптомов RAG",{},{"id":542,"data":543,"type":308,"tunes":585},"symptom-matrix",{"content":544,"stretched":43,"withHeadings":14},[545,549,553,557,561,565,569,573,577,581],[546,547,548],"Симптом","Наиболее вероятные слои для первоочередной проверки","Различающий тест",[550,551,552],"Релевантный источник не появляется","Покрытие источников → Запрос → Поиск кандидатов","Вручную поищите в корпусе, затем изучите переформулированный запрос и нефильтрованных кандидатов",[554,555,556],"Релевантный источник появляется, но ответ неверный","Сборка контекста → Генерация","Тест с оракульным контекстом с тем же источником, сокращённым до решающих фрагментов",[558,559,560],"Ответ иногда правильный, иногда неправильный","Ранжирование → Сборка контекста → Вариативность генерации","Повторяйте испытания, регистрируя найденный набор, ранг, контекст промпта и вывод модели",[562,563,564],"Ответ ссылается на правильный документ, но преувеличивает его","Генерация → Атрибуция доказательств → Применимость","Оценивайте каждое утверждение по точному цитируемому фрагменту",[566,567,568],"Старая информация постоянно побеждает","Ранжирование → Применимость\u002Fактуальность","Сравните с правилами актуальности\u002Fзамещения и изучите метаданные",[570,571,572],"Ответ упускает исключение","Чанкинг → Сборка контекста","Проверьте, были ли правило и исключение разделены или усечены",[574,575,576],"Увеличение top-k ухудшает качество","Ранжирование → Перегрузка контекста","Исключите малоценные чанки и сравните с минимальным набором доказательств",[578,579,580],"Смена модели исправляет ответ","Генерация, но не обязательно поиск","Повторите с идентичным найденным контекстом для разных моделей",[582,583,584],"Смена эмбеддингов исправляет ответ","Поиск\u002Fранжирование","Сохраняйте генератор и шаблон контекста неизменными, сравнивая полноту кандидатов",{},{"id":587,"data":588,"type":42,"tunes":590},"h-metrics",{"text":589,"level":240},"Измеряйте каждый слой метрикой, на которую он действительно может влиять",{},{"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],"Полезные измерения","Что не следует выводить",[599,600,601],"Покрытие источников","Доля вопросов с возможным ответом, покрытие корпуса, полнота приёма","Не вините эмбеддинги в отсутствии исходного материала",[603,604,605],"Поиск кандидатов","Recall@k, доля попаданий, покрытие контекста","Высокий recall не доказывает качество ранжирования",[607,608,609],"Ранжирование","MRR, NDCG, ранг эталона, precision@k","Хорошее ранжирование не доказывает, что генератор использовал доказательства",[611,612,613],"Сборка контекста","Сохранение доказательств, дублирование, доля противоречий, использование токенов","Большой контекст не означает полезный контекст",[615,616,617],"Генерация","Правильность, полнота, успех задачи, достоверность","Правильность сама по себе не доказывает обоснованность",[619,620,621],"Атрибуция доказательств","Точность цитирования, покрытие цитирования, подтверждение утверждений","Количество цитат — это не качество доказательств",[623,624,625],"Применимость","Актуальность, точность замещения, соответствие версии\u002Fюрисдикции","Релевантные доказательства не всегда применимы",{},{"id":628,"data":629,"type":42,"tunes":631},"h-correct-answer",{"text":630,"level":240},"Правильный ответ всё ещё может скрывать дефект RAG",{},{"id":633,"data":634,"type":218,"tunes":636},"p-correct-1",{"text":635},"Обратная проблема также важна. Система RAG может выдавать правильный ответ, когда поиск сломан. Модель может уже знать ответ из обучения, вывести его из слабых доказательств или правильно угадать. Если оценка смотрит только на итоговый ответ, система может казаться здоровой, пока вопрос не дойдёт до информации, которая существует только в приватном корпусе.",{},{"id":638,"data":639,"type":218,"tunes":641},"p-correct-2",{"text":640},"Это та же проблема надёжности, которая шире проявляется в агентных системах: правильность результата недостаточна, чтобы доказать надёжность пути выполнения. Для RAG трассировки должны сохранять как минимум поисковый запрос, набор кандидатов, ранжирование, итоговый контекст, ответ, цитаты, версию модели, версию корпуса\u002Fиндекса и соответствующие фильтры.",{},{"id":643,"data":644,"type":649,"tunes":650},"internal-reliability",{"url":645,"title":646,"excerpt":647,"ctaLabel":648},"https:\u002F\u002Fstajic.de\u002Fru\u002Fblog\u002Fai-agent-reliability-why-the-final-answer-is-not-enough","Надёжность ИИ-агентов: почему итогового ответа недостаточно","Правильный вывод не доказывает правильность рассуждений, безопасность выполнения или доверие к системе. Эта статья распространяет данный принцип с диагностики RAG на траектории агентов и операционные гарантии.","Читать связанную статью","referralArticle",{},{"id":652,"data":653,"type":42,"tunes":655},"h-hypotheses",{"text":654,"level":240},"Используйте конкурирующие гипотезы, а не любимое объяснение",{},{"id":657,"data":658,"type":218,"tunes":660},"p-hyp-1",{"text":659},"Если плохой ответ сразу становится «проблемой эмбеддингов», расследование уже предвзято. Более сильный метод отладки записывает конкурирующие гипотезы до изменения системы: отсутствующий источник, плохой перезапрос, низкая полнота поиска, плохой реранкинг, усечение контекста, конфликтующие версии, сбой генерации, сбой цитирования или устаревшие доказательства.",{},{"id":662,"data":663,"type":218,"tunes":665},"p-hyp-2",{"text":664},"Затем выберите тест, который разделит эти гипотезы. Это эффективнее, чем собирать больше примеров, подтверждающих первое объяснение. Тот же принцип применим к техническому рассуждению с помощью ИИ в целом: полезный диагноз — тот, который выдерживает различающие тесты, а не тот, который просто звучит правдоподобно.",{},{"id":667,"data":668,"type":649,"tunes":673},"internal-reasoning",{"url":669,"title":670,"excerpt":671,"ctaLabel":672},"https:\u002F\u002Fstajic.de\u002Fru\u002Fblog\u002Ffrom-research-protocol-to-a-general-ai-reasoning-framework","От исследовательского протокола к общей структуре рассуждений ИИ","Независимый от предметной области метод рассуждения для отделения доказательств от предположений, проверки конкурирующих гипотез и использования предметно-специфичных валидаторов.","Читать структуру рассуждений",{},{"id":675,"data":676,"type":42,"tunes":678},"h-change",{"text":677,"level":240},"Что изменило бы этот ответ?",{},{"id":680,"data":681,"type":218,"tunes":683},"p-change-1",{"text":682},"Точные диагностические слои меняются в зависимости от архитектуры. Простое приложение RAG с одним документом может не иметь перезапроса, реранкера или слоя цитирования. Агентная система поиска может добавлять планирование, множественные поиски, выбор инструментов, память, разрешения и итеративный сбор доказательств. Поиск в структурированной базе данных может вообще не использовать чанки или эмбеддинги.",{},{"id":685,"data":686,"type":218,"tunes":688},"p-change-2",{"text":687},"Основной метод остаётся неизменным: определить компоненты, которые могут независимо изменить результат, построить контролируемые тесты, заменяющие неопределённые компоненты на заведомо исправные входные данные, и измерить каждый компонент с помощью доказательств, соответствующих этому слою.",{},{"id":690,"data":691,"type":42,"tunes":693},"h-limitations",{"text":692,"level":240},"Ограничения",{},{"id":695,"data":696,"type":218,"tunes":698},"p-limit-1",{"text":697},"Реальные сбои часто связаны. Слабый запрос может снизить полноту, что меняет реранкинг, что меняет контекст, что увеличивает вариативность генерации. Тест с оракульным контекстом — это диагностический ярлык, а не доказательство того, что ответственен только один компонент. Наборы данных для оценки также могут быть нерепрезентативными, а оценщики на основе моделей могут вносить собственные ошибки.",{},{"id":700,"data":701,"type":218,"tunes":703},"p-limit-2",{"text":702},"Поэтому предлагаемый стек лучше всего использовать как структуру расследования: логировать конвейер, изолировать переменные, воспроизводить сбои, проверять конкурирующие объяснения и сохранять сквозную оценку после исправлений на уровне слоёв.",{},{"id":705,"data":706,"type":42,"tunes":708},"h-conclusion",{"text":707,"level":240},"Заключение",{},{"id":710,"data":711,"type":218,"tunes":713},"p-conclusion-1",{"text":712},"«RAG не сработал» должно быть началом расследования, а не выводом. Полезный диагноз определяет, не хватало ли системе доказательств, искала ли она неправильно, не смогла ли их извлечь, плохо ли их ранжировала, собрала ли непригодный контекст, сгенерировала ли неправильно, плохо ли атрибутировала утверждения или применила доказательства за пределами их границы применимости.",{},{"id":715,"data":716,"type":218,"tunes":718},"p-conclusion-2",{"text":717},"Практическое правило простое: заменяйте неопределённость контролируемыми доказательствами слой за слоем. Начните с теста с оракульным контекстом. Отделите оценку только поиска от оценки генерации. Сохраняйте полную трассировку. Затем исправьте компонент, который действительно дал сбой, вместо настройки всего стека RAG по интуиции.",{},{"id":720,"data":721,"type":42,"tunes":723},"h-faq",{"text":722,"level":240},"Часто задаваемые вопросы",{},{"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","Дайте модели небольшой набор заведомо правильных доказательств вручную. Если ответ становится правильным, исследуйте покрытие источников, построение запроса, поиск, ранжирование и сборку контекста. Если модель всё ещё даёт сбой при достаточных доказательствах, поиск не является основной проблемой.","Как понять, что дало сбой: поиск RAG или LLM?",{"id":733,"answer":734,"question":735},"faq2","Да. Релевантный фрагмент может быть ранжирован слишком низко, усечён, отделён от исключения, смешан с конфликтующими доказательствами, подавлен нерелевантным контекстом или неправильно использован генератором.","Может ли RAG дать сбой, даже если правильный документ был извлечён?",{"id":737,"answer":738,"question":739},"faq3","Нет. Модель может дать правильный ответ, несмотря на слабый поиск, полагаясь на предварительные знания модели или случайность. Оценивайте поиск и подтверждение доказательствами отдельно от правильности итогового ответа.","Достаточно ли правильности ответа для оценки системы RAG?",{"id":741,"answer":742,"question":743},"faq4","Как минимум логируйте запрос пользователя, преобразованный поисковый запрос, фильтры, документы-кандидаты и их ранги, итоговый выбранный контекст, версию модели и промпта, ответ, цитаты, версию корпуса\u002Fиндекса, а также метаданные о времени или версии, относящиеся к актуальности.","Что следует логировать при отладке RAG?",{"id":745,"answer":746,"question":747},"faq5","Не надёжно. Больший набор кандидатов или контекста может улучшить полноту, но также может добавить шум, противоречия, дубликаты и перегрузку контекста. Проверьте, не отсутствуют ли релевантные доказательства, прежде чем увеличивать top-k.","Обычно ли увеличение top-k исправляет RAG?","Диагностика сбоев RAG",{},{"id":751,"data":752,"type":42,"tunes":754},"h-glossary",{"text":753,"level":240},"Глоссарий",{},{"id":756,"data":757,"type":756,"tunes":781},"glossary",{"title":758,"entries":759},"Ключевые диагностические термины",[760,763,766,769,773,777],{"term":464,"anchor":761,"definition":762},"oracle-context-test","Контролируемый тест, в котором генератору напрямую дают заведомо достаточные доказательства, чтобы определить, находится ли доминирующий сбой выше по потоку от генерации.",{"term":603,"anchor":764,"definition":765},"candidate-retrieval","Этап, на котором выбирается начальный набор потенциально релевантных документов, чанков, записей или фрагментов до окончательного ранжирования или сборки контекста.",{"term":611,"anchor":767,"definition":768},"context-assembly","Процесс преобразования извлечённых доказательств в фактический вход модели, включая порядок, усечение, дедупликацию, форматирование и решения о бюджете токенов.",{"term":770,"anchor":771,"definition":772},"Верность","faithfulness","Степень, в которой сгенерированные утверждения остаются подтверждёнными извлечёнными или предоставленными доказательствами, а не вводят неподтверждённое содержание.",{"term":774,"anchor":775,"definition":776},"Покрытие контекста","context-coverage","Ориентированная на поиск мера того, покрывают ли выбранные доказательства информацию, необходимую для ответа на вопрос.",{"term":778,"anchor":779,"definition":780},"Граница применимости","validity-boundary","Условия, при которых утверждение или ответ остаётся применимым, например время, версия, юрисдикция, состояние, популяция, разрешения или допущения об источнике.",{},{"id":783,"data":784,"type":42,"tunes":786},"h-sources",{"text":785,"level":240},"Первоисточники и дополнительное чтение",{},{"id":788,"data":789,"type":795,"tunes":796},"src-openai-rag",{"link":790,"meta":791},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Foptimizing-llm-accuracy",{"image":792,"title":793,"description":794},{"url":455},"OpenAI — Оптимизация точности LLM","Рекомендации OpenAI по разделению сбоев поиска и сбоев LLM в приложениях RAG.","linkTool",{},{"id":798,"data":799,"type":795,"tunes":805},"src-openai-evals",{"link":800,"meta":801},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fevaluation-best-practices",{"image":802,"title":803,"description":804},{"url":455},"OpenAI — Лучшие практики оценки","Руководство по структурированной оценке для вариативных ИИ-систем и проектированию тестов, ориентированных на продакшен.",{},{"id":807,"data":808,"type":795,"tunes":814},"src-aws-rag",{"link":809,"meta":810},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fknowledge-base-evaluation-metrics.html",{"image":811,"title":812,"description":813},{"url":455},"Amazon Bedrock — Метрики оценки RAG","Документация, разделяющая метрики только поиска и метрики поиска с генерацией, включая релевантность контекста, покрытие, достоверность и метрики цитирования.",{},{"id":816,"data":817,"type":795,"tunes":823},"src-anthropic-evals",{"link":818,"meta":819},"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fdemystifying-evals-for-ai-agents",{"image":820,"title":821,"description":822},{"url":455},"Anthropic — Демистификация оценок для ИИ-агентов","Практическое руководство по оценке задач, испытаний, оценщиков, трассировок, регрессий и поведения в продакшене.",{},{"id":825,"data":826,"type":795,"tunes":832},"src-google-rag",{"link":827,"meta":828},"https:\u002F\u002Fcloud.google.com\u002Fuse-cases\u002Fretrieval-augmented-generation",{"image":829,"title":830,"description":831},{"url":455},"Google Cloud — Генерация с дополненной выборкой","Обзор архитектуры RAG и важности релевантной выборки и обоснованной генерации.",{},"2.31.6","Когда ответ RAG неверен, обвинять поиск или модель — слишком расплывчато. Этот диагностический метод изолирует покрытие источников, построение запроса, поиск, ранжирование, сборку контекста, генерацию, атрибуцию доказательств и актуальность — так что фактический сбой можно воспроизвести и исправить.","\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":842,"de":843,"sr":844,"es":845,"fr":846,"it":847,"ru":848,"zh":849},"\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",[851,855,859],{"id":852,"name":853,"slug":854},58,"Оценка и гейты качества","evaluation",{"id":856,"name":857,"slug":858},89,"Стенд оценки","evaluation-harness",{"id":860,"name":861,"slug":862},85,"Гейты качества","quality-gates",{"id":864,"login":865,"email":866,"displayName":867},"20","rooth8233","aleksandar@stajic.de","Aleksandar Stajić",[869,1384],{"lang":870,"title":871,"content":872,"contentJson":873,"excerpt":1383},"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":874,"blocks":875,"version":833},1790369097340,[876,881,885,890,895,899,903,907,911,915,955,959,963,967,972,976,980,984,988,992,996,1000,1004,1008,1012,1016,1020,1024,1028,1032,1036,1040,1044,1048,1052,1056,1060,1064,1085,1090,1094,1123,1127,1131,1135,1139,1183,1187,1222,1226,1230,1234,1241,1245,1249,1253,1260,1264,1268,1272,1276,1280,1284,1288,1292,1296,1300,1320,1324,1344,1348,1355,1362,1369,1376],{"id":877,"data":878,"type":241,"tunes":880},"8zyFXn5HD5",{"title":879,"maxLevel":239,"minLevel":240},"Contents",{},{"id":215,"data":882,"type":218,"tunes":884},{"text":883},"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":886,"type":226,"tunes":889},{"body":887,"title":888,"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":891,"type":226,"tunes":894},{"body":892,"title":893,"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":896,"type":42,"tunes":898},{"text":897,"level":240},"Why “RAG failed” is not a diagnosis",{},{"id":249,"data":900,"type":218,"tunes":902},{"text":901},"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":904,"type":218,"tunes":906},{"text":905},"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":908,"type":218,"tunes":910},{"text":909},"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":912,"type":42,"tunes":914},{"text":913,"level":240},"The RAG Failure Stack",{},{"id":269,"data":916,"type":308,"tunes":954},{"content":917,"stretched":43,"withHeadings":14},[918,922,926,930,934,938,942,946,950],[919,920,921],"Layer","Question","Typical failure",[923,924,925],"1. Source coverage","Does the required evidence exist in an allowed authoritative source?","The corpus cannot answer the question at all",[927,928,929],"2. Query construction","Did the system search for the right thing?","Intent, entities, filters, language, or time constraints are lost",[931,932,933],"3. Candidate retrieval","Did the relevant evidence enter the candidate set?","Low recall; the right chunk is never retrieved",[935,936,937],"4. Ranking &amp; filtering","Did the right evidence survive and rank high enough?","Relevant evidence is buried, filtered out, or outranked by superficially similar text",[939,940,941],"5. Context assembly","Did the model receive usable evidence?","Truncation, bad chunk boundaries, duplicates, conflicting passages, or context overload",[943,944,945],"6. Generation","Did the model use the supplied evidence correctly?","Unsupported inference, instruction failure, reasoning error, or refusal mismatch",[947,948,949],"7. Evidence attribution","Can the answer be traced to the evidence it claims to use?","Missing, weak, or incorrect citations; claims exceed retrieved support",[951,952,953],"8. Validity &amp; freshness","Is the evidence still valid for this question now?","Correct historical evidence is reused outside its valid time, version, jurisdiction, or state",{},{"id":311,"data":956,"type":42,"tunes":958},{"text":957,"level":239},"Layer 1 — Source coverage: can the system answer this at all?",{},{"id":316,"data":960,"type":218,"tunes":962},{"text":961},"Before tuning embeddings, rerankers, or prompts, verify that the answer exists in the knowledge space the system is allowed to use. This sounds obvious, but many RAG failures are actually corpus failures. The requested fact may be absent, hidden in an unindexed attachment, available only in a newer document, stored in a system outside the RAG corpus, or blocked by permissions.",{},{"id":321,"data":964,"type":218,"tunes":966},{"text":965},"A retrieval metric cannot recover information that was never indexed. A larger top-k cannot retrieve a document the pipeline does not contain. If the source coverage test fails, the correct fix is ingestion, source selection, permissions, or an explicit “not answerable from available evidence” behaviour.",{},{"id":326,"data":968,"type":226,"tunes":971},{"body":969,"title":970,"variant":330},"Teams often tune retrieval against questions that the corpus cannot actually answer. This can make the retriever better at finding related text while leaving the underlying information gap untouched.","Failure pattern",{},{"id":333,"data":973,"type":42,"tunes":975},{"text":974,"level":239},"Layer 2 — Query construction: did the system ask the corpus the right question?",{},{"id":338,"data":977,"type":218,"tunes":979},{"text":978},"The user query is not always the retrieval query. Production systems rewrite questions, resolve pronouns, extract entities, translate languages, add metadata constraints, split complex questions, or generate multiple searches. Every transformation can improve retrieval, but every transformation can also destroy information.",{},{"id":343,"data":981,"type":218,"tunes":983},{"text":982},"A request such as “Does the policy still apply to contractors in Germany after the September update?” contains at least an entity, a population, a jurisdiction, and a time boundary. A rewritten query that becomes “contractor policy” may retrieve semantically related text while losing the variables that decide whether the answer is valid.",{},{"id":348,"data":985,"type":42,"tunes":987},{"text":986,"level":239},"Layer 3 — Candidate retrieval: did the relevant evidence enter the set?",{},{"id":353,"data":989,"type":218,"tunes":991},{"text":990},"Candidate retrieval is primarily a recall problem. The diagnostic question is not yet whether the best result ranked first; it is whether relevant evidence appeared anywhere in the candidate pool. If the known correct source does not appear, investigate indexing, chunking, embeddings, lexical matching, metadata, hybrid search, language handling, synonyms, and query expansion.",{},{"id":358,"data":993,"type":218,"tunes":995},{"text":994},"This is where retrieval-only evaluation is valuable. AWS exposes context relevance and context coverage for retrieve-only RAG evaluation. The important production habit is to evaluate retrieval before generation so that a polished final answer cannot hide a weak candidate set.",{},{"id":363,"data":997,"type":42,"tunes":999},{"text":998,"level":239},"Layer 4 — Ranking and filtering: was the right evidence discarded or buried?",{},{"id":368,"data":1001,"type":218,"tunes":1003},{"text":1002},"A system can have good recall and still fail because the relevant evidence ranks below noisy but semantically similar material. Rerankers, recency boosts, authority weights, language preferences, tenant filters, access controls, product status filters, and deduplication all change what survives into the final context.",{},{"id":373,"data":1005,"type":218,"tunes":1007},{"text":1006},"Debugging should therefore preserve the full candidate list, not only the final top-k. If the gold evidence was retrieved at rank 18 and a reranker removed it, the fix is not the same as a retrieval miss.",{},{"id":378,"data":1009,"type":42,"tunes":1011},{"text":1010,"level":239},"Layer 5 — Context assembly: did useful evidence become usable context?",{},{"id":383,"data":1013,"type":218,"tunes":1015},{"text":1014},"Retrieval success does not guarantee context success. Relevant chunks can be truncated, separated from their qualifiers, duplicated until they dominate the prompt, mixed with contradictory versions, or surrounded by enough irrelevant text that the decisive passage loses salience.",{},{"id":388,"data":1017,"type":218,"tunes":1019},{"text":1018},"Chunk boundaries are especially important. A sentence may contain the rule while the following sentence contains the exception. If they are indexed separately and only the first is retrieved, the retriever can appear relevant while the assembled context becomes misleading.",{},{"id":393,"data":1021,"type":42,"tunes":1023},{"text":1022,"level":239},"Layer 6 — Generation: can the model use correct evidence correctly?",{},{"id":398,"data":1025,"type":218,"tunes":1027},{"text":1026},"Once the system has demonstrably supplied sufficient evidence, generation becomes independently testable. The model may overgeneralize, combine incompatible passages, ignore a negative statement, fail to follow the requested answer format, invent a bridge between facts, or answer from parametric memory instead of the retrieved evidence.",{},{"id":403,"data":1029,"type":218,"tunes":1031},{"text":1030},"This is why end-to-end correctness alone is insufficient for diagnosis. OpenAI recommends evaluation as a structured way to understand application behaviour, while Anthropic's agent-evaluation guidance emphasizes multiple trials, graders, traces, and realistic failure cases. For RAG, the generator should be tested both with normal retrieval and with controlled gold context.",{},{"id":408,"data":1033,"type":42,"tunes":1035},{"text":1034,"level":239},"Layer 7 — Evidence attribution: is the answer actually supported?",{},{"id":413,"data":1037,"type":218,"tunes":1039},{"text":1038},"A plausible answer with citations can still be weakly grounded. The cited document may be relevant to the topic but not support the specific claim. One sentence may be supported while another is inferred. A citation may point to a source that contradicts the answer once its conditions are read.",{},{"id":418,"data":1041,"type":218,"tunes":1043},{"text":1042},"Citation evaluation therefore belongs after generation. AWS distinguishes citation precision from citation coverage: whether cited passages are correctly cited and whether the answer is sufficiently supported by citations. In production, claim-level support is more useful than treating the presence of any citation as evidence quality.",{},{"id":423,"data":1045,"type":42,"tunes":1047},{"text":1046,"level":239},"Layer 8 — Validity and freshness: was the evidence correct for this version of reality?",{},{"id":428,"data":1049,"type":218,"tunes":1051},{"text":1050},"RAG can retrieve a perfectly authentic, highly relevant, faithfully quoted source and still produce a wrong answer if the source is no longer valid for the current question. Policies change. APIs are deprecated. prices move. software behaviour changes between versions. product inventory changes. permissions change. game patches change mechanics.",{},{"id":433,"data":1053,"type":218,"tunes":1055},{"text":1054},"This is a separate failure class from hallucination. The evidence is real; its applicability is wrong. A robust system therefore needs timestamps, version or jurisdiction metadata where relevant, source authority, supersession rules, and an explicit mechanism for deciding when older evidence must be restricted or abandoned.",{},{"id":438,"data":1057,"type":42,"tunes":1059},{"text":1058,"level":240},"The fastest isolation method: the oracle-context test",{},{"id":443,"data":1061,"type":218,"tunes":1063},{"text":1062},"The most useful first split is simple: manually provide the generator with a small set of evidence that you know is sufficient to answer the question. Keep the task and expected answer unchanged.",{},{"id":448,"data":1065,"type":475,"tunes":1084},{"rows":1066,"title":1076,"layout":308,"columns":1077},[1067,1070,1073],{"id":452,"label":1068,"values":1069},"Answer becomes correct",[455,455,455],{"id":457,"label":1071,"values":1072},"Answer remains wrong",[455,455,455],{"id":461,"label":1074,"values":1075},"Answer improves but remains incomplete",[455,455,455],"Oracle-context test",[1078,1080,1082],{"id":467,"label":1079},"Result",{"id":470,"label":1081},"Likely interpretation",{"id":473,"label":1083},"Next diagnostic step",{},{"id":478,"data":1086,"type":226,"tunes":1089},{"body":1087,"title":1088,"variant":482},"The oracle-context test removes most of the retrieval pipeline from the experiment. It does not prove that generation is perfect, but it gives you a fast counterfactual: \u003Cstrong>what would the model do if retrieval had already succeeded?\u003C\u002Fstrong>","Why this test is powerful",{},{"id":485,"data":1091,"type":42,"tunes":1093},{"text":1092,"level":240},"A production diagnostic sequence",{},{"id":490,"data":1095,"type":519,"tunes":1122},{"steps":1096,"title":1121,"orientation":518},[1097,1100,1103,1106,1109,1112,1115,1118],{"label":1098,"description":1099},"1. Define the expected claim","Write the expected answer, allowed uncertainty, and the evidence that would justify it.",{"label":1101,"description":1102},"2. Verify source coverage","Confirm that authoritative and permitted evidence exists in the indexed or reachable source set.",{"label":1104,"description":1105},"3. Run the oracle-context test","Supply sufficient gold evidence directly to the generator and observe whether the answer becomes correct.",{"label":1107,"description":1108},"4. Inspect the retrieval query","Check rewrites, entities, filters, language, time constraints, decomposition, and hidden assumptions.",{"label":1110,"description":1111},"5. Inspect candidates before reranking","Determine whether relevant evidence was retrieved at all and record its rank.",{"label":1113,"description":1114},"6. Inspect ranking and context assembly","Check reranking, metadata filters, truncation, chunk boundaries, duplicates, conflicts, and top-k composition.",{"label":1116,"description":1117},"7. Grade generation and citations separately","Measure answer correctness, completeness, faithfulness, and claim-level evidence support.",{"label":1119,"description":1120},"8. Test validity boundaries","Check whether version, date, state, jurisdiction, permissions, or superseding evidence changes the answer.","Diagnose the failure from evidence to answer",{},{"id":522,"data":1124,"type":42,"tunes":1126},{"text":1125,"level":240},"Do not change three layers at once",{},{"id":527,"data":1128,"type":218,"tunes":1130},{"text":1129},"A common debugging mistake is to change embeddings, chunk sizes, top-k, prompts, and the model in one iteration. If the score improves, you do not know why. If it gets worse, you do not know which change caused the regression.",{},{"id":532,"data":1132,"type":218,"tunes":1134},{"text":1133},"Treat RAG debugging like experimental diagnosis: hold as much of the pipeline constant as possible and replace one uncertain component with a controlled input. Gold documents isolate retrieval. Gold chunks isolate chunk selection. Fixed context isolates generation. A fixed model isolates retrieval changes. A fixed corpus isolates ingestion and indexing changes.",{},{"id":537,"data":1136,"type":42,"tunes":1138},{"text":1137,"level":240},"A failure matrix for common RAG symptoms",{},{"id":542,"data":1140,"type":308,"tunes":1182},{"content":1141,"stretched":43,"withHeadings":14},[1142,1146,1150,1154,1158,1162,1166,1170,1174,1178],[1143,1144,1145],"Symptom","Most likely layers to test first","Discriminating test",[1147,1148,1149],"No relevant source appears","Source coverage → Query → Candidate retrieval","Search the corpus manually, then inspect rewritten query and unfiltered candidates",[1151,1152,1153],"Relevant source appears but answer is wrong","Context assembly → Generation","Oracle-context test with the same source reduced to decisive passages",[1155,1156,1157],"Answer is correct sometimes, wrong other times","Ranking → Context assembly → Generation variability","Repeat trials while logging retrieved set, rank, prompt context, and model output",[1159,1160,1161],"Answer cites the right document but overstates it","Generation → Evidence attribution → Validity","Grade each claim against the exact cited passage",[1163,1164,1165],"Old information keeps winning","Ranking → Validity\u002Ffreshness","Compare with recency\u002Fsupersession rules and inspect metadata",[1167,1168,1169],"Answer misses an exception","Chunking → Context assembly","Check whether rule and exception were split or truncated",[1171,1172,1173],"Adding more top-k makes quality worse","Ranking → Context overload","Ablate low-value chunks and compare with a minimal evidence set",[1175,1176,1177],"Changing the model fixes the answer","Generation, but not necessarily retrieval","Repeat with identical retrieved context across models",[1179,1180,1181],"Changing embeddings fixes the answer","Retrieval\u002Franking","Keep generator and context template constant while comparing candidate recall",{},{"id":587,"data":1184,"type":42,"tunes":1186},{"text":1185,"level":240},"Measure each layer with the metric it can actually influence",{},{"id":592,"data":1188,"type":308,"tunes":1221},{"content":1189,"stretched":43,"withHeadings":14},[1190,1193,1197,1201,1205,1209,1213,1217],[919,1191,1192],"Useful measurements","What not to infer",[1194,1195,1196],"Source coverage","Answerable-question rate, corpus coverage, ingestion completeness","Do not blame embeddings for missing source material",[1198,1199,1200],"Candidate retrieval","Recall@k, hit rate, context coverage","High recall does not prove ranking quality",[1202,1203,1204],"Ranking","MRR, NDCG, gold rank, precision@k","Good ranking does not prove the generator used the evidence",[1206,1207,1208],"Context assembly","Evidence retention, duplication, contradiction rate, token utilization","Large context does not mean useful context",[1210,1211,1212],"Generation","Correctness, completeness, task success, faithfulness","Correctness alone does not prove grounding",[1214,1215,1216],"Evidence attribution","Citation precision, citation coverage, claim support","A citation count is not evidence quality",[1218,1219,1220],"Validity","Freshness, supersession accuracy, version\u002Fjurisdiction match","Relevant evidence is not automatically applicable evidence",{},{"id":628,"data":1223,"type":42,"tunes":1225},{"text":1224,"level":240},"A correct answer can still hide a RAG defect",{},{"id":633,"data":1227,"type":218,"tunes":1229},{"text":1228},"The reverse problem also matters. A RAG system can produce the correct answer while retrieval is broken. The model may already know the answer from training, infer it from weak evidence, or guess correctly. If evaluation looks only at the final answer, the system can appear healthy until the question reaches information that exists only in the private corpus.",{},{"id":638,"data":1231,"type":218,"tunes":1233},{"text":1232},"This is the same reliability problem that appears in agent systems more broadly: outcome correctness is not enough to prove that the execution path was reliable. For RAG, traces should preserve at least the retrieval query, candidate set, ranking, final context, answer, citations, model version, corpus\u002Findex version, and relevant filters.",{},{"id":643,"data":1235,"type":649,"tunes":1240},{"url":1236,"title":1237,"excerpt":1238,"ctaLabel":1239},"https:\u002F\u002Fstajic.de\u002Fblog\u002Fai-agent-reliability-why-the-final-answer-is-not-enough","AI Agent Reliability: Why the Final Answer Is Not Enough","Correct output does not prove correct reasoning, safe execution, or a trustworthy system. This article extends that principle from RAG diagnosis to agent trajectories and operational assurance.","Read the related article",{},{"id":652,"data":1242,"type":42,"tunes":1244},{"text":1243,"level":240},"Use competing hypotheses, not a favourite explanation",{},{"id":657,"data":1246,"type":218,"tunes":1248},{"text":1247},"If a bad answer immediately becomes “an embedding problem,” the investigation is already biased. A stronger debugging method writes down competing hypotheses before changing the system: missing source, bad query rewrite, low retrieval recall, bad reranking, context truncation, conflicting versions, generation failure, citation failure, or stale evidence.",{},{"id":662,"data":1250,"type":218,"tunes":1252},{"text":1251},"Then choose a test that would separate those hypotheses. This is more efficient than collecting more examples that support the first explanation. The same principle applies to AI-assisted technical reasoning in general: a useful diagnosis is one that survives discriminating tests, not one that merely sounds plausible.",{},{"id":667,"data":1254,"type":649,"tunes":1259},{"url":1255,"title":1256,"excerpt":1257,"ctaLabel":1258},"https:\u002F\u002Fstajic.de\u002Fblog\u002Ffrom-research-protocol-to-a-general-ai-reasoning-framework","From Research Protocol to a General AI Reasoning Framework","A domain-independent reasoning method for separating evidence from assumptions, testing competing hypotheses and using domain-specific validators.","Read the reasoning framework",{},{"id":675,"data":1261,"type":42,"tunes":1263},{"text":1262,"level":240},"What would change this answer?",{},{"id":680,"data":1265,"type":218,"tunes":1267},{"text":1266},"The exact diagnostic layers change with architecture. A simple single-document RAG application may have no query rewriting, reranker, or citation layer. An agentic retrieval system may add planning, multiple searches, tool selection, memory, permissions, and iterative evidence gathering. A structured database lookup may not use chunks or embeddings at all.",{},{"id":685,"data":1269,"type":218,"tunes":1271},{"text":1270},"The core method still holds: identify the components that can independently change the result, construct controlled tests that replace uncertain components with known-good inputs, and measure each component using evidence appropriate to that layer.",{},{"id":690,"data":1273,"type":42,"tunes":1275},{"text":1274,"level":240},"Limitations",{},{"id":695,"data":1277,"type":218,"tunes":1279},{"text":1278},"Real failures are often coupled. A weak query can reduce recall, which changes reranking, which changes context, which increases generation variance. The oracle-context test is a diagnostic shortcut, not proof that one component is solely responsible. Evaluation datasets can also be unrepresentative, and model-based graders can introduce their own errors.",{},{"id":700,"data":1281,"type":218,"tunes":1283},{"text":1282},"The proposed stack is therefore best used as an investigation structure: log the pipeline, isolate variables, reproduce failures, test competing explanations, and keep end-to-end evaluation after layer-level fixes.",{},{"id":705,"data":1285,"type":42,"tunes":1287},{"text":1286,"level":240},"Conclusion",{},{"id":710,"data":1289,"type":218,"tunes":1291},{"text":1290},"“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":1293,"type":218,"tunes":1295},{"text":1294},"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":1297,"type":42,"tunes":1299},{"text":1298,"level":240},"FAQ",{},{"id":725,"data":1301,"type":725,"tunes":1319},{"items":1302,"title":1318},[1303,1306,1309,1312,1315],{"id":729,"answer":1304,"question":1305},"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":1307,"question":1308},"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":1310,"question":1311},"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":1313,"question":1314},"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":1316,"question":1317},"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":1321,"type":42,"tunes":1323},{"text":1322,"level":240},"Glossary",{},{"id":756,"data":1325,"type":756,"tunes":1343},{"title":1326,"entries":1327},"Key diagnostic terms",[1328,1330,1332,1334,1337,1340],{"term":1076,"anchor":761,"definition":1329},"A controlled test in which the generator is given known-sufficient evidence directly to determine whether the dominant failure is upstream of generation.",{"term":1198,"anchor":764,"definition":1331},"The stage that selects an initial set of potentially relevant documents, chunks, records, or passages before final ranking or context assembly.",{"term":1206,"anchor":767,"definition":1333},"The process of converting retrieved evidence into the actual model input, including ordering, truncation, deduplication, formatting, and token-budget decisions.",{"term":1335,"anchor":771,"definition":1336},"Faithfulness","The degree to which generated claims remain supported by the retrieved or supplied evidence rather than introducing unsupported content.",{"term":1338,"anchor":775,"definition":1339},"Context coverage","A retrieval-oriented measure of whether selected evidence covers the information needed to answer the question.",{"term":1341,"anchor":779,"definition":1342},"Validity boundary","The conditions under which a claim or answer remains applicable, such as time, version, jurisdiction, state, population, permissions, or source assumptions.",{},{"id":783,"data":1345,"type":42,"tunes":1347},{"text":1346,"level":240},"Primary sources and further reading",{},{"id":788,"data":1349,"type":795,"tunes":1354},{"link":790,"meta":1350},{"image":1351,"title":1352,"description":1353},{"url":455},"OpenAI — Optimizing LLM Accuracy","OpenAI guidance separating retrieval failures from LLM failures in RAG applications.",{},{"id":798,"data":1356,"type":795,"tunes":1361},{"link":800,"meta":1357},{"image":1358,"title":1359,"description":1360},{"url":455},"OpenAI — Evaluation Best Practices","Guidance on structured evaluation for variable AI systems and production-oriented test design.",{},{"id":807,"data":1363,"type":795,"tunes":1368},{"link":809,"meta":1364},{"image":1365,"title":1366,"description":1367},{"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":816,"data":1370,"type":795,"tunes":1375},{"link":818,"meta":1371},{"image":1372,"title":1373,"description":1374},{"url":455},"Anthropic — Demystifying Evals for AI Agents","Practical evaluation guidance on tasks, trials, graders, traces, regressions and production behaviour.",{},{"id":825,"data":1377,"type":795,"tunes":1382},{"link":827,"meta":1378},{"image":1379,"title":1380,"description":1381},{"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":1385,"excerpt":834},{"time":212,"blocks":1386,"version":833},[1387,1390,1393,1396,1399,1402,1405,1408,1411,1414,1427,1430,1433,1436,1439,1442,1445,1448,1451,1454,1457,1460,1463,1466,1469,1472,1475,1478,1481,1484,1487,1490,1493,1496,1499,1502,1505,1508,1522,1525,1528,1540,1543,1546,1549,1552,1566,1569,1581,1584,1587,1590,1593,1596,1599,1602,1605,1608,1611,1614,1617,1620,1623,1626,1629,1632,1635,1644,1647,1657,1660,1665,1670,1675,1680],{"id":215,"data":1388,"type":218,"tunes":1389},{"text":217},{},{"id":221,"data":1391,"type":226,"tunes":1392},{"body":223,"title":224,"variant":225},{},{"id":229,"data":1394,"type":226,"tunes":1395},{"body":231,"title":232,"variant":233},{},{"id":236,"data":1397,"type":241,"tunes":1398},{"title":238,"maxLevel":239,"minLevel":240},{},{"id":244,"data":1400,"type":42,"tunes":1401},{"text":246,"level":240},{},{"id":249,"data":1403,"type":218,"tunes":1404},{"text":251},{},{"id":254,"data":1406,"type":218,"tunes":1407},{"text":256},{},{"id":259,"data":1409,"type":218,"tunes":1410},{"text":261},{},{"id":264,"data":1412,"type":42,"tunes":1413},{"text":266,"level":240},{},{"id":269,"data":1415,"type":308,"tunes":1426},{"content":1416,"stretched":43,"withHeadings":14},[1417,1418,1419,1420,1421,1422,1423,1424,1425],[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":1428,"type":42,"tunes":1429},{"text":313,"level":239},{},{"id":316,"data":1431,"type":218,"tunes":1432},{"text":318},{},{"id":321,"data":1434,"type":218,"tunes":1435},{"text":323},{},{"id":326,"data":1437,"type":226,"tunes":1438},{"body":328,"title":329,"variant":330},{},{"id":333,"data":1440,"type":42,"tunes":1441},{"text":335,"level":239},{},{"id":338,"data":1443,"type":218,"tunes":1444},{"text":340},{},{"id":343,"data":1446,"type":218,"tunes":1447},{"text":345},{},{"id":348,"data":1449,"type":42,"tunes":1450},{"text":350,"level":239},{},{"id":353,"data":1452,"type":218,"tunes":1453},{"text":355},{},{"id":358,"data":1455,"type":218,"tunes":1456},{"text":360},{},{"id":363,"data":1458,"type":42,"tunes":1459},{"text":365,"level":239},{},{"id":368,"data":1461,"type":218,"tunes":1462},{"text":370},{},{"id":373,"data":1464,"type":218,"tunes":1465},{"text":375},{},{"id":378,"data":1467,"type":42,"tunes":1468},{"text":380,"level":239},{},{"id":383,"data":1470,"type":218,"tunes":1471},{"text":385},{},{"id":388,"data":1473,"type":218,"tunes":1474},{"text":390},{},{"id":393,"data":1476,"type":42,"tunes":1477},{"text":395,"level":239},{},{"id":398,"data":1479,"type":218,"tunes":1480},{"text":400},{},{"id":403,"data":1482,"type":218,"tunes":1483},{"text":405},{},{"id":408,"data":1485,"type":42,"tunes":1486},{"text":410,"level":239},{},{"id":413,"data":1488,"type":218,"tunes":1489},{"text":415},{},{"id":418,"data":1491,"type":218,"tunes":1492},{"text":420},{},{"id":423,"data":1494,"type":42,"tunes":1495},{"text":425,"level":239},{},{"id":428,"data":1497,"type":218,"tunes":1498},{"text":430},{},{"id":433,"data":1500,"type":218,"tunes":1501},{"text":435},{},{"id":438,"data":1503,"type":42,"tunes":1504},{"text":440,"level":240},{},{"id":443,"data":1506,"type":218,"tunes":1507},{"text":445},{},{"id":448,"data":1509,"type":475,"tunes":1521},{"rows":1510,"title":464,"layout":308,"columns":1517},[1511,1513,1515],{"id":452,"label":453,"values":1512},[455,455,455],{"id":457,"label":458,"values":1514},[455,455,455],{"id":461,"label":462,"values":1516},[455,455,455],[1518,1519,1520],{"id":467,"label":468},{"id":470,"label":471},{"id":473,"label":474},{},{"id":478,"data":1523,"type":226,"tunes":1524},{"body":480,"title":481,"variant":482},{},{"id":485,"data":1526,"type":42,"tunes":1527},{"text":487,"level":240},{},{"id":490,"data":1529,"type":519,"tunes":1539},{"steps":1530,"title":517,"orientation":518},[1531,1532,1533,1534,1535,1536,1537,1538],{"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":1541,"type":42,"tunes":1542},{"text":524,"level":240},{},{"id":527,"data":1544,"type":218,"tunes":1545},{"text":529},{},{"id":532,"data":1547,"type":218,"tunes":1548},{"text":534},{},{"id":537,"data":1550,"type":42,"tunes":1551},{"text":539,"level":240},{},{"id":542,"data":1553,"type":308,"tunes":1565},{"content":1554,"stretched":43,"withHeadings":14},[1555,1556,1557,1558,1559,1560,1561,1562,1563,1564],[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":1567,"type":42,"tunes":1568},{"text":589,"level":240},{},{"id":592,"data":1570,"type":308,"tunes":1580},{"content":1571,"stretched":43,"withHeadings":14},[1572,1573,1574,1575,1576,1577,1578,1579],[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":1582,"type":42,"tunes":1583},{"text":630,"level":240},{},{"id":633,"data":1585,"type":218,"tunes":1586},{"text":635},{},{"id":638,"data":1588,"type":218,"tunes":1589},{"text":640},{},{"id":643,"data":1591,"type":649,"tunes":1592},{"url":645,"title":646,"excerpt":647,"ctaLabel":648},{},{"id":652,"data":1594,"type":42,"tunes":1595},{"text":654,"level":240},{},{"id":657,"data":1597,"type":218,"tunes":1598},{"text":659},{},{"id":662,"data":1600,"type":218,"tunes":1601},{"text":664},{},{"id":667,"data":1603,"type":649,"tunes":1604},{"url":669,"title":670,"excerpt":671,"ctaLabel":672},{},{"id":675,"data":1606,"type":42,"tunes":1607},{"text":677,"level":240},{},{"id":680,"data":1609,"type":218,"tunes":1610},{"text":682},{},{"id":685,"data":1612,"type":218,"tunes":1613},{"text":687},{},{"id":690,"data":1615,"type":42,"tunes":1616},{"text":692,"level":240},{},{"id":695,"data":1618,"type":218,"tunes":1619},{"text":697},{},{"id":700,"data":1621,"type":218,"tunes":1622},{"text":702},{},{"id":705,"data":1624,"type":42,"tunes":1625},{"text":707,"level":240},{},{"id":710,"data":1627,"type":218,"tunes":1628},{"text":712},{},{"id":715,"data":1630,"type":218,"tunes":1631},{"text":717},{},{"id":720,"data":1633,"type":42,"tunes":1634},{"text":722,"level":240},{},{"id":725,"data":1636,"type":725,"tunes":1643},{"items":1637,"title":748},[1638,1639,1640,1641,1642],{"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":1645,"type":42,"tunes":1646},{"text":753,"level":240},{},{"id":756,"data":1648,"type":756,"tunes":1656},{"title":758,"entries":1649},[1650,1651,1652,1653,1654,1655],{"term":464,"anchor":761,"definition":762},{"term":603,"anchor":764,"definition":765},{"term":611,"anchor":767,"definition":768},{"term":770,"anchor":771,"definition":772},{"term":774,"anchor":775,"definition":776},{"term":778,"anchor":779,"definition":780},{},{"id":783,"data":1658,"type":42,"tunes":1659},{"text":785,"level":240},{},{"id":788,"data":1661,"type":795,"tunes":1664},{"link":790,"meta":1662},{"image":1663,"title":793,"description":794},{"url":455},{},{"id":798,"data":1666,"type":795,"tunes":1669},{"link":800,"meta":1667},{"image":1668,"title":803,"description":804},{"url":455},{},{"id":807,"data":1671,"type":795,"tunes":1674},{"link":809,"meta":1672},{"image":1673,"title":812,"description":813},{"url":455},{},{"id":816,"data":1676,"type":795,"tunes":1679},{"link":818,"meta":1677},{"image":1678,"title":821,"description":822},{"url":455},{},{"id":825,"data":1681,"type":795,"tunes":1684},{"link":827,"meta":1682},{"image":1683,"title":830,"description":831},{"url":455},{},"Post erfolgreich abgerufen",{"items":1687,"source":1743,"manualIds":1744,"manualMatchedIds":1745},[1688,1695,1702,1709,1716,1723,1729,1736],{"id":1689,"slug":1690,"title":1691,"excerpt":1692,"featuredImage":1693,"publishedAt":1694},"459","ollama-is-not-the-product-building-production-ready-open-llm-applications","Ollama — это не продукт: создание готовых к продакшену приложений на базе открытых LLM","Запустить локальную модель с Ollama просто. Создать готовое к продакшену Open-LLM-приложение сложнее: для этого требуются RAG, контроль доступа, абстракция провайдеров, оценка, логирование, дисциплина развертывания и контролируемый уровень приложения вокруг модели.","\u002Fuploads\u002F2026\u002F06\u002Follama-is-not-the-product-building-production-ready-open-llm-applications-1782679361640-h0usqf.webp","2026-06-28T16:39:00.000Z",{"id":1696,"slug":1697,"title":1698,"excerpt":1699,"featuredImage":1700,"publishedAt":1701},"468","ai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","Память ИИ-агента — это не RAG: как разграничить память, извлечение, состояние и контекст","Память агента, RAG, состояние и контекст часто используются так, будто они взаимозаменяемы. Это не так. Эта практическая архитектурная модель разделяет четыре уровня, показывает, где место каждого из них, и объясняет, что ломается, когда системы объединяют их в одно целое.","\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":1703,"slug":1704,"title":1705,"excerpt":1706,"featuredImage":1707,"publishedAt":1708},"364","tipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung","Освоение рабочего процесса SEO: Основные стратегии оптимизации для органического роста","Структурированный рабочий процесс SEO крайне важен для устойчивого органического роста. Изучите десять основополагающих стратегий, от исследования ключевых слов и технической оптимизации до качества контента и анализа производительности.","\u002Fuploads\u002F2026\u002F03\u002Ftipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung-1774866098131-hwkzrg.webp","2024-01-26T06:35:00.000Z",{"id":1710,"slug":1711,"title":1712,"excerpt":1713,"featuredImage":1714,"publishedAt":1715},"478","what-is-rag-the-simplest-explanation-of-how-it-works","Что такое RAG? Самое простое объяснение того, как это работает","RAG звучит сложно, но идея проста: прежде чем ИИ ответит, он сначала находит полезную информацию из источника знаний и передаёт эту информацию языковой модели. В этом руководстве объясняются RAG, LLM, состояние, память и инструменты с помощью одной простой ментальной модели.","\u002Fuploads\u002F2026\u002F09\u002Fwhat-is-rag-the-simplest-explanation-of-how-it-works-1790377492124-khjagt.webp","2026-09-25T19:03:00.000Z",{"id":1717,"slug":1718,"title":1719,"excerpt":1720,"featuredImage":1721,"publishedAt":1722},"460","ai-agent-reliability-why-the-final-answer-is-not-enough","Надёжность ИИ-агентов: почему финального ответа недостаточно","Правильный вывод не доказывает правильность рассуждений, безопасность выполнения или надежность системы.","\u002Fuploads\u002F2026\u002F09\u002Fai-agent-reliability-why-the-final-answer-is-not-enough-1788955466306-pl0qhz.webp","2026-09-09T04:01:00.000Z",{"id":1724,"slug":858,"title":1725,"excerpt":1726,"featuredImage":1727,"publishedAt":1728},"434","Исчерпывающее руководство по Evaluation Harness: освоение оценки производительности LLM","Это руководство содержит подробный обзор Evaluation Harness — важного фреймворка для строгой оценки возможностей больших языковых моделей (LLM) в корпоративных конвейерах LLMOps. Узнайте о настройке, лучших практиках и продвинутых методах для обеспечения надежного бенчмаркинга и оптимизации моделей.","\u002Fuploads\u002F2026\u002F04\u002Fevaluation-harness-1775466944495-4s0xv2.webp","2026-03-01T17:50:00.000Z",{"id":1730,"slug":1731,"title":1732,"excerpt":1733,"featuredImage":1734,"publishedAt":1735},"477","computer-use-agents-why-a-successful-demo-can-still-be-an-unreliable-system","Агенты для управления компьютером: почему успешная демонстрация всё ещё может быть ненадёжной системой","Агенты для управления компьютером теперь могут выполнять впечатляющие рабочие процессы в браузере и на рабочем столе, но один успешный запуск доказывает способность—а не надежность. В этой статье показано, как проверять повторяемость, устойчивость к условиям среды, управление на длинном горизонте, осведомленность о состоянии, верификацию результатов и безопасную обработку целей.","\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":1737,"slug":1738,"title":1739,"excerpt":1740,"featuredImage":1741,"publishedAt":1742},"475","managed-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose","Управляемая обвязка агента против self-hosted цикла агента: что вы приобретаете, что теряете","“Self-hosted агент” может означать совершенно разные архитектуры. Это руководство разделяет управляемую обвязку, self-hosted среду выполнения и полностью самостоятельно управляемый цикл агента — и показывает, какая граница контроля на самом деле нужна командам.","\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","fallback",[],[]]