Откуда ИИ-агент берёт данные для точного ответа: таблицы, база знаний, поля CRM и переменные диалога. И как он пишет данные обратно.
ИИ-агент берёт данные из четырёх мест: таблицы для точных цифр по строкам, база знаний для текстов и условий, поля CRM, которые приносит канал, и переменные — то, что агент запомнил в разговоре. Обратно агент пишет только в подключённую Google-таблицу и в поля CRM, каждое обращение — отдельный вызов функции, лимит которого 10 за диалог.
Прайс на услуги в компании существует в трёх версиях сразу: в таблице у бухгалтера, в презентации для отдела продаж и в голове у старшего менеджера, который помнит скидку для постоянных клиентов лучше, чем оба документа вместе взятые. Три версии редко совпадают день в день, и когда клиент спрашивает цену у чат-бота, первым делом хочется понять — а бот вообще откуда её взял.
Данные для ответа приходят из четырёх мест, и они устроены по-разному, потому что каждый источник решает свою задачу.
| Источник | Что там лежит | Как агент находит нужное |
|---|---|---|
| Таблицы | цены, остатки, расписание, каталог | переводит вопрос в запрос к строкам |
| База знаний | условия, описания, регламенты, FAQ | ищет ближайший по смыслу кусок текста |
| Поля CRM | данные сделки: этап, сумма, менеджер | получает готовыми от подключённого канала |
| Переменные | то, что сказал сам клиент в этом диалоге | запоминает по ходу разговора |
Разница в источнике определяет разницу в цене ответа. Таблица и CRM отдают одну конкретную строку или поле, база знаний собирает подобранный текстовый кусок, а переменная вообще ничего не запрашивает заново: значение уже лежит в памяти диалога. Ответ дороже всего обходится там, где цифру держат прямо в инструкции: она уходит в модель на каждую реплику независимо от того, спросили о ней или нет.
Проверьте на своих диалогах.Регистрация без карты, 500 ₽ на тест по промокоду BLOG500
Собрать агентаТаблицы подключаются файлом CSV, файлом Excel или ссылкой на Google-таблицу и обновляются по расписанию: период задаётся в минутах, по умолчанию раз в сутки. Вопрос клиента превращается в запрос к строкам, и в модель уходит только найденное значение, а не весь файл: размер прайса почти не сказывается на стоимости ответа.
Требования к файлу, ограничение выборки и смысловой поиск по колонкам для случая, когда клиент называет товар не так, как он записан в прайсе, собраны в статье «ИИ-агент и таблицы». Здесь важнее принцип: цифра берётся из одного места, и это место обновляется, а не переписывается в инструкции вручную каждый раз.
Условие доставки, правило возврата или описание услуги в строку таблицы не помещаются — там нужен связный текст, и агент ищет его по смыслу вопроса, а не по точному совпадению.
Документ режется на смысловые куски и хранится вместе с быстрыми ответами и таблицами в общей базе знаний. Насколько строгим будет отбор нужного куска, задаёт порог поиска — от строгого 0,7 до гибкого 0,3, и от этого порога прямо зависит, найдёт агент ответ или промолчит: этому целиком посвящена статья про порог поиска по базе знаний. Разница с таблицей здесь принципиальная: таблица возвращает строку, база знаний — формулировку, из которой агент собирает ответ своими словами.
Часть данных агенту не нужно искать вовсе — они уже приходят вместе с обращением клиента. Поля сделки, выбранные при настройке канала CRM, попадают агенту в переменные с префиксом entity_ и тем псевдонимом, который вы задали полю сами: полю с техническим именем присвоили алиас «Промокод» — агент видит его как entity_Промокод, без обращения к самой CRM за этим значением.
То, что клиент называет уже в разговоре, например имя, дату или сумму заказа, сохраняется через переменные: фиксированные проверяют формат и годятся для передачи дальше, динамические запоминают смысл фразы через функцию memorize, когда точный формат не важен. Оба вида данных, из CRM и из диалога, живут в одной памяти агента и подставляются в ответ одинаково — разница только в том, кто их туда положил: канал или сам разговор.
Читать источник и писать в него — разные права, и совпадают они не всегда. Файл CSV или Excel агент только читает: записать строку назад в статичный файл нечем. Подключённая Google-таблица устроена иначе — там отдельными флагами включаются добавление новой строки и правка уже существующей, а находит нужную строку агент по любой колонке с уникальным значением, например по номеру заказа.
С CRM работает похожий, но отдельный переключатель: в настройках канала есть заполнение карточки сделки, и оно по умолчанию выключено, потому что каждое выбранное поле — это токены, которые едут в модель при любом плановом действии. Практический вывод один и тот же для обоих случаев: выбирайте для записи узкий набор полей и колонок, а не всё, что теоретически может пригодиться. Лишнее поле не ошибка, но лишний счёт за токены.
Поиск строки для правки идёт по значению из выбранной колонки, и платформа берёт первое совпадение. Если колонка не уникальна, скажем, два одинаковых имени клиента, правка уйдёт не в ту запись. Колонка для поиска должна содержать значения, которые не повторяются: номер заказа, телефон, e-mail.
Соберите три версии прайса из примера в начале статьи и сверьте их между собой, прежде чем подключать таблицу к агенту: разъезжаются они почти всегда, и агент унаследует любое из этих расхождений так же честно, как унаследовал бы его новый сотрудник в первый день. Дальше решите по каждому факту, где его настоящее место — строка таблицы, кусок базы знаний, поле CRM или ничего из перечисленного, потому что данные устарели и держать их нигде не стоит.
Когда источник один и он актуален, у чат-бота и у менеджера в трубке звучит одна и та же цифра — и это дешевле проверить один раз в начале, чем объяснять клиенту разницу после.
Четыре источника разной природы: таблицы с точными значениями по строкам, базу знаний с текстами и фактами, поля CRM, которые агенту передаёт подключённый канал, и переменные: то, что агент сам запомнил в ходе разговора. Выбор источника определяет, насколько точным и дешёвым получится ответ.
Таблица нужна там, где важна точная цифра по конкретной строке: цена, остаток, дата. Агент переводит вопрос в запрос к таблице и получает только найденные строки. База знаний ищет по смыслу текста и годится для условий, описаний и правил, где на первый план выходит формулировка: разряд числа там для поиска значения не имеет.
Через подключённый канал: поля сделки, которые выбраны в настройках канала, попадают агенту в переменные с префиксом entity_ и своим псевдонимом. Агент видит их сразу при открытии диалога и не спрашивает то, что уже есть в карточке.
Да, двумя путями. В подключённую Google-таблицу: отдельными флагами добавления и изменения строки. В CRM: заполнением полей сделки или лида, если этот переключатель включён в настройках канала. Файл CSV или Excel агент может только читать.
Каждое обращение к таблице, базе знаний или полю CRM — это вызов функции, а любая переданная в модель информация считается в токенах. На один диалог платформа ограничивает число вызовов одной функции десятью, а тысяча токенов стоит около 1 рубля. Обращение к нужной строке дешевле, чем прайс, вписанный целиком в инструкцию.
Агент ответит тем, что нашёл первым по своей логике поиска, и не станет сверять источники между собой. Расхождение цены в таблице и в презентации менеджера — вопрос владельца данных внутри компании: у данных должен быть один актуальный источник, иначе разными окажутся и ответы бота, и ответы людей.
Хотите сразу к продукту: Конструктор чат-ботов для CRM-системы