Buff Guardrails

Модели не нужен паспорт вашего клиента, чтобы написать ему ответ

Шлюз между сотрудниками и ИИ-моделью: убирает персональные данные и секреты из запросов и возвращает их в ответ. Сотрудник работает в Claude Code, Claude Desktop или любом другом клиенте как обычно, модель видит обезличенный текст, данные не покидают компанию.

Скачать с GitHub Посмотреть примерОткрытый код, лицензия MIT. Работает на ваших машинах, видеокарта не нужна
0запросов уходит внешним провайдерам: модель — ваша, в вашей сети
10 мсна проверку запроса правилами: документы, карты, телефоны, ключи
100 из 100СНИЛС, КПП, ИНН и email находятся и маскируются
3 командыдо работающего шлюза и демо на вашей машине

Возражение 01

«Из-за персональных данных ИИ у нас запрещён»

Или разрешён — и каждый сам решает, что вставлять в чат.

Модели не нужны настоящие данные

Люди несут в модель письмо клиента, выгрузку из CRM, лог с паролем в стектрейсе. Запрет не работает — работу уносят в личный ChatGPT. Блокирующий фильтр не работает — получается тот же запрет, только с раздражением. Guardrails исходит из простого наблюдения: чтобы написать клиенту ответ, модели достаточно знать, что здесь стоит имя, а здесь — телефон. Поэтому шлюз ничего не блокирует: он заменяет данные нумерованными заглушками, отдаёт модели и возвращает настоящие значения в ответ.

Что вставил оператор

Здравствуйте! Меня зовут Коновалова Марина Ильинична, заказ №4471920 так и не приехал. Мой телефон +7 (921) 334-18-07, почта marina.konovalova@example.com, адрес доставки: г. Казань, ул. Чистопольская, д. 61, кв. 14.

Что получила модель

Здравствуйте! Меня зовут <PERSON_1> <PERSON_2>, заказ №4471920 так и не приехал. Мой телефон <PHONE_NUMBER_1>, почта <EMAIL_ADDRESS_1>, адрес доставки: г. <LOCATION_1>, ул. <LOCATION_2>, д. 61, кв. 14.

Что получил оператор

Здравствуйте, Коновалова Марина Ильинична! Благодарим за обращение. Мы очень сожалеем, что заказ №4471920 так и не приехал. Пожалуйста, подтвердите ваш адрес доставки: г. Казань, ул. Чистопольская, д. 61, кв. 14.

Это реальный прогон через небольшую модель gemma3:4b на процессоре. Один и тот же человек в письме — одна и та же заглушка, поэтому модель рассуждает о нём связно, а восстановление однозначно. Номер дома в модель ушёл: базовый распознаватель видит названия, но не номера — точная модель закрывает и их, об этом ниже.

Возражение 02

«Что именно он находит? Регулярки ловят телефоны, а дальше?»

ФИО в косвенных падежах, адреса и номера документов без подписи — обычное место провала.

Документы — правилами с контрольными суммами, имена и адреса — моделью

Нейросеть не знает алгоритм контрольной суммы СНИЛС и может принять номер заказа за ИНН. Правило знает: сумма сходится — ИНН, не сходится — нет. Поэтому документы, карты, телефоны, email, ключи и пароли находят правила за десять миллисекунд. Имена и адреса правилами не описать — их ищет модель распознавания, которую вы выбираете при установке: быстрая spaCy или точная ruBERT. Если модель и правило спорят, побеждает правило.

Документы РФ

Паспорт, СНИЛС, ИНН, ОГРН и ОГРНИП, КПП, ОМС, водительское удостоверение — по форме и контрольной сумме.

Платежи

Номера карт Visa, Mastercard и «Мир» по алгоритму Луна, CVC, счета, БИК, IBAN.

Контакты

Телефоны российские, международные и NANP, email, IP-адреса, URL, даты рождения.

Секреты

Ключи AWS, GitHub, GitLab, OpenAI, Anthropic, Slack, Stripe, Telegram, JWT, приватные ключи PEM, пароли в URL и в присваиваниях.

Имена и адреса

ФИО в любых падежах, города, улицы и дома — модель распознавания, быстрая или точная на ваш выбор.

Ваши слова

Названия клиентов, кодовые имена проектов, номера договоров и внутренние домены — из вашего словаря.

