Инструкции и промпты

Архитектура ИИ-агента: схема и шесть слоёв

Схема ИИ-агента по слоям: канал, контекст, модель с инструкцией, знания, функции и контроль. Что за что отвечает и где искать поломку в кабинете Савви.

Антон БесщетниковОбновлено 12 ноября 202610 мин чтения
Бумажный робот в разрезе: шесть горизонтальных слоёв внутри корпуса, один коралловый, слева конверт, справа пузырь диалога
Коротко

Архитектура ИИ-агента — это шесть слоёв: канал принимает сообщение, контекст собирает историю, модель с инструкцией решает, что ответить, знания и функции дают факты и действия, контроль проверяет ответ перед отправкой клиенту. У каждого слоя свой признак поломки и свой раздел кабинета Савви.

Щиток в квартире устроен просто: каждая линия подписана, и когда на кухне гаснет свет, вы идёте к автомату «Кухня», а не выкручиваете лампочки по всему дому. С агентом так же. Пока схема живёт в голове того, кто его собрал, любая странность в ответе превращается в переписывание инструкции наугад.

Архитектура ИИ-агента — это схема того, из каких слоёв он собран и в каком порядке сообщение клиента проходит их от канала до ответа.

Из чего состоит ИИ-агент и как слои соединены

ИИ-агент состоит из шести слоёв, через которые проходит каждое сообщение клиента: канал, контекст, модель с инструкцией, знания, инструменты и контроль. Если нужно базовое определение, начните с того, что такое ИИ-агент; здесь разбираем то, что с чем соединено.

Сообщение входит слева и выходит ответом справа. Знания и инструменты вызываются по ходу, когда модель решает, что ей нужен факт или действие:

Путь одного сообщения через слои
1 Канал Принимает сообщение из Telegram, виджета, CRM или телефонии
2 Контекст Добавляет историю диалога и значения переменных
3 Модель с инструкцией Решает, что ответить и что вызвать
4 Знания и инструменты База знаний, функции, таблицы и вебхуки по запросу модели
5 Контроль Барьеры, проверка фактов и проверка действий
6 Ответ клиенту Уходит в тот же канал
Знания и инструменты вызываются по ходу, когда модели нужен факт или действие.

Слои независимы: модель меняется переключателем, база знаний пополняется без правки инструкции, канал добавляется без смены остального. Поэтому поломку можно локализовать — найти слой, а не гадать по всему агенту. Слабый слой снаружи выглядит одинаково: клиент получил плохой ответ.

За что отвечает каждый слой и где он живёт в кабинете

Каждому слою соответствует свой раздел кабинета Савви и свой типичный симптом. Схема ниже работает как подпись на щитке: у каждого слоя виден симптом и автомат.

Выберите слой и посмотрите, за что он отвечает Нажмите на слой
Канал принимает и отдаёт сообщения

Принимает сообщение, отдаёт ответ и показывает его в нужном месте.

За что отвечает
Приём сообщения и выдача ответа
Признак слабого слоя
Сообщение пришло, а ответа в канале нет; ночью агент молчит
Где в кабинете
Подключение канала; «Доп.настройки» → «Рабочее время», «Нераспознанные сообщения»
Контекст решает, что агент помнит

Что агент видит из прошлых реплик и что знает о клиенте.

За что отвечает
История реплик и пользовательские переменные
Признак слабого слоя
Переспрашивает уже названное; тащит в ответ старое
Где в кабинете
«Доп.настройки» → «История сообщений (контекст)», «Пользовательские переменные»
Модель с инструкцией принимает решение

Решает, что ответить, и следует правилам роли.

За что отвечает
Выбор ответа и следование роли
Признак слабого слоя
Сбивается с тона, путает порядок вопросов, игнорирует правило
Где в кабинете
«Доп.настройки» → «Параметры LLM» → «Языковая модель»; поле системной инструкции
Знания дают факты компании

Цены, условия и регламенты, на которые агент опирается в ответе.

За что отвечает
Факты компании: цены, условия, регламенты
Признак слабого слоя
Отвечает общими словами или выдумывает цифры
Где в кабинете
Раздел базы знаний: «Быстрые ответы», «Документы», «Таблицы»
Инструменты выполняют действия

Запись, заявка, запрос в таблицу, вебхук.

За что отвечает
Действия: запись, заявка, запрос в таблицу, вебхук
Признак слабого слоя
Обещает «записал», а записи нет; функция не вызвана
Где в кабинете
Раздел «Функции»: «Таблицы» и «Действия»
Контроль останавливает опасный ответ

Перепроверяет готовый ответ до отправки клиенту.

