Перейти к содержимому страницы
Документация
Документация Make Agent Fast

HTML и JavaScript

Установите, настройте, проверьте и удалите плавающего агента одним публичным скриптом.

Кратко

Установите, настройте, проверьте и удалите плавающего агента одним публичным скриптом.

Путь установки встраиванияЗагрузчик на вашем сайте общается с размещённой средой агента
Ваш сайтHTML / appСкрипт-загрузчикembed.jsИнтерфейс виджетаЧат / голосАгент

Подготовьте сайт#

Откройте настройки Встраивание агента, включите встраивание и добавьте финальный origin страницы-хоста. Разработку и продакшен добавляйте отдельно; http://localhost:3000, https://example.com и https://www.example.com не совпадают друг с другом.

Установите скрипт#

Вставьте загрузчик непосредственно перед закрывающим тегом </body> на каждой странице, где должен показываться загрузчик. Меняйте только публичный slug сайта и необязательные значения оформления.

<script
  src="https://makeagent.fast/embed.js?v=20260728-widget-v2"
  data-agent="YOUR_SITE_SLUG"
  data-position="right"
  async
></script>

data-agent обязателен. Slug публичен; ключ API в этом теге не нужен. Сохраните параметр ?v= из сниппета панели. Необязательные data-label, data-accent (#RGB / #RRGGBB), data-locale (en | ko | uz | ru) и data-theme (light | dark) описаны в Обзоре встраивания. Опустите их, чтобы унаследовать сохранённый внешний вид и автоматическое поведение темы.

Выберите размещение: на весь сайт или на отдельные страницы#

Для общего серверного шаблона разместите скрипт в глобальном макете/подвале. Для выбранных страниц включайте его только в эти шаблоны. Загружайте один и тот же slug один раз на документ; дубли одного slug игнорируются, но удаление дублей делает владение и снятие предсказуемыми.

Не вставляйте сниппет в санитайзер HTML или поле rich-text, которое вырезает <script>. Убедитесь, что отрендеренный исходный код страницы или панель Elements всё ещё содержит тег.

Удаление и повторный монтаж в SPA#

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

const slug = "YOUR_SITE_SLUG";
document.getElementById("maf-agent")?.remove();
document.getElementById(`maf-embed-root-${slug}`)?.remove();

Лучше держать один общий корень смонтированным при клиентской навигации, чтобы активный диалог не терялся. Если корень удалён, добавьте свежий скрипт embed.js, чтобы создать его снова.

Проверьте в браузере#

  1. Откройте развёрнутую страницу в приватном окне.
  2. Убедитесь, что embed.js возвращает 200 и не заблокирован CSP/согласием.
  3. Убедитесь, что существует один корень [data-maf-embed="YOUR_SITE_SLUG"].
  4. Откройте загрузчик и убедитесь, что iframe /embed/YOUR_SITE_SLUG загружается.
  5. Отправьте вопрос и проверьте цепочку в разделе Диалоги.
  6. Проверьте мобильную ширину и разрешение на микрофон, когда включён голос.

Решение проблем#

СимптомРешение
Консоль предупреждает об отсутствующем data-agentПоставьте атрибут именно на тег embed.js
Скрипт есть, загрузчика нетПроверьте переключатель встраивания, точный origin, CSP и состояние согласия
Работает только на одном хостеДобавьте каждый фактический scheme/host/port в разрешённый список
Стиль отличается от ожидаемогоПроверьте data-accent, data-theme и сохранённый вид сайта
Голос не работает внутри iframeРазрешите микрофон в браузере и в Permissions Policy сайта

Никогда не проксируйте и не копируйте загрузчик в непроверенный локальный форк; используйте размещённый скрипт, чтобы проверка origin и исправления оставались актуальными.