Суть
Уверенность обычно считают счётом: сколько раз утверждение встретилось. Счёт предполагает, что встречи независимы, — и почти никогда этого не проверяет.
Три места в агентной системе, где предположение ломается одинаково:
| Где | Что считают | Почему это один источник |
|---|---|---|
| Ранжирование в RAG | сколько документов подтверждают ответ | новостная лента, агрегатор и блог могут пересказывать один пресс-релиз |
| Жюри моделей (LLM as Judge) | сколько судей проголосовало «за» | модели одного семейства делят обучающие данные и ошибаются согласованно |
| Провенанс заметки | сколько разных источников у утверждения | один из них мог прочитать другого, а не первоисточник |
Во всех трёх случаях согласие выглядит одинаково независимо от того, настоящее оно или отражённое.
Пересказ не становится вторым подтверждением
Знание, пришедшее через посредника — другую сессию, чужой конспект, вторую базу, — остаётся одним источником, у которого теперь две копии. Посредник может честно назвать первоисточник, но назвать не то же, что прочитать вторыми глазами: ошибка первоисточника переносится целиком, а Paraphrase Drift добавляет к ней собственный сдвиг.
Опасность не в самой передаче — она полезна и дешевле, чем читать всё самому. Опасность в обратном ходе: если завтра взять формулировку из чужой копии как подтверждение своей, получится подтверждение самого себя через посредника, и выглядеть оно будет как согласие двух независимых баз.
Добросовестная атрибуция ухудшает метрику
Самое неприятное следствие касается не данных, а того, кто их размечает.
Любая метрика, считающая источники по количеству, а не по независимости, ломается ровно на честной атрибуции. Чем аккуратнее записано происхождение — посредник отдельной строкой, — тем больше строк насчитает счётчик и тем выше выйдет подтверждённость. Умолчание её улучшает, аккуратность ухудшает.
Это делает дефект самоподдерживающимся: тот, кто пишет провенанс честно, выглядит хуже того, кто его не пишет, и получает стимул перестать.
Лечится не счётчиком, а классификацией строки происхождения до подсчёта: прочитан первоисточник, пересказан посредником, получен собственным сопоставлением. В подтверждённость идёт только первое. Классификатор при этом ошибается на пограничных формулировках, поэтому спорные строки должны печататься поимённо, а не растворяться в числе: ошибка разметки чинится переписыванием строки, а спрятанная в агрегате — ничем.
Внешний вызов — ещё не независимый рецензент
Тот же счёт ломается на рецензии. Отправить черновик решения «другой модели» выглядит как получение второго мнения, но независимость здесь разрушается двумя способами сразу, и оба невидимы в отчёте.
Первый — общий провайдер. Вызов наружу не гарантирует смены семейства: обвязка, сама работающая на модели того же вендора, получает в ответ голос из того же обучающего корпуса. Лечится это не механикой, а обязанностью назвать отношение честно — тремя различимыми состояниями, а не одним словом «внешняя рецензия»:
| Хост | Рецензент | Как называется в отчёте |
|---|---|---|
| вендор A | вендор B | рецензия другого провайдера |
| вендор A | вендор A | рецензия того же провайдера |
| не определён | любой | отношение провайдеров не установлено |
Третья строка нужна не для полноты: «не установлено» — честный исход, и он информативнее, чем догадка в любую сторону.
Второй способ тоньше — общий контекст. Рецензент, унаследовавший правила проекта, умения, инструменты и конфигурацию пользователя, читает черновик теми же глазами, которыми тот писался, даже будучи моделью другого вендора. Поэтому независимость рецензии обеспечивается вычитанием: пустой временный каталог вместо рабочего, отказ от пользовательской конфигурации и правил проекта, отключённые инструменты и поиск, подавленные инструкции умений, разовая сессия без наследования окружения. Изоляция здесь не про безопасность, а про то, чтобы второе мнение было вторым.
Дословная цитата вместо пересказа. Критика, прошедшая через того, кого критикуют, смягчается — это тот же сдвиг посредника, что и выше по заметке, только в один шаг и внутри одного отчёта. Поэтому текст рецензии приводится дословно, а расхождение с черновиком называется отдельной строкой, а не растворяется в сводке.
Отсутствующая рецензия записывается отсутствующей. Рецензент недоступен, не прошёл проверку версии, не уложился в срок, вернул пустоту — исход называется «рецензии не было» с причиной. Молча подставить другую модель или продолжить так, будто рецензия состоялась, — та же подстановка неизвестного значением, что описана в Unknown Not A Value; строка отчёта «рецензия изменила решение» имеет три состояния, а не два.
Как проверить независимость на практике
Вопрос ставится не «сколько источников», а «что должно было бы произойти, чтобы они ошиблись вместе». Если ответ находится легко — общий первоисточник, общий обучающий корпус, общий автор, общий агрегатор, — источники зависимы.
- RAG: дедуплицировать не по тексту, а по происхождению — домен, автор, дата первой публикации. Совпадающие абзацы в разных доменах это признак перепечатки, а не согласия.
- Жюри: брать модели разных вендоров, а не разные температуры одной. Согласие моделей одного семейства измеряет общность обучающих данных.
Эта строка — не только рассуждение: замер её подтверждает и переворачивает привычный выбор. Коллегия из нескольких меньших моделей непересекающихся семейств обходит одного большого судью по согласию с человеческой разметкой, и причина названа прямо — у одиночного судьи есть внутримодельное смещение, которое разнородность коллегии снимает. Побочный результат делает вывод практичным: такая коллегия выходит более чем всемеро дешевле одиночного крупного судьи, то есть независимость здесь не покупается доплатой, а экономит.
- База знаний: источник, пришедший через посредника, помечать как требующий переподтверждения по первоисточнику, а не засчитывать вторым.
- Рецензент: проверять и провайдера, и унаследованный контекст. Рецензия, выполненная с теми же правилами проекта и теми же умениями, — это второй прогон, а не второе мнение.
Последний пункт подтверждается наблюдением с другой стороны — не из оценки текстов, а из разработки. Проверяющий, запущенный отдельной несвязанной сессией, находил расхождения реализации со спецификацией практически на каждом шаге — те самые, которых не видела сессия-исполнитель, — и выигрывал по числу итераций до готовности. Механизм ровно тот, что описан выше: исполнитель уже знает, почему сделал так, и это знание работает как общий контекст, из-за которого вторая проверка перестаёт быть второй. Независимость здесь восстанавливается вычитанием: у проверяющего нет истории решений, и потому ему нечем себя убедить.
Связано с
- Agent First Repository — независимое совпадение с устройством этой базы, разобранное как случай
- LLM as Judge — жюри моделей как самый частый случай мнимой независимости голосов
- Paraphrase Drift — что происходит с утверждением, пока оно идёт через посредника
- RAG Metrics — почему покрытие источниками само по себе не измеряет обоснованность ответа
- Overreliance — что делает потребитель, приняв мнимое согласие за проверенный факт
- Open Knowledge Format — внешняя спецификация, пришедшая к тому же выводу: формат записывает сигналы, а не оценки
- Unknown Not A Value — несостоявшаяся рецензия как отдельное значение отчёта, а не пропуск строки
- Generator Evaluator — пара «генератор и критик», для которой этот разбор задаёт условие пригодности критика