Перейти к содержимому
MMW · Документация

Встроить MMW в свой продукт

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

К концу страницы у вас будет:

  1. схема, по которой продукт обращается к MMW;
  2. способ разделить память ваших пользователей;
  3. порядок выкатки, при котором сбой MMW не ломает продукт.
Ваш продуктMMW
Пользователи, вход, права доступаХранит факты и решения между сессиями
Тарифы и оплата ваших клиентовПоиск по смыслу и по словам
Основные данные и бизнес-логикаОтметки устаревания по источнику (stale)
Решение, что показать пользователюПротиворечия видны как conflict, а не теряются

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

Интерфейс → API вашего продукта → MemoryAdapter → https://mcp.mmwhub.ru/mcp
│
└→ ваша БД (пользователи, права, связи с записями MMW)

Весь обмен с MMW идёт через один модуль на вашем сервере, назовём его MemoryAdapter. В нём:

  • адрес и ключ MMW (ключ только на сервере, никогда в браузере или мобильном приложении);
  • выбор рабочей области по пользователю;
  • повторы при сбоях сети и единый разбор ошибок;
  • журнал вызовов без текста записей.

Интерфейс никогда не обращается к MMW напрямую.

MMW отвечает по протоколу MCP поверх HTTP. Для сервера это обычный POST с JSON-RPC, отдельная инициализация не нужна.

Окно терминала
curl -s https://mcp.mmwhub.ru/mcp \
-H "Authorization: Bearer $MMW_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search","arguments":{"query":"способ доставки","workspace":"u-1842","limit":5}}}'

Ответ лежит в result.content[0].text в виде JSON. Сохранение устроено так же, с "name":"remember" и аргументами content, workspace, fact_key, source_id, confidence. Все параметры описаны в справочнике: search, remember, forget.

Есть два способа.

Рабочая область на пользователя. Один ключ, привязанный к отдельному проекту продукта. Адаптер сам подставляет workspace вида u-<id пользователя в вашей системе> и никогда не берёт его из запроса клиента. Подходит большинству продуктов.

Свой проект на клиента-компанию. Если ваши клиенты сами компании и им важна строгая изоляция, заведите каждой отдельный проект и ключ. Адаптер выбирает ключ по компании. Ключи храните зашифрованными.

В обоих случаях идентификатор пользователя берите постоянный и неизменный: внутренний id, а не почту или телефон. Сменится почта, а память останется на месте.

Если адаптер повторяет remember после сбоя сети, добавьте заголовок X-Idempotency-Key, например хеш от id пользователя и текста факта. Повтор с тем же ключом вернёт ту же запись, а не создаст вторую. Подробно в разделе Правила для агентов.

Для фактов, которые меняются (адрес доставки, тариф клиента), задавайте постоянный fact_key, например customer.delivery.address. Новая версия пометит старую как заменённую, и поиск вернёт актуальную.

  1. Один безопасный сценарий. Только чтение: перед ответом бот ищет в памяти пользователя и добавляет найденное в контекст модели. Функция за флагом, по умолчанию выключена. Без ключа MMW адаптер просто ничего не находит, продукт работает как раньше. Таймаут вызова 2–3 секунды.

  2. Запись. Модель сохраняет итог разговора: решение клиента, договорённость, предпочтение. Повторы с X-Idempotency-Key. В вашей БД храните id записей MMW рядом с вашими сущностями, а текст записей в свой журнал не пишите.

  3. Удаление по запросу. Пользователь просит забыть или удаляет аккаунт: адаптер берёт из вашей БД id его записей MMW (их вы сохраняли на шаге 2) и вызывает forget по каждому memory_id. Это нужно для персональных данных, сделайте это до широкого запуска.

  4. Источники и свежесть. Если память строится из ваших документов (база знаний, регламенты), передавайте source_id и source_hash. Когда документ меняется, старые факты получат stale.

  • Не передавайте ключ MMW в браузер, мобильное приложение или промпт модели.
  • Не давайте модели самой выбирать workspace: его подставляет адаптер.
  • Не сохраняйте в память пароли, платёжные данные и сырые выгрузки переписки.
  • Не делайте ответ продукта зависимым от MMW: при ошибке или таймауте отвечайте без памяти.

Лимиты на вызовы в минуту и число записей зависят от тарифа, они собраны в разделе Лимиты. Если нужна память для многих тысяч пользователей вашего продукта, напишите на support@mmwhub.tech: подберём тариф и лимиты.