Главный принцип

Модель не должна решать, имеет ли пользователь доступ. Identity проверяется на gateway, права вычисляет policy layer, retrieval видит только разрешённое множество, и лишь затем chunks попадают в prompt.

Доверенная identity

Не принимайте tenant_id или role из произвольного body. Используйте проверенный token, серверную сессию и mapping на внутренний principal. Сохраняйте decision ID для аудита.

Security trimming до генерации

Фильтруйте candidates на search layer или в изолированном permission-aware retriever. Удалить секрет из готового ответа сложнее и ненадёжнее, чем не передать его модели.

ACL при ingestion и query

Документ хранит нормализованные principals или policy reference. Изменение прав требует быстрой переиндексации или внешней проверки. Определите поведение при недоступности policy service: для закрытых данных fail closed.

Кэши и shared memory

Query cache, semantic cache и agent memory включают tenant, user scope, policy version и модель. Общий ключ только по тексту запроса способен вернуть ответ, построенный на чужих документах.

Цитаты тоже чувствительны

Даже название файла, URL и snippet могут раскрыть существование закрытого объекта. Citation renderer повторно проверяет права и не выдаёт source metadata вне scope.

Проверка изоляции

Автоматизируйте negative tests: пользователь A запрашивает уникальный marker B; права меняются во время сессии; документ удаляется; cache прогрет другим tenant. Любое появление marker — критический инцидент.

С чего начать?
С ограниченного корпуса, реальных запросов и измеримого baseline. Зафиксируйте версии данных, retrieval и модели до эксперимента.
Какие метрики обязательны?
Retrieval quality, correctness ответа, p95 latency, стоимость и ошибки по отдельным сегментам запросов.
Можно ли копировать настройки из документации?
Только как baseline. Финальные параметры выбираются по вашему корпусу, фильтрам, языку и нагрузке.
Как выпускать изменение?
Собрать новую версию рядом, прогнать offline eval и shadow, затем canary с готовым rollback.
Что логировать?
Trace ID, версии pipeline и индекса, transformed queries, candidate IDs, filters и итоговые метрики без лишнего чувствительного payload.
Как избежать утечки данных?
Проверять identity и ACL до retrieval, изолировать кэши и повторно проверять права при показе citations.
← Все статьи блога