За что отвечает
Перепроверка ответа и остановка опасного
Признак слабого слоя
Цена или скидка ушла клиенту без источника
Где в кабинете
«Контроль поведения» в верхней части инструкции
У каждого слоя свой симптом и свой раздел кабинета Савви.

Инструкция имеет приоритет над базой знаний: при противоречии агент идёт за инструкцией. Разделы такой инструкции удобно писать по схеме системного промпта, а на слое знаний решают пороги поиска по базе знаний.

Что агент помнит: память внутри диалога и между обращениями

Внутри диалога агент помнит ровно столько реплик, сколько вы передаёте в модель, а между обращениями помнит то, что записано в пользовательские переменные, и историю в пределах срока хранения переписки. Это упрощает диагностику: следы памяти ищут в двух местах.

Внутри диалога. В «Доп.настройках», в разделе «История сообщений (контекст)», четыре режима:

  • «Не передавать историю» — режим вопрос-ответ, каждое сообщение читается само по себе;
  • «Передавать всю историю» — модель видит диалог целиком, понимает контекст лучше, но тратит больше токенов;
  • «Передавать историю за Х сообщений» — только последние реплики заданного числа;
  • «Передавать историю за Х минут» — только то, что сказано за отрезок времени.

Руководство отдельно предупреждает: полная история иногда ухудшает понимание. Клиент записывается на услугу раз в месяц и задаёт похожие вопросы, а агент подтягивает прошлый цикл. Для таких случаев советуют ограничивать контекст по времени. Кнопка «Очистить контекст» в разделе «История» сбрасывает накопленное в конкретном диалоге.

app.suvvy.ai
Раздел «Параметры ответов»: блок «История сообщений (контекст)» с полем «Передавать историю сообщений», значением «Передавать всю историю» и открытой подсказкой
Настройка памяти внутри диалога: поле «Передавать историю сообщений» и подсказка с рекомендацией ограничивать контекст по времени.

Между обращениями. Пользовательские переменные бывают фиксированными (с типом и проверкой формата) и динамическими. Динамическую агент заполняет сам, когда в инструкции стоит строка вроде «Передай эту информацию в функцию memorize». Переменные сокращают контекст и экономят токены, а для динамических есть отдельная опция: очищать их при очистке контекста. Срок хранения самой переписки по умолчанию 45 дней, он меняется в «Безопасность» → «Хранение данных». Клиент, который вернулся через месяц, — отдельный случай: для него настраивают повторные обращения.

Что делает слой контроля, и когда он нужен

Контроль поведения перепроверяет готовый ответ до отправки клиенту и нужен там, где ошибка стоит денег или лояльности: цены, телефоны, скидки, подтверждения. Он включается в верхней части инструкции и состоит из трёх механизмов.

LLM-барьеры добавляют проверку перед отправкой. Готовые барьеры — «Числа только из источников» и «Контроль скидки». При срабатывании ответ перегенерируется по вашей подсказке или заменяется фиксированным текстом, а когда попытки закончились, клиент получает запасную фразу, менеджеру уходит уведомление или диалог останавливается.

app.suvvy.ai
Окно «Контроль поведения»: слева вкладки «LLM-барьеры» и «Контроль действий», справа рекомендуемые барьеры «Числа только из источников» и «Запрет скидки» и кнопка «Добавить выбранные»
Окно «Контроль поведения»: вкладки «LLM-барьеры» и «Контроль действий» и два рекомендуемых барьера.

Контроль фактов включается флагом «Отвечать на вопросы только по базе знаний». Обычный режим проверяет ключевые факты, строгий срабатывает на любое утверждение, по которому не было обращения в базу. В поле «Если ответа нет в базе знаний» вы задаёте фразу для клиента.

Контроль действий ловит ситуацию, когда агент подтверждает запись, но функцию не вызывал. К контролю примыкает передача человеку: «Условия прерывания диалога» и «Условия возобновления диалога» («Время возвращения управления агенту в минутах») лежат в «Доп.настройках».

Как слои работают на одном сообщении и где искать поломку

На одном сообщении слои включаются по очереди, и порядок полезно знать наизусть. Клиент спрашивает в виджете: «Сколько стоит замена масла на Camry и можно в субботу?»

  1. Канал принимает текст и передаёт его агенту, если сейчас рабочее время.
  2. Контекст добавляет историю по выбранному режиму и значения переменных.
  3. Модель читает инструкцию и решает, что ей нужен прайс.
  4. Знания возвращают нужные фрагменты, функция проверяет свободные слоты в субботу.
  5. Модель собирает ответ.
  6. Контроль проверяет, что цена взята из источника, а запись подтверждается вызовом функции.

