В первой части я разбирал архитектуру AI-агента, выбор между RAG и GraphRAG на примере AI-юриста для техподдержки. Если пропустили – https://habr.com/ru/articles/975230/
Во второй части решил уделить внимание тому, как добиться нормального качества поиска и точности ответов. Чтобы AI-агент не остался в песочнице и не превратился в очередной эксперимент "мы попробовали, не взлетело".
Надеюсь мой опыт будет полезен и вы сэкономите себе деньги, нервы и время. А может быть и вовсе откажетесь от идеи создания агента — это тоже нормальный исход.
Я уже писал про чанки, RAGAS, бенчмарки и инструменты отслеживания качества. Сегодня остановимся детально на каждом артефакте, расскажу плюсы и минусы, и почему именно их я использовал для AI-юриста. Погнали
Какое качество считается хорошим
И так, начну с вопроса: а какое качество AI-агента считается хорошим? На что ориентироваться?
Тут конечно всё индивидуально. Вы сами определяете качество ответов и формируете так сказать "среднее значение попадания в правильный ответ". Назовем этот подход human eval, когда оценку ставит эксперт в этой области. Классический подход, он обязательно нужен в пайплайне для валидации. Но экспертами не запасёшься, да и человеческий фактор никто не отменял: один юрист поставит 8 из 10, другой 6 из 10 за тот же ответ.
В таких случаях на помощь приходят бенчмарки это готовые наборы вопросов с эталонными ответами, собранные экспертами. Вообще бенчмарков по разным направлениям – куча. Но мы же про RAG
Какие бенчмарки существуют:
RAGBench – большой универсальный бенчмарк на 100К примеров, покрывает разные домены от техподдержки до юридических вопросов. Хорош для общей оценки.
FRAMES – проверяет multi-hop вопросы, где нужно собрать информацию из 2-15 документов. Вопросы типа "Во сколько раз вторая по скорости птица в Америке быстрее самого быстрого человека в мире?"
BeIR – набор из 18 датасетов для оценки retrieval-части. Если хотите проверить именно поиск, а не генерацию.
RAGTruth – заточен на детекцию галлюцинаций. 18К примеров с разными типами вранья: явные ошибки, subtle конфликты с контекстом, выдуманные факты.
LegalBench-RAG – для юридического домена, где галлюцинация или неправильная ссылка на статью закона может иметь последствия.
Но нам такое не особо подходит. Почему? Потому что мы делаем AI-агентов чаще на своих внутренних регламентах. У нас свои правила, свои требования к ответам. Нам нужно собрать свой "бенчмарк".
Как собрать свой бенчмарк?
Распишу все на примере AI–Юриста, подходит и к другим доменам и направлениям алгоритм один и тот же.
Выгружаем самые частотные вопросы из поддержки.
В нашем случае поддержка через Telegram и другие онлайн-каналы. Разные ситуации, круто если будет контекст нестандартный.
Набираем около 150+ кейсов. Эти вопросы отдаём нашим юристам, в вашем случае это могут быть эксперты, для которых вы делаете AI. Просите ответить на все вопросы руками.
На выходе получаем готовый бенчмарк с эталонными ответами. С этими ответами и будем сравнивать ответы нашего AI агента
Если набрать только простые, то бенчмарк покажет красивые цифры, но в бою агент будет сыпаться.
Три этапа проверить качество
Так бенчмарк есть. Теперь нужно прогнать через него агента и получить цифры. Разберем 3 варианта
Этап 1: LangSmith
Самый простой подход взять и прогнать через LangSmith.
Создаём эксперимент в LangSmith, загружаем датасет в CSV или JSON. Подключаемся к API нашего агента и прогоняем весь список. Можно это сделать и в коде кому как удобно.

