Кто принимает результат
Вопрос: «кто принимает результат — отдельный проверяющий шаг или сам агент?» Это вопрос про архитектуру доверия в многошаговом агенте. И ответ — не «то или это», а «и то, и другое, но в разных ролях».
«Сам агент» — это декларация, а не проверка. Агент видит интерфейс, а не реальность: тост «письмо отправлено» мог быть про черновик. Агент не врёт — он просто не знает, что произошло на самом деле.
Отдельный проверяющий лучше, но не панацея: он видит тот же интерфейс, стоит денег и времени и не сверяет результат с задачей.
Что работает — три уровня приёмки, каждый ловит свой класс ошибок: - оракул — код, который проверяет факт (slug, теги, письмо в «Отправленных», текст в PDF) и говорит PASS или FAIL; - аудит — проверяет полноту: всё ли, что просили, сделано; - оператор — разрешает неопределённость там, где повтор опасен, а сверка ненадёжна.
Оракул не спрашивает агента: он смотрит в реальность и, если FAIL, возвращает конкретное поле — «slug старый», «теги не те». Пока оракул не сказал PASS, задача не закрыта. Аудит ловит «сделал две вещи из трёх», оператор — «мы не знаем, что произошло, и автоматика не может узнать».
Каждый уровень дополняет другие, а не заменяет. Если убрать один, ошибки его класса проходят. И LLM-judge здесь — не судья: это мнение, а не факт, полезный дополнительный фильтр, но не замена оракулу.
Итог: агент результат производит, а принимает его код. Агент, который принимает результат сам, — это агент, который врёт с чистой совестью. Агент, который отдаёт результат на проверку коду и человеку, — это агент, которому можно доверять.
Полный разбор — с примером из жизни и тем, что не работает, — в блоге: https://blog.arhellist.ru/blog/kto-prinimaet-rezultat-v-mnogoshagovom-agente-agent-proveryayuschiy-ili-kod