Перейти к содержимому

Модуль VIII — данные, знания и контекст

Модуль VIII — это управляемый data plane: он строит базы знаний и выполняет семантический RAG поверх подключаемого векторного индекса, управляет каждым извлечением по идентичности, классификации и резидентности и записывает в доступную только для добавления линию происхождения (lineage) то, что пересекло периметр, и то, чему отказал шлюз резидентности. Поэтому резидентность подтверждается свидетельствами, а не просто заявляется. Он также хранит версионированный реестр промптов, управляемую память агента и политики контекста/уплотнения (compaction) как данные — а не как обещания.

Модуль оркестрирует data plane; он не реализует заново своих соседей. Он тянет контент из read-only коннекторов данных, прогоняет каждое тело, шаблон промпта и запись памяти через собственный модуль маскирования перед тем, как что-либо разбивается на чанки, эмбеддится, хешируется или сохраняется, а затем управляет извлечением на основе грантов, которые декларирует модуль идентичности. Эмбеддинг делегируется seam-у модели — модуль никогда не вызывает провайдера напрямую — а ранжирование делегируется seam-у векторного индекса, так что контракт governance одинаков, выполняется ли извлечение внутри процесса или против внешнего ANN-бэкенда.

Красная линия не подлежит обсуждению: продукт управляет данными клиента и никогда не продаёт и не эксфильтрирует их. Данные пересекают периметр только через переход, который подготовил оператор, — к внешнему поставщику эмбеддингов или на выход SIEM/webhook, — а шлюз резидентности работает deny-closed для любого другого назначения. Три механизма фиксируют это в дизайне — маскирование перед индексацией, egress-шлюз и lineage, в которой отражены фактически произошедшие переходы.

Модуль VIII декларирует восемь сущностей в области видимости арендатора (tenant-scoped) в общей модели данных: базу знаний, документ (метаданные и происхождение, никогда тело), чанк (маскированный текст плюс унаследованные классификацию и ACL), промпт и его доступные только для добавления неизменяемые ревизии, управляемую память агента, политику контекста/уплотнения и доступную только для добавления строку lineage. Его маршруты монтируются под собственным пространством имён модуля, обёрнутые аутентификацией, привязкой к арендатору и авторизацией; чтение знаний и lineage — привилегированное, аудируемое действие.

Извлечение — это контракт безопасности, и порядок и есть контракт: определить гранты идентичности (fail-closed — ошибка проверки запрещает, никогда не деградирует до allow), применить residency-шлюз, выполнить эмбеддинг запроса, затем отфильтровать кандидатов по классификации и ACL перед ранжированием, чтобы чанк, который идентичность не может видеть, никогда не попал в ранжированный набор, затем ранжировать, затем добавить неизменяемую строку lineage. Egress-шлюз компонуется поверх: база знаний с блокировкой резидентности (residency-locked) отказывает в ingest или извлечении с эмбеддером, который привёл бы к egress, и это применяется на create, update, ingest и retrieval (defence in depth). Содержимое документов передаётся по типизированному контракту коннектора по дизайну, а не по шине событий — массовые справочные данные не должны транслироваться.

Модуль VIII производит события finding.reported: один хешированный FindingReport на ingest, когда замаскирован секрет или PII, и finding, когда residency- или egress-шлюз отказывает — только хешированные детали, никогда не сам секрет или тело. Форензика и комплаенс потребляют lineage и эти findings. Он не потребляет из шины ничего для контента: по дизайну контент идёт по типизированному контракту pull, так что минимальность данных — свойство канала, а не runtime-фильтр, применённый постфактум.