ИИ-агент, который создаёт других ИИ-агентов
Статья рассказывает, почему сложно создавать продукты, где пользователь сам настраивает ИИ-агента через промпты. Основная проблема заключается в том, что обычным пользователям трудно формулировать эффективные инструкции. Одно из решений - внедрение в продукт специального ИИ-ассистента, который помогает пользователям проверять, отлаживать и улучшать промпты для их агентов, делая процесс создания и настройки более доступным.
Проблема
Платформа позволяет создавать ИИ-агентов для поддержки клиентов и продаж в чатах. Чтобы запустить агента, пользователю нужно:
- Задать инструкцию агента (промпт).
- Протестировать агента.
- Подключить каналы общения с клиентами: Telegram, виджет на сайт, helpdesk.
Инструкция пишется на естественном языке и по сути напоминает описание обязанностей для нового сотрудника. Такой подход позволяет пользователям без навыков программирования описывать сценарии поведения агента.
Однако на практике промпт-инжиниринг оказался не таким простым. Мы столкнулись с тремя основными проблемами.
Проблема «чистого листа».
Пользователю сложно начать: понятно, что агенту нужно задать поведение, но непонятно, с чего именно.
Проблема калибровки ожиданий.
У пользователя нет точного внутреннего представления о том, что система может, а что — нет, и насколько хорошо она это делает. Это приводит к завышенным ожиданиям и некорректному использованию.
Проблема недетерминированности LLM.
Один лишний символ в вопросе пользователя может изменить ответ агента. Иногда ответы меняются даже при неизменных промпте, модели и входных данных.
При этом пользователи без нашей помощи запускали десятки успешных агентов. Было видно, что при достаточном усердии «система работает». Чтобы расширить круг пользователей, мы попытались снизить порог входа: сделали пошаговый мастер настройки промпта, вынесли часть логики в интерфейс, добавили подсказки.
Это улучшило опыт, но проблему полностью не решило. Между специалистом, который регулярно настраивает промпты, и новым пользователем системы всё ещё оставалась заметная пропасть. Если промпт-инжиниринг по сложности сопоставим с программированием или созданием агента в workflow-системах наподобие n8n, то становится неочевидно, в чём преимущества такого подхода для массового пользователя.
В этот момент мы начали искать более системное решение.
Варианты решений
Убрать промпт.
Всё выносить в опции, пошаговые мастера и визуальные конструкторы. Промпт для агента будет генерироваться системой и будет недоступен пользователю. По этому пути пошла известная компания Intercom со своим продуктом https://fin.ai/. Данный путь требует много ресурсов и очень высокой продуктовой экспертизы.
Сделать ассистента (мета-агента), который помогает пользователю создавать ИИ-агента.
Если рассматривать ИИ-агентов и чат-ботов как специализированный тип приложений, то системы с агентом-помощником для создания приложения переживают расцвет и бурный рост: Cursor, Windsurf, Replit.
Мы пошли по второму пути.
Создали ассистента, который помогает пользователям создавать их ИИ-агентов. В ассистенте мы заложили весь опыт промпт-инженеров, а также глубокое понимание контекста среды, в которой он работает.
От бизнес-задачи к ассистенту
Типичная формулировка запроса звучит так:
«Я понимаю, какого ИИ-агента хочу, но не понимаю, как его настроить».
Бизнес-задача обычно ясна — продажи, поддержка, онбординг, снижение нагрузки на команду. Но дальше начинается зона неопределённости:
- «я не умею писать промпты и инструкции»;
- агент ведёт себя странно, и непонятно — это баг или логика;
- страшно править инструкцию: вдруг всё сломается;
- цель «хочу больше продаж» не превращается в конкретные правила для ИИ.
Ассистент нужен именно здесь — чтобы сократить разрыв между идеей в голове и работающим агентом.
Мы выделили следующие сценарии применения ассистента:
- Выявление логических дефектов инструкции.
- Проверка опций и скрытых ограничений.
- Поиск противоречий между сценариями.
- Понимание границ возможностей ИИ.
- Безопасное тестирование новых идей.
Далее подробнее рассмотрим первые два сценария.
Выявление логических дефектов инструкции
Ситуация.
Инструкция разрослась, в неё вносили правки разные люди. Появляется ощущение, что агент работает «не так, как задумывалось», но где именно проблема — непонятно.
Запрос ассистенту.
«Проверь инструкцию на логические ошибки и несоответствия».
Как помогает ассистент.
Ассистент анализирует инструкцию целиком, находит дублирующиеся правила, конфликты и логические разрывы, объясняет, какие из них действительно влияют на поведение агента и почему.
Результат.
Инструкция становится чище, агент — предсказуемее, а пользователь лучше понимает, как именно агент «думает».
Проверка опций и скрытых ограничений
Ситуация.
Пользователь включил опцию «работать без оператора» и забыл про это.
Бот перестал переводить диалог на оператора, хотя по инструкции должен. Сценарий перевода описан, но фактическое поведение ему не соответствует.
Запрос ассистенту.
«Почему бот не переводит пользователя на оператора?»
Как помогает ассистент.
Ассистент проверяет значения опций агента, находит активную настройку «работать без оператора», объясняет, как именно она блокирует перевод, и подсказывает, что нужно изменить.
Результат.
Проблема находится за минуты — без ручного перебора настроек и догадок.
Что ассистент получает на входе
- задачу или вопрос пользователя;
- промпт агента;
- значения опций агента.
Ассистент сам является ИИ-агентом, работает по собственной инструкции и при необходимости может изменять её.
Детали реализации
Управление опциями агента
Самый простой уровень изменений — это опции.
В системном промпте Ассистента заранее задан перечень доступных опций: каждая из них имеет уникальный код и краткое описание того, на что влияет (например, стиль ответа, ограничения, правила диалога и т.д.).
Кроме того, внутри промпта присутствуют шаблоны системных инструкций, где явно показано, как изменение опции отражается на конкретных правилах.
Ассистент изменяет настройки агента напрямую, возвращая коды опций и новые значения. Такой подход позволяет управлять поведением модели формально и предсказуемо.
Работа с пользовательскими промптами
Если пользовательский промпт небольшой, Ассистент может вернуть полностью обновлённую версию инструкции целиком — с уже внесенными правками.
Однако с большими промптами ситуация становится существенно сложнее.
Полный перезапуск или переписывание длинного текста каждый раз небезопасны и неудобны: важно уметь вносить изменения точечно, затрагивая только нужные фрагменты.
Проблема точечного редактирования
Для этого Ассистент должен указывать, какой именно участок текста нужно заменить. Но здесь возникает фундаментальная сложность:
LLM плохо работают с позициями в тексте — даже если использовать номера строк или ссылки на конкретные абзацы. Модель может «съехать» на соседний фрагмент или не найти нужный блок точно.
Решение: предварительная нумерация строк
Чтобы сделать правки детерминированными, перед передачей промпта в Ассистента добавляется явная нумерация строк:
1 | Ты агент службы поддержки. Ты обязан следовать следующим правилам:
2 | - Отвечай максимум на 2 вопроса в рамках диалога. Если требуется 3 ответ, то переводи на оператора.
3 | - Не задавай более 2 уточняющих вопросов.
Такой формат создаёт стабильную структуру, на которую модель может ссылаться при редактировании.
Формат изменений: дифф-блоки
Ассистент обучен возвращать изменения не в виде полного текста, а в формате диффов — блоками поиска и замены:
Каждый блок содержит:
- стартовую строку, где ожидается изменение
- точный фрагмент для поиска
- новый текст, который должен его заменить
Это позволяет редактировать большие промпты аккуратно, не переписывая их целиком.
Применение диффов на стороне системы
Отдельной инженерной задачей стала программная реализация применения таких диффов к текущему промпту.
На практике возникают сложные случаи:
- смещение строк после применения предыдущих изменений
- несколько замен в одном и том же диапазоне
- частичные совпадения текста
- необходимость строгой последовательности применения
Поэтому механизм применения диффов реализован как отдельный модуль, который последовательно накатывает изменения и поддерживает корректность структуры промпта даже в сложных сценариях.
Итоги
Ассистент частично решает проблему масштабируемости настройки агентов, снижая требования к опыту пользователя и уменьшая зависимость от специалистов по промпт-инжинирингу. Сейчас мы собираем статистику использования и фидбек.
Интересно обсудить с сообществом:
- есть ли в вашем продукте промпты?
- сталкивались ли вы с похожими проблемами?
- как вы их решали?