Эталонная архитектура

Агентный B2E-ассистент на суверенном стеке

RAG + АГЕНТЫ · ON-PREM-READY

Задача — не «чат над документами», а агент, который планирует и выполняет многошаговую работу сотрудника: отвечает по корпоративным знаниям с точными цитатами (как в Perplexity) и совершает действия в HR-системах с подтверждением человека (как в Cowork) — но целиком внутри контура Сбера. Ниже — слои, обоснование каждого выбора и то, чем демо-стенд осознанно отличается от прод-варианта.

Слои системызапрос идёт сверху вниз и обратно

Каналы
точки входа
Пульс (веб)МОРУД (моб.)Telegram / API
Guardrails
вход/выход
PII-маскированиеанти-инъекциимодерация
Оркестрация
LangGraph
planner → executortool-loop (sequential)HITL-interruptself-correction
LLM Gateway
gpt2giga / LiteLLM
GigaChat MaxGigaChat LiteEmbeddingsGigaROpenRouter · eval, изолирован
Retrieval
гибридный поиск
dense (вектор)BM25RRF-fusion + rerankQdrant
Ingestion
Docling
PDF/DOCX/XLSX/OCRparent-child чанкингACL-mapper
Источники
через MCP-коннекторы
Пульс HR1С ЗУПConfluenceExchangeJira SDДиск / S3

Наблюдаемость

Langfuse: трейс каждого шага агента, токены, латентность, стоимость, ночной eval (RAGAS). Сквозной слой над всеми уровнями.

RBAC / ACL

Права наследуются из систем-источников при индексации. Retrieval фильтрует по ACL-тегам — ассистент видит ровно то, что видит сотрудник.

MCP как стандарт

Коннекторы к Пульс/МОРУД/Confluence — по стандарту MCP (на нём же построены Cowork и Perplexity BYOC). Новый источник = новый MCP-сервер.

Почему такой стекзащита каждого выбора

GigaChat

суверенность

Стандарт Сбера, весь ecosystem (LangGraph-гайды, MCP-адаптеры) — Python-first. Max для reasoning и действий, Lite для роутинга и классификации. Ложится на официальную линию GigaChat Enterprise (облако / гибрид / on-prem ЗКИ).

LangGraph

агентность

Не голый LangChain: управление состоянием, условная маршрутизация, interrupt() для HITL из коробки. Сбер сам публикует гайды по агентам именно на LangGraph — сигнал «тот же стек, что и команда GigaChain».

Qdrant

RU-корни

Основан выходцами из России — усиливает импортозамещающий угол. Быстрый gRPC, гибридный поиск, метаданные для ACL-фильтрации на уровне вектора. Альтернатива pgvector проигрывает по hybrid search.

gpt2giga

интеграция

Официальный OpenAI-совместимый прокси от ai-forever. Один клиент и для chat/completions, и для embeddings — код провайдер-агностичен, переключение GigaChat ↔ OpenRouter-eval одной переменной.

Docling

on-prem

Open-source (IBM → LF AI), работает локально без внешних API — критично для контура ЗКИ. PDF/DOCX/PPTX/XLSX → структура + таблицы; OCR-ветка для сканов приказов.

Hybrid + rerank

качество

BM25 + dense + reciprocal rank fusion + reranking. «Vector search alone is insufficient» — паттерн, который Glean называет обязательным для enterprise-RAG на длинных HR-документах.

Что реально работает в демо, а что — прод-контурчестная граница

КомпонентВ этом демо-стендеКак в prod
RAG с цитатамиРАБОТАЕТ живой поиск по загруженным документам, инлайн-ссылки на источникГибридный поиск по всем 5 классам данных, permissions-aware по ACL
Загрузка «на лету»РАБОТАЕТ PDF (файл/URL) → чанки → Qdrant → сразу доступно в чатеDocling-пайплайн со всеми форматами, OCR, версионирование
Агент + действияРАБОТАЕТ сценарий «отпуск»: баланс → команда → черновик → HITLРеальные MCP-коннекторы к Пульс/МОРУД, полный набор инструментов
Коннекторы системМАКЕТ mock-инструменты с синтетическими APIMCP-серверы к боевым Пульс HR, 1С ЗУП, Confluence, Exchange
RBAC / мультитенантностьМАКЕТ визуально на странице «Админ-панель»ACL-фильтрация в retrieval, изоляция данных по тенантам
Observability / GuardrailsМАКЕТ дашборд Langfuse-style, guardrails-заглушкиSelf-hosted Langfuse, PII-фильтр, eval-гейт до выкатки

Ограничения, заложенные осознанноGigaChat freemium

Почему демо построено именно так

  • 1 поток у физлица → вызовы агента сериализуются; на демо не запускаем параллельные сессии, UX-стриминг «маскирует» задержку.
  • Function calling только последовательный → строим tool-loop «один инструмент → результат → следующий шаг», а не параллельный fan-out.
  • Embeddings платные во freemium → в демо отладка на OpenRouter, перевод на EmbeddingsGigaR под B2B-договор.
  • verify_ssl=False в dev (нет российских TLS-корней в контейнере) → в prod за Caddy остаётся так же, сертификаты Минцифры ставятся на контур.

Дорожная карта масштабированияMVP → Сбер-масштаб

СЕЙЧАС · 1 УЗЕЛ

MVP на Docker Compose

Всё в одном compose на VPS: app + Qdrant + gpt2giga + Caddy. Показывает, что архитектура целостна и воспроизводима.

ШАГ 2 · КЛАСТЕР

K8s + on-prem ЗКИ

Те же сервисы в Kubernetes на YADRO G4208P (валидированный ИИ-сервер), GigaChat Enterprise on-prem, ФСТЭК-контур, данные внутри организации.

ШАГ 3 · ПРОДУКТ

Модуль Пульса

Ассистент как слой между Пульс (система записи) и МОРУД (точка входа), мультитенантно — для внешних клиентов Пульса. Интеллектуальный слой суверенного HR-стека вместо SAP.