Граница автономии агента — это точка, где он должен сказать «не могу»

Модель обучена стараться выполнить запрос, как бы сложно ни было. Когда модель работает как агент и может вызывать инструменты, эта привычка становится проблемой. Агент начинает придумывать неправдоподобные решения, извиняться за невозможность, или просто ломает логику, лишь бы не признавать поражение.

Правильное поведение агента в некоторых ситуациях — просто отказать. Например, если инструмент требует администраторских прав, а агент их не имеет, нужно сказать об этом, а не пытаться обойти. Если информация по запросу не найдена, нужно вернуть не выдумку, а явное сообщение о том, что информация недоступна.

Явное проектирование отказа

Чтобы агент отказывал корректно, разработчики добавляют специальный инструмент отказа: модель может вызвать инструмент 'refuse_task' и указать причину. При этом нужно убедиться, что этот инструмент не воспринимается как ошибка, а как правильный выход.

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

Сложность в том, что отказ часто экономит ресурсы, но кажется менее полезным, чем попытка. Разработчики приходят к выводу, что лучше один честный отказ, чем три попытки, каждая из которых завешивает систему на минуту и возвращает шум.