Четыре причины, по которым эта система дает сбой, и код, который устраняет каждую из них Результаты эксперимента, часть 11: создание агента поддержки на базе LLM с детерминированными границами. Сопутствующий репозиторий содержит полный код. Агент просит вернуть деньги...
Четыре причины, по которым эта система дает сбой, и код, который устраняет каждую из них
Результаты эксперимента, часть 11: создание агента поддержки на базе LLM с детерминированными границами. Сопутствующий репозиторий содержит полный код.
Агент просит вернуть деньги по заказу ORD-999. ОРД-999 нет. Никогда не было.
Ничто в этой кодовой базе не проверяет наличие галлюцинаций. Запрос в любом случае умирает, в той же самой строке кода, которая не позволяет покупателю прочитать чужой заказ — поиск, который берет аутентифицированный сеанс и ничего не находит. Придуманный идентификатор и идентификатор незнакомца — это одно и то же для запроса с предложением WHERE о клиенте.
Это шаблон для каждого режима сбоя в этом посте. Ни одно из смягчений не требует от модели корректности.
Получатель выбирает не ту страницу
Поиск всегда что-то возвращает. Спросите: «Кто выиграл игру вчера вечером?» и рейтингировщик послушно показывает статью об ограничении ставок, потому что обе содержат слово «the».
Честность должна зависеть от оценок, а не от рейтинга. Ниже порогового значения лучшее совпадение рассматривается как шум, и агент отказывается:
Необязательный лучший = извлеченный.поток()
.filter(засчитано -> засчитано.score() >= MIN_ANSWER_SCORE)
.map(ScoredArticle::article