Урок 13 · Блок 2: ассистент по базе знаний · ~12 минут

Честная генерация: цитаты и право сказать «не знаю»

⌂ Все уроки · Актуально на 10 июня 2026 · источники — в тексте · термины — в глоссарии · ← урок 12
Главная мысль урока: даже при идеальном поиске модель может «приукрасить» — добавить от себя то, чего в найденных документах нет. Для бизнеса это самый опасный сценарий: ассистент школы, выдумавший условия тарифа, — это возвраты и скандалы. Три инструмента защиты: три контрольных вопроса к каждому ответу, цитаты из коробки и явное право говорить «не знаю».

Три вопроса к каждому ответу

Практик Джейсон Лю свёл всю оценку RAG-ответов к отношениям между тремя вещами: Вопросом, Найденными документами и Ответом. Для заказчика достаточно трёх контрольных вопросов: (Jason Liu, There Are Only 6 RAG Evals, май 2025)

① Нашли ли нужное?

Качество поиска — это прошлый урок: золотой набор и recall. Если здесь провал — дальше можно не смотреть.

② Ответ опирается на найденное?

Это верность источникам (faithfulness). Провал выглядит так: документы нашлись правильные, а модель добавила «от себя» — даты, цифры, условия, которых в документах нет. Ответ звучит уверенно и красиво. Это и есть галлюцинация в RAG.

③ Ответ отвечает на вопрос?

Релевантность ответа. Бывает: всё нашли, ничего не выдумали — но ответили не на то, что спрашивали («какой тариф?» → лекция об истории тарифной сетки).

Зачем разделять? Потому что лечатся они в разных местах: ① — поиск и база, ② — настройка генерации (этот урок), ③ — промпт и формат ответа. Сказать разработчику «ответы плохие» — бесполезно; сказать «провал по верности источникам» — это диагноз.

Цитаты из коробки: Citations

Раньше честность ответов выпрашивали промптом: «обязательно указывай источники!» — модель указывала… и иногда выдумывала сами источники. Сейчас это решено на уровне платформы: у Anthropic есть Citations — режим, в котором каждое утверждение ответа автоматически привязывается к конкретным предложениям из переданных документов. (дока Citations; разбор Саймона Уиллисона)

Цифры внедривших: у финансового ассистента Endex выдуманные ссылки на источники упали с 10% до нуля; юридический CoCounsel (Thomson Reuters) выбросил собственную самодельную систему цитирования. Точность ссылок — до +15% против промпт-решений. И приятная мелочь: процитированный текст не тарифицируется как сгенерированные токены.

Для вас это значит: «ассистент с честными ссылками на документы» — больше не отдельный подпроект, а одна строка в ТЗ: «использовать нативный механизм цитирования (Citations)». Есть и парный механизм search_result: результаты вашего поиска передаются модели так, что она цитирует их со ссылкой на документ-источник.

🔬 Под капотом: почему модель выдумывает — и почему цитаты помогают

Модель не «сверяется с базой данных» — она продолжает текст наиболее правдоподобным образом (вспомните урок 1: она умеет только писать текст). «Тариф Профи стоит…» имеет правдоподобные продолжения, и модель выберет одно из них, даже если точной цифры в контексте нет.

Вдобавок модели обучены быть полезными: без явного разрешения «не знать» ответ «не могу сказать» для неё проигрышный — и она тянется к правдоподобному.

Citations меняют саму задачу: вместо «вспомни и расскажи» — «подчеркни в переданном тексте, на что опираешься». Подчёркивать в реальном тексте принципиально надёжнее, чем генерировать: выдумать позицию в документе намного сложнее, чем выдумать факт.

Право на «не знаю»

Официальный рецепт Anthropic против выдумок до смешного прост: явно разрешить модели говорить «я не знаю». Одна фраза в системном промпте — «если ответа нет в документах, скажи об этом прямо» — резко снижает выдумывание. (официальный гайд Reduce Hallucinations)

Два усиления из того же гайда:

Для ассистента школы «не знаю» — это не провал, а фича: честное «не нашёл в материалах, передаю ваш вопрос куратору» бережёт репутацию лучше любого красивого выдуманного ответа.

Чего цитаты НЕ решают

Важная граница: цитаты гарантируют, что ответ опирается на найденные документы. Они не гарантируют, что найденные документы — правильные и свежие. Если в базе лежит прошлогодняя версия тарифов (урок 11: чистка базы!), ассистент будет честно, с точными цитатами, отвечать по устаревшему документу.

Цитаты — контроль честности генерации, а не качества базы. Три вопроса из начала урока работают только вместе.

Зачем это вам как заказчику

Проверьте себя

Повторение урока 12. Что должно быть в ТЗ вместо «приёмка по демонстрации»?

Поиск нашёл правильные документы, но ответ содержит цифру, которой в них нет. Это провал какого из трёх вопросов?

Что даёт нативный механизм Citations по сравнению с промптом «указывай источники»?

На приёмке вы задали ассистенту 10 вопросов, ответов на которые в базе нет. Он уверенно ответил на все. Вердикт?

Практика: устройте проверку честности

🛠 Задание на 7 минут

  1. Откройте Claude Code в папке с 2–3 вашими документами и попросите: «Отвечай на мои вопросы строго по этим документам. Если ответа нет — прямо говори „в документах этого нет“. Каждое утверждение подтверждай цитатой».
  2. Задайте 3 вопроса, ответы на которые в документах есть, — проверьте цитаты.
  3. Задайте 2 вопроса, ответов на которые точно нет (например, про цены конкурента). Скажет ли «не знаю»?
  4. Теперь уберите из промпта право на «не знаю» и повторите вопрос без ответа. Почувствуйте разницу — вы только что воспроизвели главный эксперимент урока.

Что дальше

Конвейер собран целиком: база → поиск → честный ответ. Следующий урок — жизнь после запуска: обновления, деньги и агентная надстройка. Сколько всё это стоит в месяц, что дорожает первым и когда обычному конвейеру нужен агент сверху.