Пытаться починить нестабильного AI-агента 200-строчным системным промптом — всё равно что чинить сломанный интерфейс, дописывая комментарии подлиннее.
Большинство команд по-прежнему считают промпт-инжиниринг главным рычагом. На практике большинство галлюцинаций, бесконечных циклов и упавших вызовов тулов возникают не из-за недостатка инструкций. Они возникают из-за отсутствующих контрактов.
Когда агент получает непредсказуемый payload, раздутую схему или загрязнённый контекст, частота сбоев быстро растёт. Мы начинаем писать абзацы естественного языка, чтобы замазать то, что должно было быть зафиксировано на уровне интерфейса.
Три правила, которые реально держат прод-агентов стабильными: 1/ Строгие контракты вместо многословных описаний. Спеки тулов (MCP или свои) должны быть минимальными и строго типизированными. Чем меньше необязательных полей модель вынуждена придумывать, тем предсказуемее запуск. 2/ Изоляция контекста. Свалить всю историю диалога или сырые строки из базы в одно окно — антипаттерн. Агент должен видеть только то состояние, которое нужно для текущего шага. Всё остальное — шум. 3/ Структурированное восстановление после ошибок. Модель никогда не должна гадать, почему вызов тула упал. Понятные, действенные состояния ошибок вернут её на правильный путь гораздо лучше, чем слепые повторы.
Проектировать интерфейсы для LLM — то же самое, что проектировать распределённые системы. Если границы сломаны, никакой умный промпт их не спасёт.