Руководство · how-to
Как понять, работает ли ИИ-агент на самом деле
Оценить один ответ — решённая задача; судить систему, которая сама выбирает шаги, — нет. Измерения, выдерживающие прод: записанный путь, знаменатель, кто ставит оценку и отказы без ошибок.
Это другой вопрос, чем оценка одного ответа
Оценить один вывод ИИ — задача достаточно решённая: зафиксируйте набор настоящих входов, опишите, как выглядит приемлемый ответ, и повторяемо ставьте баллы. Агенту нужно другое, потому что судят здесь не один ответ, а целую задачу, выполненную за много шагов, где шаги система выбрала сама и может не повторить тот же маршрут дважды.
Это меняет то, что считается доказательством. Итоговый ответ сам по себе — слабое доказательство, демонстрация поставщика — не доказательство вовсе, а впечатления, собранные парой попыток, прямо вводят в заблуждение на системе, которая на одинаковом входе ведёт себя по-разному. Ниже — небольшой набор измерений, выдерживающих встречу с продом.
Судите путь, а не только пункт назначения
Записывайте прогон целиком: каждый вызов модели, каждый вызов инструмента с аргументами и результатами и итоговый вывод, по порядку. Два прогона могут дать один и тот же верный ответ, но один вызвал три инструмента, а другой — одиннадцать, шесть раз повторил падающий эндпоинт и дошёл по удаче. Работать через месяц будет только один из них, и в ответе их ничто не различает.
Прочитать несколько таких записей целиком, руками, — самый продуктивный час в первые недели любого внедрения агента. Именно там обнаруживается, что он дважды зовёт дорогой инструмент, потому что два описания пересекаются, что он тихо бросил шаг и пошёл дальше или что треть шагов уходит на перечитывание контекста, который у него уже был. Ничего из этого не видно в агрегате.
Считайте пришедшее, а не то, за что он взялся
Самое частое завышение в агентной метрике живёт в знаменателе. Доля успеха, посчитанная по задачам, за которые система решила взяться, исключает всё, от чего она отказалась, что бросила или не распознала как задачу, — а это ровно трудный край распределения. Считайте долю по всему поступившему, а долю по попыткам приводите отдельно, если она нужна. Разрыв между ними тоже полезная цифра: это часть проблемы, которой агент сейчас не касается.
Явно решите, чем считается частичное выполнение. Прогон, сделавший большую часть работы и аккуратно остановившийся, — иной исход, чем завершённый с неверным результатом, и оба отличаются от остановки на середине, когда в живой системе уже что-то изменено. Свести все три к провалу — спрятать различие, важное при выборе того, что чинить; засчитать первое в успех — польстить агенту.
Перестаньте позволять агенту проверять себя
Спросить модель, выполнила ли она задачу, — значит попросить её оценить собственную работу в той манере, в какой она её писала, и ответ обычно «да». Самозаявленный успех — наименее надёжный сигнал в системе и при этом тот, на котором построено большинство дашбордов.
Везде, где задача позволяет, замените его проверкой, которую делает что-то другое: прошедший тест, валидирующая схема, запись, которая теперь существует с ожидаемыми значениями, сумма, сошедшаяся со вторым источником. Там, где такой проверки нет, применяйте человеческий разбор случайной выборки, а не случаев, которые кто-то открыл сам: выборка, выбранная любопытством, измеряет любопытство. Вторая модель в роли судьи — разумный промежуточный шаг, если вы сперва сверили её согласие с человеческими оценками на выборке и пересверяете при смене любой из моделей.
Следите за работой, которая не исчезла
У каждого процента автоматизации есть честный противовес: доля прогонов, в которые пришлось вмешаться человеку. Считайте явные эскалации, но также тихие правки, внесённые потом получателем вывода, случаи, переоткрытые клиентами, прогоны, брошенные и переделанные вручную, и согласования, которые действительно прочитали. Считать только то, что агент эскалировал сам, — измерять его самосознание, а не работу.
Разбивайте по срезам, потому что среднее скрывает форму. Вмешательства концентрируются: в одном типе запроса, в одном сегменте клиентов, в одной интеграции с неудобными данными, в одном часе суток, когда медленна вышестоящая система. Высокая доля из-за узкой полосы — решаемая инженерная задача; та же доля, размазанная ровно, — вопрос охвата, и ответ здесь сузить то, за что агент берётся, а не продолжать его настраивать.
Читайте её и рядом со стоимостью. Обещанная экономия труда уходит именно во вмешательства, поэтому агент с ничем не примечательной долей, но дорогими вмешательствами — старшие сотрудники, долгое восстановление контекста, раздражённый клиент — может быть хуже того, кто вмешивается чаще, но дёшево.
Исходите из того, что отказы будут тихими
Агент редко отказывает падением. Он возвращает нечто беглое и вовремя, что оказывается неверным, или доходит до конца, тихо не сделав ничего: поиск вернул пусто, инструмент отдал пустой список вместо ошибки, фильтр перестал фильтровать. Доступность, задержка и доля ошибок при этом выглядят отлично — поэтому обычный мониторинг так успокаивает насчёт ИИ-функций и так мало о них сообщает.
Обнаружение должно утверждать об исходах, а не о выполнении. Ожидаемые объёмы и их отсутствие. Распределения, которые должны быть стабильны, — шагов на прогон, инструментов на прогон, стоимости на задачу, — где резкое движение уже сигнал, даже пока непонятно, о чём он. Небольшой фиксированный набор известных входов, перезапускаемый по расписанию и проверяемый. И сверка с чем-то, чему пришлось бы ошибиться точно так же, чтобы с вами согласиться.
Организационная версия этой проверки — путь обнаружения. Если отказы находят клиенты, случайно заглянувший коллега или квартальный разбор, они тихие, какими бы зелёными ни были дашборды, и сокращать стоит промежуток между началом отказа и моментом, когда его заметили.
Перемеряйте, когда что-то сдвинулось
Цифры агента — тренд, а не факт о следующей неделе. Они движутся при смене модели, при правке промпта или описания инструмента, когда вышестоящая система начинает отдавать другие данные и когда сдвигается состав входящих запросов, — и последнее вызывает больше необъяснённых просадок, чем остальные три вместе, ведь в самой системе не менялось ничего.
Храните записанные прогоны и после каждого изменения воспроизводите их против фиксированных ответов инструментов, чтобы видеть, какие ранее работавшие пути разошлись. И приводите любую долю рядом с распределением задач, на котором её измерили. Доля успеха без этого контекста — не измерение, а лозунг.