Коротко
В статье описан ProvenanceGuard — слой проверки MCP-агентов, который оценивает не только истинность утверждения, но и соответствие указанного источника. На медицинских трассах он выявил почти все утверждения, которые эксперты сочли неподтверждёнными, однако при выборе между похожими источниками точность была заметно ниже.
Контекст
Авторы из Multiverse Computing рассматривают проблему агентов, которые собирают данные из нескольких MCP-инструментов: ответ может содержать факт, верный в целом, но приписанный не тому источнику. Они предложили ProvenanceGuard как постгенерационную проверку для уже работающих агентов, без их переобучения.
Главное
- Проверка направлена на cross-source conflation: например, когда факт из политики возврата представлен как информация из записи аккаунта.
- ProvenanceGuard читает сохранённую MCP-трассу с результатами инструментов и ID источников, не объединяя данные в единый безымянный контекст.
- Конвейер разбивает ответ на утверждения, находит релевантный источник, проверяет поддержку, сверяет источник с названным или подразумеваемым в ответе и выносит решение по каждому утверждению и по ответу целиком.
- В локальной экспериментальной конфигурации MiniLM подбирал источник, DeBERTa NLI проверяла поддержку утверждения, а локальная языковая модель выделяла утверждения из ответа.
- Отдельно проверяются буквальные значения: числа, даты и идентификаторы, отсутствующие в источнике, не должны проходить только потому, что фраза звучит правдоподобно.
- Для оценки использовали 281 медицинскую трассу; эксперты проверили 361 утверждение из 40 ответов, отложенных от данных разработки.
- Из 139 утверждений, которые эксперты считали неподтверждёнными, система заблокировала 138; при этом она также отправила на проверку или исправление 67 утверждений, признанных поддержанными.
- В основном тесте F1 блокировки составил 0,802 у ProvenanceGuard, 0,783 у MiniCheck, 0,758 у RAGAS Faithfulness, 0,662 у AlignScore и 0,436 у SummaC-ZS.
- В отдельном тесте с похожими источниками F1 блокировки достиг 0,846, но точный источник был определён верно лишь в 50,3% случаев; в 50 контролируемых случаях с подменой названия источника обнаружены все 50 ошибок атрибуции.
- В полной трассе цикл исправления разрешил 173 заблокированных ответа, но 144 раза завершился безопасным запасным текстом; обработка занимала около половины секунды на ответ в описанной локальной конфигурации.
Как сделано
ProvenanceGuard работает после генерации ответа и использует запись вызовов MCP-инструментов. Он сохраняет связь между каждым утверждением и его источником на всех этапах проверки, а затем выдаёт вердикты по утверждениям и общий результат: разрешить ответ или заблокировать его.
Авторы объединили поиск подходящего источника, проверку логического следования с помощью NLI и калиброванное решение. Если ответ блокируется, RARR-подобный цикл может предложить исправление, основанное на источнике, либо безопасный запасной ответ; результат проверяется повторно. Использованные MiniLM, DeBERTa и локальная языковая модель — экспериментальный набор, а не обязательная часть подхода.
Результаты
В основном тесте система пропустила 1 из 139 утверждений, которые эксперты считали неподтверждёнными, и избыточно заблокировала или отправила на проверку 67 поддержанных утверждений. Для утверждений с определяемым источником правильный источник выбирался примерно в 86% случаев. Среди сравниваемых проверяющих методов ProvenanceGuard показал наивысший Reject/block F1 — 0,802 — и, в отличие от базовых систем, выдавал ID источника для каждого утверждения. В тесте с подменой атрибуции выявлены все 50 случаев; в тесте с похожими источниками точность выбора конкретного источника составила 50,3%.
Ограничения
Результаты получены на медицинских трассах и локальной конфигурации; перенос на облачные модели или другие области потребует отдельной проверки и калибровки. Хотя точность выбора источника была около 86% в основном тесте, на похожих источниках она снизилась до 50,3%. Консервативная политика создаёт ложные блокировки: 67 поддержанных утверждений отправили на разбор. В полной трассе большинство разрешённых циклом исправления ответов закончилось запасным текстом, а не содержательной переработкой. Авторы не приводят в статье затраты на инфраструктуру.
Что взять себе
- Для многоинструментальных агентов проверяйте не только наличие подтверждения в общей совокупности данных, но и то, что ответ приписывает утверждение правильному источнику.
- Сохраняйте ID источников и трассы вызовов инструментов: без них происхождение фактов сложнее проверять и разбирать после генерации.
- Заранее выбирайте баланс между пропуском неподтверждённых утверждений и ложными блокировками; в чувствительных сценариях может быть оправдана осторожная политика.
- Исправление заблокированного ответа должно допускать безопасный отказ или запасной текст, а не вынуждать модель придумывать подтверждение.
- Не переносите показатели локального теста на другую модель или домен без собственной оценки, особенно если источники похожи друг на друга.
Читать оригинал, если…
Откройте статью, если нужны детали архитектуры, калибровки и тестирования, полные таблицы результатов или разбор интеграции проверки в MCP-агента.