Habr iconHabrSep 11, 2026 ~6 min source read

DLP для LLM: как сохранять приватность имен сотрудников и при этом не ломать поиск

AGIMA описывает архитектуру обратимой псевдонимизации для корпоративного контура с внешними LLM: где хранить mapping, как делать entity resolution и почему проверять нужно и входной prompt, и ответ модели.

DLP для LLM: как обезличивать запросы и не ломать поиск по сотрудникам

Share this story

Send the public story page.

Useful takeaways from this story.

Одна и та же реальная личность должна отображаться в контексте как единая сущность — применяйте entity resolution и справочники, а не локальную нумерацию.

Проверяйте не только входящий prompt (деперсонализация), но и ответ модели (регидрация) — контроль обеих сторон важен для безопасности.

# Проблема Сотрудник пишет в корпоративный поиск: «найди последние задачи Петрова по проекту X и сравни их с обсуждением на встречах». Если перед отправкой внешней LLM просто заменить фамилию на случайный маркер (например NAME_1), связь между запросом, найденными документами и ответом модели теряется. Оставить имя в явном виде рисковано — оно может выйти за пределы доверенного контура.

# Подход AGIMA: обратимая деперсонализация AGIMA предлагает архитектурный приём, где сопоставление реальных значений и маркеров хранится внутри защищённого контура, а во внешний prompt уходит только типизированный псевдоним. Это не окончательная анонимизация, а псевдонимизация — таблица соответствий позволяет восстановить исходное значение и потому требует защиты и аудита.

# Почему простые маркеры не подходят Две главные проблемы naивной схемы:

  • Непостоянство нумерации: маркер часто генерируется по позиции в одном сообщении, в соседнем том же человеку присваивают другой маркер, и поиск теряет связь.
  • Потеря типа и связей: LLM не знает, чем отличается телефон от фамилии или логина, если всё превращено в одинаковые токены.

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

# Где хранить mapping и как он работает Внутренний контур строится как gateway перед LLM. Путь запроса:

  • отправка типизированного prompt внешней модели.

На обратном пути ответ модели проходит регидрацию (re-hydration) на основе session-mapping и прав вызова. В production-примере mapping живёт в сессии (например, два часа), ограничен по объёму токенов и работает в режиме insert-only: повторная подстановка не перезаписывает значение. Доступ к раскодированию требует отдельного права (pii_reveal) и фиксируется в логе аудита.

# Почему формат токена имеет значение

# Entity resolution и справочники Не все строки считаются одинаково чувствительными и одинаково полезными. AGIMA решает сопоставление не только моделью, а справочником и правилами сопоставления. В дев‑тенанте справочник включает сотрудников, юридические лица и другие записи, пополняемые и отзываемые через API/UI. Транслитерация и лемматизация выполняются в матчере. В UI подавление помечается reason=directory.

# Политика и аудит Policy engine принимает решение до деперсонализации. Регидрация возможна только при соответствии прав и наличия mapping в сессии. При расследовании инцидента mapping хранится шифрованно и доступ к раскрытию отделён от обычных прав. Такой подход минимизирует риск утечки ПД и сохраняет полезность поиска.

# Практические выводы

  • Держите stateful mapping в доверенном контуре и ограничьте время и объём хранения.
  • Обеспечьте entity resolution на уровне справочников, чтобы одна личность оставалась одной сущностью в сессии.
  • Регидрация выполняйте только по session-mapping и правам, с аудиторией раскрытий.
  • Проверяйте и входящие promпты, и исходящие ответы — безопасность на обеих сторонах процесса.

More context around this story.

Зачем разделять роль и личность у виртуальных сотрудников
Habr iconHabrSep 14, 2026

Зачем разделять роль и личность у виртуальных сотрудников

Привет, Хабр! Допустим, вы внедрили LLM-агента в финансовый отдел компании. Все хорошо, пока вы не решаете его подправить: добавить инструкцию или сделать тон дружелюбнее. С точки зрения классического инфобеза вам нужно все перевалидировать. Личность вашего агента (инструкции, тон, самопрезентации и так далее) живет в

pg_anon: как быстро обезличить базу 1С без промежуточной копии
Habr iconHabrSep 22, 2026

pg_anon: как быстро обезличить базу 1С без промежуточной копии

База 1С:ERP размером 650 Гб. 74 секунды на поиск всех персональных данных. Маскирование прямо в дампе, без незащищенных копий. Четыре часа до готовой обезличенной копии. В статье все разбираю пошагово, с готовым мета-словарём, который можно взять для своей базы. Читать далее

LLM, персональные данные и 152-ФЗ
Habr iconHabrSep 4, 2026

LLM, персональные данные и 152-ФЗ

Мы занимаемся внедрением LLM и агентов в бизнесы, и одна из самых частых проблем — как обрабатывать данные клиентов и при этом соблюдать закон 152-ФЗ о персональных данных. Давайте разберёмся!

Семантический слой на TypeDB: как уйти от паутины SQL-джойнов к декларативной модели данных
Habr iconHabrSep 24, 2026

Семантический слой на TypeDB: как уйти от паутины SQL-джойнов к декларативной модели данных

Кратко (TL; DR): ● Реляционные базы и классические графы теряют смысловую структуру при моделировании сложных многосторонних связей, вынуждая разработчиков дублировать бизнес-логику в SQL-запросах, коде микросервисов и витринах данных. ● Тот же разрыв всплывает, когда поверх данных ставят LLM или ИИ-агента: без явных с

Автоматизируем разбор резюме с помощью LLM, Python и FMC
Habr iconHabrSep 24, 2026

Автоматизируем разбор резюме с помощью LLM, Python и FMC

Когда в день вам присылают 400 резюме на одну вакансию, «посмотреть всех» физически не получится. Зато это выглядит прямо как задача под автоматизацию! Итак, у меня есть вакансия и огромная пачка PDF-файлов с резюме. Надо понять, в каких из них действительно подтверждаются нужные компетенции, где информации не хватает

Loading more related stories...

Keep reading in the app

Open the app view to save this story, compare related coverage, and continue from the same source.

Open in app