Каждый шаг тарифицируется токенами: 1000 токенов равны 1 ₽. Чем длиннее история и инструкция, тем дороже каждый ответ. Это ещё одна причина держать слои тонкими — короткая инструкция и ограниченная история дешевле в каждом диалоге.

!
Лимит вызовов

Для одной функции действует лимит 10 вызовов за диалог. Если сценарию нужно много независимых вызовов, в «Параметрах ответа» есть «Лимит параллельного вызова функций»: функции уходят параллельно в одном обращении к модели, и диалог получается дешевле.

Когда ответ пошёл не туда, поломку ищут в обратном порядке, от ответа к каналу, потому что последний слой даёт самый точный след. Тестовый чат показывает, какие функции вызвал агент, а флаг «Отображать стоимость диалога в тестовом чате» помогает увидеть, где разросся контекст.

app.suvvy.ai
Окно «Расшифровка запроса в LLM»: строка «Ответ отправленный клиенту», блоки «Инструкция» и «Служебная инструкция»
Окно «Расшифровка запроса в LLM» показывает, какая инструкция ушла в модель вместе с запросом.
1 Контроль Посмотрите, срабатывал ли барьер или проверка фактов. Если ответ заменён запасной фразой, причина выше по цепочке.
2 Инструменты Проверьте, вызвалась ли нужная функция и что она вернула. Агент, обещающий запись без вызова, — признак инструкции, где действие не привязано к шагу.
3 Знания Найдите фрагмент, который агент получил по вопросу. Нет нужного фрагмента — дело в разбивке документа или в пороге поиска.
4 Модель и инструкция Если факты и функции на месте, перечитайте инструкцию на противоречия. Смена модели в «Параметрах LLM» подсветит, зависит ли промах от неё.
5 Контекст Сравните режимы истории. Агент, цепляющийся за старое, часто получает слишком много реплик.
6 Канал Убедитесь, что сообщение дошло, рабочее время не отсекло ответ и канал принимает такой тип сообщений.

Разложите свой агент по шести слоям за один вечер

Разложите на листе схему из шести слоёв и впишите в каждый свои значения: какой канал подключён, какой режим истории выбран, какая модель стоит, сколько файлов в базе знаний, какие функции подключены и какие барьеры включены. Пустая клетка — место, где поломка случится первой.

Затем возьмите пять реальных диалогов, где агент ответил плохо, и подпишите каждому слой-виновник по порядку из предыдущего раздела. Через час вы увидите закономерность — три из пяти упираются в один и тот же автомат. Исправляйте его, а остальные слои не трогайте. Когда разбор готов, соберите такого агента в Савви и проверьте каждый слой на тестовом диалоге. Если схема агента ещё не продумана, начните с проектирования агента до первой строки инструкции.

Частые вопросы

Из каких частей состоит архитектура ИИ-агента

Из шести слоёв: канал, контекст и память, модель с инструкцией, знания, инструменты и контроль. Канал принимает сообщение, контекст собирает историю, модель по инструкции решает, что ответить, знания и функции дают факты и действия, контроль проверяет ответ перед отправкой.

Где у ИИ-агента хранится память

Внутри диалога память держит история сообщений, ее объем настраивается в «Доп.настройках». Между обращениями агент помнит то, что записано в пользовательские переменные (динамические он заполняет через функцию memorize), и историю в пределах срока хранения переписки.

Чем модель отличается от агента

Модель только генерирует текст. Агентом ее делают инструкция, знания, функции, канал и контроль. Поэтому модель можно сменить в «Параметрах LLM», не пересобирая остальные слои: инструкция, база знаний и подключенные каналы остаются прежними.

Как понять, какой слой ломается

Идите от ответа назад: сначала что ушло клиенту и что показал контроль, затем вызовы функций, найденные фрагменты базы знаний, инструкция и история. Тестовый чат с включенным отображением стоимости диалога показывает, на каком шаге агент свернул не туда.

Нужен ли контроль, если инструкция написана хорошо

Нужен там, где ошибка дорого стоит: цены, телефоны, скидки, подтверждение записи. Инструкция задает намерение, а контроль поведения перепроверяет готовый ответ: LLM-барьеры, контроль фактов по базе знаний и контроль действий.

Сколько стоит работа всех слоев

Платформа списывает токены: 1000 токенов равны 1 ₽, диалог обходится около 15 ₽. В счет попадают сообщение клиента, инструкция, история, заголовки файлов базы знаний, описания функций и ответ, поэтому лишний слой контекста прямо увеличивает стоимость.

Антон БесщетниковОснователь и CEO платформы СаввиБолее 100 внедрений ИИ-сотрудников в разных сферах бизнеса. Пишет о том, как устроены ИИ-агенты: инструкции и промпты, голосовые агенты, интеграции с CRM и каналы общения с клиентами.