LangSmith покажет какие вопросы агент завалил, можно кликнуть и увидеть весь trace — какие чанки нашлись, какой промпт ушёл в LLM, что вернулось.
Этап 2: Через готовый бенчмарки проверки качества RAG
Второй — более технический. Тут на помощь приходит готовая библиотека RAGAS.
RAGAS (Retrieval Augmented Generation Assessment) – это open-source фреймворк специально для оценки RAG-систем. Создан командой Exploding Gradients, рекомендован OpenAI.
Что умеет измерять:
Faithfulness (верность) не врёт ли модель. Берёт ответ агента и найденные чанки, проверяет: все ли факты в ответе реально есть в контексте? Если агент выдумал что-то от себя faithfulness падает. Score от 0 до 1.
Answer Relevancy (релевантность) отвечает ли агент на вопрос или льёт воду. Бывает что агент находит релевантный контекст, но отвечает не на тот вопрос, который задали.
Context Precision насколько найденные чанки релевантны. Если из 5 чанков только 2 по делу, а остальные мусор precision низкий. Измеряет signal-to-noise ratio.
Context Recall не упустили ли важное. Может в базе есть идеальный чанк с ответом, но поиск его не нашёл. Эта метрика требует оценки от экспертов.
Есть еще и другие альтернативы RAGAS:
DeepEval похожий open-source фреймворк. Умеет ещё и adversarial testing – проверять на prompt injection атаки. Есть облачная платформа Confident AI для мониторинга.
ARES стресс-тестирует retrieval системы с adversarial примерами. Хорош если хотите понять где агент ломается.
Galileo Luna – специализированная модель для детекции галлюцинаций. Работает быстрее и дешевле чем GPT-4 в роли судьи. На 97% дешевле и на 96% быстрее по их бенчмаркам.
Этап 3: LLM-as-a-Judge
Третий подход берём более умную модель и просим её сравнить ответ нашего агента с эталонным.
Как это работает?
Отправляем запрос в LLM с контекстом, вопросом и двумя ответами — эталонным от эксперта и от нашего агента. Просим оценить и получаем score
Пример промпта
You are an expert data labeler evaluating model outputs for correctness. Your task is to assign a score based on the following rubric:
<Rubric>
A correct answer:
- Provides accurate and complete information
- Contains no factual errors
- Addresses all parts of the question
- Is logically consistent
- Uses precise and accurate terminology
When scoring, you should penalize:
- Factual errors or inaccuracies
- Incomplete or partial answers
- Misleading or ambiguous statements
- Incorrect terminology
- Logical inconsistencies
- Missing key information
</Rubric>
<Instructions>
- Carefully read the input and output
- Check for factual accuracy and completeness
- Focus on correctness of information rather than style or verbosity
</Instructions>
<Reminder>
The goal is to evaluate factual correctness and completeness of the response.
</Reminder>
<input>
{{inputs}}
</input>
<output>
{{outputs}}
</output>
Use the reference outputs below to help you evaluate the correctness of the response:
<reference_outputs>
{{reference_outputs}}
</reference_outputs>
на быть умнее чем модель агента. Если агент на GPT-4 — судья GPT-4 Turbo или Claude Opus. Если агент на Qwen 7B — судья GPT-4.
Важно: модель-судья должна быть умнее чем модель агента. Если агент на GPT-4 – судья Claude Opus 4.5 аналогичные модели. Если агент на Qwen 7B –судья GPT-5.
Что делать если качество ниже ожидаемого
С подходами к оценке разобрались. Теперь давайте разберём, а что делать если качество ниже ожидаемого? Можно ли как-то поправить или нужно смириться?
Сначала определим что такое "ниже ожидаемого". 70%? 60%? 90%?
По моему опыту:
Ниже 70% — агент бесполезен
70-80% — можно использовать с оговорками
80-88% — рабочий агент
Выше 88% — отлично, мне на практике удавалось добираться до 91%
Давайте разберемся что влияет на качество
Параметры поиска: top-k, threshold
Промпт
Инференс LLM: размер контекстного окна
Тип базы знаний: GraphRAG или просто векторный поиск
Чанки: размер чанков
Документы: насколько корректно они были распаршены
Давайте разберём каждый.....
Тут я понял, что статья получается очень большой не кидайте в меня камни, я каждый из параметров разберу и напишу отдельно, там есть что сказать. В этой статье я поделюсь чек-листом – я думаю это будет полезно
Чек-лист: что проверить если качество низкое
Поиск и retrieval:
Проверить top-k: попробовать 3, 5, 7, 10 – замерить качество на каждом
Проверить threshold: не слишком ли высокий/низкий
Посмотреть какие чанки реально находятся на проблемных вопросах
Если чанки нерелевантны — добавить reranker
Чанкинг:
Проверить размер чанков: 600-1000 токенов оптимально
Проверить overlap: 10-15% от размера чанка
Посмотреть как порезались проблемные документы
Промпт:
Есть ли системный промпт с ролью и инструкциями
Указано ли что делать если ответа нет в контексте
Задан ли формат ответа
Не слишком ли длинный промпт
Контекст и LLM:
Сколько токенов реально уходит в модель
Хватает ли контекстного окна
База знаний:
Все ли документы проиндексированы
Корректно ли распарсились таблицы и схемы
Нет ли дублей
Актуальна ли информация
Если качество ниже 80% не спешите переделывать архитектуру. Идите по чек-листу сверху вниз: сначала чанки и промпт (бесплатно, 2-3 часа), потом reranker. У меня 70% проблем решались на этих этапах. И только если не помогло смотрите в сторону смены модели или перехода на KAG архитектуру.
Статью я решил закончить на этой прекрасной ноте ❤️. Спасибо что потратили время и прочитали.Полезные ссылки
Telegram канал: "AI-заметки продакта" рассказываю про лайфхаки, полезные инструменты, а еще каждую неделю выходит дайджест с самыми важными новостями в мире AI без инфошума, только все самое важное.
Телеграм канал