100из 100 СНИЛС, КПП, ИНН и email находит и маскирует
96из 100 телефонов — в любом написании, с кодом страны и без
90из 100 паспортов — пропускает серию и номер без слова «паспорт» рядом
86из 100 ключей и паролей — hex-строки без слова «токен» рядом оставляем, чтобы не прятать каждый хеш коммита
Полные таблицы бенчмарка — на GitHub

Возражение 03

«Как убедиться, что он работает на наших текстах?»

Не на примерах из презентации, а на своём письме и своём логе.

Демо: вставьте текст и посмотрите, что уйдёт в модель

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

Демо Buff Guardrails

← прокрутите кадр →

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

Возражение 04

«Сколько это внедрять?»

Обычно такой проект — квартал с интегратором.

Три команды и три вопроса

Скрипт установки спросит, какую модель использовать — запустить на этой машине, указать адрес вашей или пока обойтись без неё, — насколько тщательно искать имена и адреса и на каких портах открыть шлюз и демо. Дальше он сам скачает и запустит всё необходимое и проверит себя: замаскирует тестовое письмо, пропустит через шлюз и убедится, что в ответе всё восстановилось.

git clone https://github.com/buffsystems/buff-guardrails.git
cd buff-guardrails
./install.sh

Docker

Linux, macOS или Windows с Docker Desktop. Видеокарта не нужна: правила и базовая модель распознавания работают на процессоре.

Память

8 ГБ для шлюза и демо. Если модель будет работать на этой же машине — от 16 ГБ.

Модель

Ollama в комплекте, vLLM для машины с видеокартой NVIDIA или адрес модели, которая уже есть в компании. Можно начать и без модели — только маскирование и демо.

Шлюз понимает API Anthropic и OpenAI. Claude Code достаточно трёх переменных окружения:

export ANTHROPIC_BASE_URL=http://localhost:4000
export ANTHROPIC_AUTH_TOKEN=sk-...
export ANTHROPIC_MODEL=default

Claude Desktop и Cowork, Buff Code и любой SDK подключаются так же — пошагово для Windows, macOS и Linux, с экспортом настроек для раздачи сотрудникам: docs/clients.md

Возражение 05

«А если он что-то пропустит?»

Честный ответ важнее красивой цифры.

Что шлюз делает, а чего не делает

Слабое место базового варианта — адреса: spaCy на русском видит названия улиц и городов, но не номера домов. На живых переписках он находит 60 имён и 51 адрес из ста, точная модель ruBERT — 92 и 98, ценой 150 миллисекунд на запрос вместо 11. Если сотрудники работают с обращениями клиентов, выбирайте ruBERT — это один пункт в установщике.

  • Не блокирует запросы и не ведёт реестр инцидентов: это не DLP, а слой между сотрудником и моделью, который делает обычную работу безопасной.
  • Не заменяет правовые основания обработки: он снимает передачу данных третьему лицу, остальное — ваши регламенты.
  • Не обещает ста процентов: цифры измерены на открытых наборах и воспроизводятся командой make bench в репозитории.
  • Открытый код под лицензией MIT: что именно и как маскируется, можно проверить, а не поверить.
Как устроена безопасность самого Buff

Остальные вопросы

Что спрашивают о Buff Guardrails

Это ещё один прокси, через который пойдут наши данные?

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

Какие модели можно использовать?

Любую с OpenAI-совместимым API. В комплекте Ollama — например, gemma3 на процессоре — и vLLM для машины с видеокартой NVIDIA; можно указать адрес модели, которая уже работает в компании.

Что с английскими текстами и смешанными логами?

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

Можно добавить свои слова — названия клиентов, проектов?

Да. Корпоративный словарь в YAML: названия клиентов, кодовые имена проектов, номера договоров и внутренние домены маскируются наравне с остальным и так же восстанавливаются в ответе.

Это часть Buff или отдельный продукт?

Отдельный открытый набор, Buff для него не нужен. Он работает с любым клиентом, который ходит в OpenAI или Anthropic API: Claude Code, Claude Desktop и Cowork, Buff Code, ваши скрипты.

Где задать вопрос или сообщить об ошибке?

В issues репозитория buff-guardrails на GitHub. Поддержка по договору — в составе Enterprise.

С чего начать

Поставьте шлюз и вставьте в демо своё письмо

Нужны Docker и 8 ГБ памяти. Через несколько минут после ./install.sh у вас адрес шлюза для Claude Code и демо, в котором видно, что уйдёт в модель.

Открытый код, лицензия MIT. Вопросы и ошибки — в репозитории на GitHub