Из каких частей собирается ИИ-агент (инструкция, база знаний, функции, второй агент, переменные) и как разложить по ним задачу до открытия поля инструкции.
Агента проектируют до того, как открывают поле инструкции: решают, что уйдёт в инструкцию, что в базу знаний, какие действия отдать функциям, нужен ли второй агент и какие переменные понадобятся дальше в воронке. Единой методички для этого в документации нет, правила разбросаны по шести разным разделам.
Перед тем как поставить курсор в пустое поле инструкции, у владельца бизнеса уже есть сорок вопросов, которые клиенты задают каждую неделю — про цену, сроки, доставку, гарантию, филиалы. Первое желание — сразу отвечать на них построчно прямо в инструкции. Разложить эти вопросы по частям агента раньше, чем написана первая строка, дешевле, чем через месяц переписывать инструкцию целиком, потому что она разрослась и модель начала путаться.
Прежде чем писать текст, отвечают на три вопроса: какую одну цель должен закрыть диалог, где граница между тем, что решает агент, и тем, что передают человеку, и из какого материала строить ответы — собственных фраз или файлов клиента. Эти решения меняют архитектуру агента: сколько понадобится агентов, что положить в базу знаний и какие переменные собирать по ходу разговора.
Проверьте на своих диалогах.Регистрация без карты, 500 ₽ на тест по промокоду BLOG500
Собрать агентаАгент Савви складывается из шести частей, которые работают вместе: инструкция, база знаний, таблицы, функции, подчинённые или переключаемые агенты и переменные, а не из одного текста. Отдельной страницы, которая сводит их в одну картину, в документации нет — устройство агента приходится собирать по разным разделам руководства.
Инструкция задаёт правила поведения и делится на разделы, каждый начинается со знака #: #ОБЩИЕ СВЕДЕНИЯ, #ЦЕЛИ И ЗАДАЧИ, #ПРИВЕТСТВИЕ, #ЯЗЫК ОТВЕТОВ, #СТИЛЬ ОТВЕТА — список открыт, под конкретную ситуацию заводят собственный раздел по тому же принципу. База знаний хранит факты тремя способами: быстрые ответы на частые вопросы, документы для случаев, где допустима свобода формулировок, и таблицы для структурированных данных вроде цен и остатков. Функции выполняют техническое действие по условию, например остановить диалог, поставить тег, вызвать менеджера. Переменные подставляют в ответ то, что заполнила платформа, канал или сам агент по ходу разговора. А когда задач становится слишком много для одной инструкции, часть из них выносят на отдельного агента.
| Часть | За что отвечает | Где заканчивается |
|---|---|---|
| Инструкция | Поведение при каждом обращении | Перестаёт помогать, когда становится длиннее одного экрана правил |
| База знаний | Факты, которые меняются | Не решает, как агент должен себя вести |
| Функции | Техническое действие по условию | Не годятся для развёрнутого ответа клиенту |
| Второй агент | Отдельная роль или отдел | Усложняет схему, если задач меньше одной роли |
| Переменные | Данные для подстановки и передачи дальше | Пустые, если канал их не прислал |
Между инструкцией и базой знаний нет равенства: инструкция всегда весомее. В документации это сказано прямо — инструкция «всегда имеет более приоритетное значение, чем база знаний, которая является скорее вспомогательным инструментом». Если в инструкции написано одно, а в загруженном документе — другое, агент возьмёт за основу инструкцию.
Отсюда практическое правило разбора вопросов клиентов. То, что должно соблюдаться без исключений при любом обращении — приветствие, тон, условие передачи диалога человеку, — пишут в инструкцию. То, что периодически меняется — цены, список филиалов, статус акции, — выносят в базу знаний, чтобы не переписывать инструкцию из-за каждого обновления прайса. Как устроены её три блока и какие у них лимиты, разобрано отдельно в статье про сборку базы знаний для ИИ-агента.
Функция — это готовый технический шаг, который срабатывает по условию на естественном языке, без отдельного текста в инструкции под каждый случай. В Савви есть пять стандартных: остановка диалога, игнорирование сообщения, установка тега, вызов менеджера с уведомлением в Telegram и перевод звонка на менеджера у голосовых агентов. Если клиент из списка сорока вопросов не столько спрашивает, сколько инициирует действие, например «переведите на менеджера» или «я передумал», это кандидат на функцию, а не на очередной абзац инструкции.
Ограничение стоит учитывать на этапе проектирования: за один диалог агент может вызвать функцию не более 10 раз. Одновременный вызов двух стандартных функций напрямую не сработает, выполнится только одна. Если сценарий требует связки из нескольких действий сразу, её собирают через раздел «Действия».
Сигнал приходит с той же стороны, откуда начиналось проектирование: со списка вопросов клиентов. Если в нём видны две разные роли (секретарь, который распределяет обращения, и специалист, который ведёт запись или оформляет заказ), одной инструкцией их лучше не покрывать: перегруженная инструкция чаще теряет часть условий, чем помогает модели держать фокус.
Для этого в Савви есть две схемы, вызов подчинённого агента и переключение активного агента, и выбор между ними зависит от того, возвращается ли диалог к первому агенту после подзадачи или переходит к другому полностью. Правило для каналов простое: входящий канал подключают только к агенту-администратору, который первым принимает сообщение, остальные агенты работают с функциями и действиями без своего канала. Разница между схемами и порядок их настройки разобраны в статье «Система ИИ-агентов: когда одного агента мало».
Переменные — это подстановки, которые платформа заполняет автоматически: в инструкции пишут {название}, а на выходе модель получает готовое значение. У них три источника. Системные (дата, время, канал, ссылка на диалог) заполняет сама платформа. Канальные, {name}, {username}, {link}, {source_chat_id}, {source_channel_id}, {channel_name}, {custom_fields}, приходят из подключённого канала и могут быть пустыми, если канал их не передаёт. Пользовательские агент заполняет сам по ходу диалога, с фиксированным типом и проверкой значения или в свободном режиме.
Список нужен на этапе проектирования, а не после. Если данные пойдут дальше в вебхук, фоллоу-ап или уведомление менеджеру, стоит заранее решить, какая переменная за что отвечает и откуда она возьмётся. Полный разбор фиксированных и динамических переменных: в статье «Переменные ИИ-агента: как бот запоминает данные клиента».
Сопоставьте список реальных вопросов клиентов с шестью частями агента прежде, чем открывать поле инструкции: что становится правилом поведения, что фактом в базе знаний, что техническим действием, что поводом завести второго агента и что переменной, которая понадобится дальше. Пятнадцать минут на такую разметку избавляют от переписывания инструкции в третий раз за месяц — и от агента, который знает всё, но путается в том, что из этого делать первым.
С формулировки одной цели диалога и списка реальных вопросов клиентов, собранных из переписок за последний месяц. Только после этого вопросы раскладывают по частям агента: что станет инструкцией, что уйдёт в базу знаний, что потребует функции или второго агента.
Инструкция задаёт поведение агента при каждом обращении: роль, цели, стиль, приветствие. База знаний — вспомогательный инструмент, картотека, куда агент обращается за конкретными фактами. При противоречии между ними побеждает инструкция: это прямо прописано в документации Савви.
Когда агент должен знать это при каждом обращении без исключений, например правило приветствия или условие передачи диалога человеку. Всё, что меняется по товарам, ценам или филиалам, разумнее держать в базе знаний: инструкция не резиновая, и раздутая инструкция чаще путает модель, чем помогает.
Когда результат должен быть предсказуемым и техническим, например остановить диалог, поставить тег, вызвать менеджера. Такие действия оформляют вызовом готовой функции, а не длинным текстом в инструкции: она либо срабатывает по условию, либо нет, без вариаций формулировок.
Первый сигнал: инструкция разрослась настолько, что модель путает пункты и теряет часть условий. Второй: у бизнеса объективно есть разные роли, например секретарь и специалист по записи, продавец и служба поддержки. Тогда задачи разносят по отдельным агентам, а не по разделам одной инструкции.
Минимум три группы: системные (дата, канал, ссылка на диалог), канальные (имя, логин, идентификатор чата: то, что придёт из подключённого мессенджера или CRM) и те, что агент запомнит сам по ходу диалога. Список нужен заранее, потому что от него зависит, что уйдёт дальше: в вебхук, рассылку или уведомление менеджеру.