Границы и права
Что разговор на вашем сайте может и чего не может заставить агента сделать, что владелец вправе открыть и чем каждое из этого грозит. Прочитайте раньше, чем что-то откроете.
Чей это разговор
У посетителя вашего сайта нет у нас ни учётной записи, ни команды, ни способа их получить. Но каждый ход агента идёт внутри команды — так продукт решает, что можно читать и кто за это платит.
Поэтому команду посетителю не выдают. Ход идёт от имени владельца агента, в команде агента, через ту же проверку членства, через которую проходит вошедший участник. Личность посетителя — это метка на разговоре и больше ничего.
Два следствия, которые стоит произнести вслух:
- Платит владелец. Каждый ответ незнакомому человеку расходуется из лимитов владельца, а не посетителя.
- Посетитель ничего не может себе расширить. Никакое присланное им значение не создаёт прав. Нет поля, заголовка или сообщения, которые превратили бы посетителя в участника команды.
Четыре умолчания
Из коробки и в любой установке разговор, пришедший с сайта, уже, чем тот же агент в кабинете:
| что это значит | |
|---|---|
| Отдельная ветка | Переписка с сайта не смешивается с перепиской владельца. То же хранилище, то же окно контекста, другой канал. |
| Нет рук | Ни песочницы, ни команд, ни выхода в сеть, ни дополнительных возможностей типа агента. Агент отвечает, но не действует. |
| Ничего не запоминается | Из этого разговора ничего не попадает в долгую память агента. |
| Только ответ | Посетитель видит ответ. Не рассуждения, не шаги с инструментами и не то, что инструмент вернул. |
Это умолчания, а не законы. Так устроена каждая привязка в каждой базе и так ведёт себя канал в момент публикации — но владелец агента может снять их поштучно с экрана «Сайт».
Четыре права и цена каждого
Сначала честная фраза, ради которой эта страница и существует:
незнакомый человек, открывший страницу, может заставить агента выполнять команды в песочнице, ходить в сеть, писать в свою долгую память и перепланировать то, что он делает сам, — с правами владельца и за счёт владельца.
И «незнакомый» здесь буквально. Билет лежит в HTML страницы, поэтому «открыть посетителям сайта» и «открыть всем, кто нашёл страницу» — это одна и та же фраза.
hands — агенту можно действовать
Возвращает набор инструментов песочницы и сам исполнитель, который их запускает. Обе половины сразу: набор инструментов без машины под ним описывает инструменты, которые не могут выполниться.
Чем грозит. Фраза незнакомого человека становится командой, выполненной в контейнере, и сетевыми обращениями из него. Собственный грант агента и его список разрешённых адресов по-прежнему ограничивают, куда он может дотянуться: это право снимает запрет, лежавший сверху, а не превышает их.
Это меняет и деньги. Разговор был ограничен 12 сообщениями в минуту на посетителя и 60 на агента; при открытых hands пределы становятся 4 и 15, в тех же корзинах, так что переключение посреди минуты не выдаёт никому две нормы. Это ограничение потока, а не потолок трат.
memory — разговор можно запоминать
Позволяет куратору прочитать этот разговор и записать из него в долгую память агента.
Чем грозит. То, что говорит незнакомый человек, начинает влиять на то, как агент отвечает всем остальным, включая владельца. Любое утверждение посетителя — кандидат на то, во что агент потом будет верить.
schedule — агенту можно менять своё расписание
Возвращает инструменты расписания и возможность разговора самому начать работу.
Чем грозит. Это единственное право, чей ущерб переживает визит: незнакомый человек может оставить работать постоянное задание после того, как закроет вкладку. Поэтому его включение требует, чтобы владелец подтвердил его, набрав идентификатор агента. Выключение не требует ничего.
visibility — посетителю видна работа
Отправляет в браузер рассуждения агента и его шаги с инструментами — отдельными заметками.
Чем грозит. Это раскрывает, как устроен агент, а в аргументах инструмента — и обрывки того, что он прочитал. Это отдельное решение, а не довесок к hands: результат инструмента не уходит ни при каком раскладе, в заметке едут имя инструмента и вердикт.
Картинки, которые прикладывает посетитель
Виджет позволяет посетителю приложить изображение, и агент его видит. Это часть обычного разговора, а не пятое право: картинка — это то, что человек говорит, а не что-то принадлежащее агенту и передаваемое наружу, поэтому включать нечего и выключать нечего — кроме самого канала.
Ограничено то, во что это обходится вам:
| Типы | PNG, JPEG, GIF, WEBP — те же четыре, что принимает ваш собственный чат в кабинете, и никакие другие |
| Размер | 1 МБ на картинку (свой чат разрешает три) |
| Сколько | до пяти на одно сообщение |
| Как часто | обычный предел потока — двенадцать сообщений в минуту на человека |
Всё, что за этими пределами, получает отказ фразой, которую посетитель прочитает, и в ней назван предел: «Картинка слишком большая — принимаю до 1 МБ». Молча картинка не пропадает никогда, и агент никогда не отвечает так, будто картинки, которую человек сам у себя видел приложенной, не было.
Ваша команда её видит. Картинка ложится в разговор этого посетителя, рядом с его словами, и команда читает её на карточке человека в кабинете — тот же экран и то же чтение, что и для текста. Больше её не достанет никто: байты отдаются только по подписанной ссылке с истечением.
Удаление человека её сохраняет. Удаление лида стирает человека — запись и всё, что вы о нём отметили, — и оставляет его разговоры, ровно как и раньше. Картинка принадлежит тому разговору, в котором её прислали, поэтому остаётся вместе со словами, с которыми пришла. Забирает её удаление разговора или агента.
Чего не достаёт никакая комбинация
Прошлых разговоров агента. Чтение истории чата не входит в четыре права и не подмешано ни к одному из них. Никакой переключатель на том экране не даёт посетителю сайта прочитать, что говорили этому агенту другие.
И при любой комбинации: от чьего имени идёт ход, не меняется. Ни одно право не создаёт прав из личности посетителя, и ни одно не позволяет агенту выйти за собственный грант и список разрешённых адресов.
Прийти опознанным, а не анонимом
Если ваш сайт уже знает, кто перед ним, — покупатель, который вошёл, заказ, который оформляется, — человек может приходить в чат под своим именем, а не очередным анонимом. Для этого нужен билет, выпущенный сервер-сервер, с личностью внутри, вашим бекендом, а не страницей: см. Что нужно на сервере.
Мы верим вашему сайту в том, кто это, — в пределах его команды и не дальше. Это то, что покупает ключ, и то, чем он ограничен. Быть узнанным — не значит получить права: у названного посетителя те же четыре умолчания и те же разрешения, что и у анонимного, и ход по-прежнему идёт от имени владельца агента.
И самому агенту имя не сообщается. Личность записана РЯДОМ с разговором — это то, что ваша команда читает в списке лидов, — а не подставлена в то, чем агент думает. Если хочется, чтобы агент здоровался по имени, это первое сообщение вашей страницы, а не свойство этих учётных данных.
Посетитель, пришедший без личности, по-прежнему аноним, а запись лида появляется у него на первом принятом сообщении — не в момент обмена билета, потому что браузер, открывший страницу и ничего не сказавший, — это не человек, ради которого стоит заводить строку.