Александр Мироненко – Инженерия интеллекта от промта к системам ИИ (страница 5)
Агент, которого я проектирую теперь, так не работает. У него есть чёткий алгоритм с условиями перехода. Он не отдаёт результат, пока не выполнены критерии готовности. Он знает свои границы и не стесняется о них сообщить.
Если бы я вёл себя тогда как спроектированный агент, я бы сказал:
«Вот коммерческое предложение с условиями. Результат будет передан после подтверждения и предоплаты».
И это спасло бы меня от месяцев бесплатного труда.
Вот Вы написали идеальный системный промпт. Модель отвечает прекрасно: в нужном тоне, с правильной структурой и без воды. Вы воодушевлены и отдаёте этот промпт коллегам. Они пользуются. И через три дня всё ломается.
Почему?
Потому что вы написали инструкцию для чата. А требовалась инструкция для агента. Разница принципиальная.
Чат ждёт от пользователя команду и выполняет её. Агент выполняет работу. Чат отвечает на сообщение. Агент движется к цели.
Вот как это выглядит на практике:
Прекрасная инструкция. Модель будет вести себя как маркетолог в любом диалоге. Но если коллега напишет:
— чат ответит вежливо: «Я могу помочь с маркетинговыми вопросами. За какой период нужны данные?» и будет ждать следующего сообщения.
Инструкция для агента (решающая ту же задачу): «При запросе отчёта:
1. Проверь тип отчёта в запросе (месяц, регион, менеджер).
2. Если тип не указан — запроси одним предложением.
3. Обратись к базе данных SQL и получи нужные цифры.
4. Сверь результат с контрольными суммами за прошлый период.
5. Если отклонение больше 15 % — поставь в сводке тег [ТРЕБУЕТ ПРОВЕРКИ].
6. Отправь результат в Slack-канал #ежедневные-отчёты.
7. После отправки напиши пользователю: «Готово. Сводка в #ежедневные-отчёты».»
Первый вариант описывает, как вести себя. Второй — что делать. Агент не ждёт продолжения диалога. Он выполняет последовательность шагов, проверяет результат и завершает задачу.
ПРИНЦИП
Поведенческая инструкция для агента строится вокруг трёх элементов:
1. Цель. Что должно быть достигнуто. Одна задача, одно завершённое состояние.
2. Алгоритм. Последовательность действий с условиями перехода между ними. «Сделай А. Проверь критерий X. Если да — переходи к Б. Если нет — вернись к А и учти ошибку.»
3. Критерий завершения. Как модель понимает, что работа выполнена и пора выдавать финальный результат. Мы называем это Definition of Done (DoD) — формальный, проверяемый список признаков готовности.
Без любого из этих трёх элементов инструкция неполная, и поведение модели будет непредсказуемым в потоке реальных задач.
ИНСТРУМЕНТ
Паттерн 1: Алгоритм с циклом проверки
Самый простой и надёжный паттерн для задач, где первый результат почти всегда требует доработки:
Твоя задача — [одна конкретная цель].
Алгоритм работы:
Шаг 1. [Первое действие].
Шаг 2. Проверь результат по критерию [конкретный критерий].
Шаг 3. Если критерий выполнен — переходи к Шагу 4.
Если нет — вернись к Шагу 1, учтя, что именно не сработало.
Шаг 4. Выдай финальный результат.
Не выдавай результат, пока Шаг 2 не пройден полностью.
Твоя задача — отредактировать текст пользователя.
Алгоритм:
1. Прочитай текст целиком. Не правь.
2. Выдели три проблемы: нарушения логики между абзацами, повторения одной мысли, утверждения без подтверждения.
3. Перепиши, устранив проблемы.
4. Проверь: остались ли утверждения без подтверждения?
5. Если да — доработай эти места. Если нет — выдай финальный текст.
Критично, чтобы критерии на шаге проверки были однозначными. «Хороший текст» — не критерий. Модель будет интерпретировать его по-разному. «Остались ли утверждения без доказательств» — критерий: ответ либо «да», либо «нет».
Паттерн 2: Иерархия правил
В диалоге с агентом рано или поздно возникает конфликт. Пользователь просит то, что противоречит системной инструкции. Без явной иерархии модель начинает «договариваться» и постепенно отступает от правил.
Приоритеты, от высшего к низшему:
УРОВЕНЬ 1 (абсолютный): Правила безопасности и конфиденциальности.
Не переопределяются ни при каких условиях.
Если запрос противоречит — вежливо откажи и объясни причину.
УРОВЕНЬ 2: Формат вывода, заданный в системной инструкции.
Не изменяется по запросу пользователя.
Если запрашивается другой формат — объясни, что формат фиксирован.
УРОВЕНЬ 3: Тон и стиль.
Адаптируются в рамках заданных границ. Числовая нумерация снимает неоднозначность. Модель сама разрешает конфликт, сверяясь с приоритетами.
Для сложных задач, где нужна и креативность, и точность, одна роль даёт компромиссный результат. Три роли, работающие последовательно, дают результат, прошедший через независимые фильтры.
Работай в три этапа: