惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
量子位
腾讯CDC
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
云风的 BLOG
云风的 BLOG
Vercel News
Vercel News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
The Hacker News
The Hacker News
T
The Exploit Database - CXSecurity.com
B
Blog
S
SegmentFault 最新的问题
P
Privacy & Cybersecurity Law Blog
T
Threatpost
博客园 - 聂微东
T
Tailwind CSS Blog
The Last Watchdog
The Last Watchdog
C
Check Point Blog
N
Netflix TechBlog - Medium
D
DataBreaches.Net
爱范儿
爱范儿
IT之家
IT之家
S
Secure Thoughts
M
MIT News - Artificial intelligence
NISL@THU
NISL@THU
C
Cisco Blogs
TaoSecurity Blog
TaoSecurity Blog
有赞技术团队
有赞技术团队
A
Arctic Wolf
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
P
Proofpoint News Feed
Spread Privacy
Spread Privacy
Schneier on Security
Schneier on Security
Simon Willison's Weblog
Simon Willison's Weblog
G
GRAHAM CLULEY
雷峰网
雷峰网
Project Zero
Project Zero
博客园 - Franky
H
Heimdal Security Blog
A
About on SuperTechFans
Security Latest
Security Latest
Webroot Blog
Webroot Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Hugging Face - Blog
Hugging Face - Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Как мы построили корпоративную LLM-платформу: архитектура, грабли и выводы
Письменный Артем · 2026-05-21 · via Все публикации подряд на Хабре

Средний

11 мин

12K

Привет! Меня зовут Артём, я руковожу группой цифровой трансформации в Sminex. Последние два года моя команда занимается внедрением AI в компанию. В реальности это куда менее гламурная история, чем звучит: про прокси-слои, отладку промптов в Langfuse и бесконечные «Почему модель опять ответила не то?».

В этой статье расскажу, как мы с самого начала пошли в LLM-платформу — а не в «одного бота», почему это было правильным решением и какие грабли мы всё равно собрали по дороге.

Почему мы сразу пошли в платформу

Типичный сценарий внедрения AI в компании выглядит так: команда собирает одного ассистента, показывает руководству, получает аплодисменты. Потом второго, третьего. У каждого свои ключи, свои доступы, своя модель данных. В какой-то момент это превращается в зоопарк, а стоимость поддержки и развития начинает полёт в стратосферу.

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

Главный риск корпоративного AI — не качество модели, а управляемость внедрения. Это тезис, с которого мы стартовали и к которому возвращаемся каждый раз.

LLM-платформа в цифрах

Платформа запущена для всех сотрудников в октябре 2025 года. До этого были несколько месяцев закрытой беты, 99 заявок в листе ожидания, сбор обратной связи и переезд на более быстрое железо. Рост с момента запуска органический, без директив и обязательных внедрений: мы проводили вебинары, публиковали обучающие материалы на основе анализа реальных запросов и запустили канал в мессенджере, где коллеги делятся кейсами и предлагают фичи.

Статистика использования платформы

Статистика использования платформы

Отдельно покажу динамику потребления. Здесь график только по внешним моделям и только по провайдеру OpenAI, но он хорошо иллюстрирует общий паттерн: медленный старт в первые два месяца, затем резкий рост после появления первых полезных ассистентов и обучающих мероприятий. По локальным моделям картина аналогичная, но масштаб скромнее - 219 млн токенов.

Рост потребления токенов OpenAI на платформе

Рост потребления токенов OpenAI на платформе

Архитектура: из чего состоит LLM-платформа

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

Архитектура платформы

Архитектура платформы

UI: единое окно для сотрудников

В качестве пользовательского интерфейса мы выбрали Open WebUI — open-source-платформу для работы с LLM, которая разворачивается на собственной инфраструктуре. Для наших сотрудников это выглядит как привычный ChatGPT-подобный интерфейс: открыл браузер, выбрал ассистента, задал вопрос. Но под капотом — совсем другая история.

Интерфейс OpenWebUI

Интерфейс OpenWebUI

Почему именно Open WebUI, а не, скажем, собственная разработка или другой фронтенд?

Провайдер-агностичность. Open WebUI подключается к любому OpenAI-совместимому API — а значит, через наш LiteLLM-шлюз работает сразу со всеми моделями: локальными на vLLM и внешними через провайдеров. Пользователь переключается между моделями в одном интерфейсе, не задумываясь, где они крутятся.

Корпоративные функции из коробки. LDAP/SSO-аутентификация, ролевая модель доступа (RBAC), гранулярные разрешения на уровне групп пользователей — всё это уже встроено. Нам не пришлось писать систему доступов с нуля, мы подключили корпоративный SSO и получили централизованное управление: сотрудник уволился — доступ закрылся автоматически.

Собственные ассистенты. Через встроенный конструктор Model Builder можно создавать кастомных ассистентов с преднастроенными промптами, привязкой к конкретным моделям и инструментам — без единой строчки кода. Именно так мы собрали первых ассистентов по базам знаний.

Экран создания модели в OpenWebUI

Экран создания модели в OpenWebUI

Встроенный RAG. Open WebUI умеет загружать документы, индексировать их и использовать как контекст для ответов — с цитированием источников. Для простых сценариев этого хватает (мы так начинали), а для сложных — подключаем внешние pipeline через MCP.

Маркетплейс инструментов. На openwebui.com есть каталог community-расширений: functions, tools, pipelines. Оттуда мы, например, взяли компонент Confluence Search для первых RAG-ассистентов.

Поиск инструментов на openwebui.com

Поиск инструментов на openwebui.com

Расширяемость через MCP. Open WebUI поддерживает подключение внешних MCP-серверов — именно так мы связали его с Langflow (об этом ниже).

При этом Open WebUI — это именно интерфейс, а не вся платформа. Основная работа: gateway, лимиты, наблюдаемость, оркестрация — живёт на других слоях. Open WebUI не решает задачу контроля сам по себе, но даёт пользователям удобное единое окно для работы со всем, что мы построили под ним.

API-шлюз: LiteLLM

Это, пожалуй, самый важный архитектурный выбор. LiteLLM — open source AI Gateway, который даёт единый OpenAI-совместимый endpoint для 100+ LLM-провайдеров. По сути это прокси-сервер: любой сервис обращается к нему так, как будто говорит с OpenAI API, а LiteLLM маршрутизирует запрос на нужную модель — будь то локальный vLLM, внешний провайдер или что-то ещё.

Интерфейс LiteLLM

Интерфейс LiteLLM

Почему это критично для корпоративной платформы?

Единый интерфейс для всего. Все потребители: Open WebUI, Langflow, внутренние сервисы, скрипты разработчиков — ходят в один endpoint. Подключение новой модели — это изменение конфига в LiteLLM, а не правка десяти сервисов.

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

Балансировка и fallback. Если один провайдер лежит или перегружен, LiteLLM автоматически перенаправляет на резервный. Для пользователя это бесшовно — он просто не замечает переключения.

MCP-шлюз. Через LiteLLM мы также централизуем подключение MCP-инструментов к корпоративным системам — с allowlist и ограничениями. Изначально мы пробовали MetaMCP как отдельный хаб для интеграций, но в итоге пришли к тому, что удобнее управлять всем через LiteLLM.

У нас строгое правило: все сервисы обращаются к моделям только через LiteLLM. Никаких прямых вызовов. Это та точка контроля, без которой платформа превращается в хаос.

Оркестрация сценариев: Langflow + Open WebUI через MCP

Для сборки сценариев мы используем Langflow — визуальный конструктор цепочек «LLM + retrieval + tools + постобработка». Langflow отлично подходит для быстрого прототипирования: можно за день собрать рабочий flow, подключить к данным и начать тестировать.

Интерфейс LangFlow

Интерфейс LangFlow

У визуальных конструкторов есть объективные ограничения: повышенная латентность под нагрузкой, сложность отладки крупных графов. Но при этом Langflow даёт гибкость, которую сложно получить иначе. Когда стандартных нодов не хватает, мы пишем кастомные компоненты с кодом внутри — вся логика по-прежнему живёт в Langflow, просто конкретные ноды содержат Python-код вместо визуальной конфигурации.

Создание собственных компонентов в LangFlow

Создание собственных компонентов в LangFlow

Отдельная история — как мы связали Langflow с Open WebUI. Сначала пробовали делать доработки через встроенные pipelines Open WebUI (functions, actions, filters), но тестировать и дебажить это было крайне неудобно. Тогда мы нашли другой подход: каждый инструмент собираем как отдельный flow в Langflow, а Langflow позволяет опубликовать проект как MCP-сервер. Каждый flow становится tool, доступным по протоколу MCP. Дальше мы добавляем этот MCP-сервер в Open WebUI — и ассистенты в Open WebUI получают доступ к инструментам из Langflow.

От создания инструмента до его использования в ассистенте

От создания инструмента до его использования в ассистенте

Получается удобный гибрид: разрабатываем и тестируем инструменты в Langflow (с его playground, логами и нодовым дебагом), публикуем как MCP, а используем уже в ассистентах Open WebUI — там, где пользователи реально работают. Это позволяет держать разработку инструментов и пользовательский интерфейс разделёнными, но связанными через стандартный протокол.

Inference: от RTX 5000 до H200

Последовательность развития инфраструктуры

Последовательность развития инфраструктуры

Эволюция, через которую, думаю, проходят многие:

Этап 1: эксперимент. RTX 5000 (16 GB) — модели класса 3B–8B, понять, что вообще возможно.

Этап 2: рост. Узел 2 × H100 (160 GB) — уже серьёзные модели, но мощностей быстро не хватает.

Этап 3: масштабирование. Прод-кластер 2 × H200 (282 GB) + отдельный тестовый 1 × H200 (141 GB).

По inference-движку прошли путь от Ollama (удобна на старте) к vLLM как промышленному стандарту в Kubernetes. vLLM сейчас основной прод-контур. Внешний контур — через OpenRouter — для моделей, которые невыгодно крутить локально.

Инфраструктура: Deckhouse и Kubernetes

Этот слой редко попадает в «AI-презентации», но на практике определяет, будет ли система жить. Нам нужен был не голый Kubernetes, а управляемый жизненный цикл кластера.

Deckhouse Kubernetes Platform даёт стандартизированную раскатку, политики безопасности, CI/CD. CPU workloads (UI, оркестратор, gateway) разнесены с GPU NodeGroups для inference, изоляция через taints/tolerations.

Интерфейс Deckhouse

Интерфейс Deckhouse

Наблюдаемость: два слоя и зачем это нужно

Два слоя наблюдаемости позволяют одновременно видеть состояние самой платформы и поведение LLM-приложений внутри неё.

Инфраструктурная телеметрия

Prometheus/Grafana поверх Deckhouse Kubernetes Platform. У нас настроены отдельные дашборды для каждого компонента, и каждый решает свою задачу.

Ingress-дашборд (Open WebUI, LiteLLM) отвечает на вопрос: платформа жива?

Ingress-дашборд

Ingress-дашборд

Здесь мы смотрим RPS и распределение кодов ответов: если полезли 4xx/5xx, значит, что-то сломалось на уровне маршрутизации или авторизации.

Upstream Response Time показывает, сколько бэкенд реально думает над запросом (у нас средний ~53 секунды — это нормально для LLM-запросов с длинной генерацией).

Avg Request Time (~28 секунд) — это то, что видит пользователь. Разница между ними — время на сеть и прокси. Если эта разница растёт — проблема не в модели, а в инфраструктуре.

vLLM-дашборд отвечает на вопрос: где именно тормозит inference? Это самый полезный дашборд для оптимизации.

vLLM-дашборд

vLLM-дашборд

Здесь видно:

● queue depth (сколько запросов стоит в очереди vs активно обрабатывается) — если очередь растёт, GPU не успевает;

● KV cache usage — если приближается к 100%, модель начнёт отбрасывать контекст;

● E2E latency в разрезе p50/p95/p99 — p50 может быть приемлемым, но если p99 улетает, значит, часть пользователей получает очень медленные ответы.

Отдельно мониторим time-to-first-token (TTFT) — время до первого токена, критично для UX: пользователь видит «модель думает» именно столько.

А inter-token latency показывает скорость «печати» — если она растёт, модель генерирует медленнее, чем обычно.

Prompt tokens rate и generation tokens rate дают общую картину нагрузки.

LLM-телеметрия: Langfuse

Второй слой — Langfuse, это open-source-LLM-engineering-платформа. Если Grafana показывает «железо работает / не работает», то Langfuse отвечает на вопрос: что происходит внутри LLM-приложения?

Что мы реально используем сейчас?

Трассировка запросов. Каждый запрос пользователя — это trace в Langfuse: видно всю цепочку от входного сообщения через LLM-вызов, retrieval, tool call и до финального ответа. Когда пользователь жалуется: «Бот ответил ерунду», — мы открываем конкретный trace и видим, какой промпт ушёл в модель, что вернул retrieval, сколько токенов потрачено, какая латентность на каждом шаге. Без этого дебаг LLM-приложений — гадание на кофейной гуще.

Интерфейс Langfuse

Интерфейс Langfuse

Стоимость по моделям. Langfuse автоматически считает cost per trace — и мы видим, сколько стоит каждый запрос, каждый ассистент, каждая модель. Это позволяет вовремя заметить, если какой-то сценарий начал жечь бюджет (например, из-за слишком длинного контекста или лишних итераций в цепочке).

Управление промптами и версионирование. Это то, что мы активно используем в повседневной работе. Все промпты для ассистентов живут в Langfuse, а не захардкожены в коде или в конфигурации Langflow. Каждое изменение — это новая версия с меткой (production, staging). Мы можем менять промпт без деплоя, через UI — и сразу видеть в трейсах, как изменение повлияло на ответы. Для ассистента по ГРП, например, промпты уже прошли через десятки итераций — и вся история изменений сохранена.

Интерфейс управления промптами в Langfuse

Интерфейс управления промптами в Langfuse

Playground. Встроенная песочница, где можно взять конкретный trace, поменять промпт или модель и сразу посмотреть, как изменится ответ. Ускоряет цикл итерации.

Куда мы хотим прийти, но пока не дошли?

Evaluations и датасеты. Langfuse поддерживает полноценные эксперименты: загружаешь датасет с ground truth, прогоняешь разные версии промптов, получаешь скоры и сравнение.

Для каждого нового ассистента заказчик обязан подготовить набор «вопрос → эталонный ответ → ссылка на источник». Мы написали внутренний гайд: минимум 15 пар для простого RAG-ассистента, 25–30 — для агента с несколькими инструментами. Распределение: 40% — базовые вопросы, 30% — пограничные случаи, 20% — нет ответа (проверяем, что модель не галлюцинирует), 10% — многошаговые.

Работа с корпоративными знаниями: от маркетплейса до собственных pipeline

Это ещё одна история эволюции, где мы прошли несколько стадий.

Стадия 1: готовый инструмент с маркетплейса. Начали с того, что взяли готовый компонент Confluence Search с маркетплейса Open WebUI. Он работает просто: через CQL (Confluence Query Language) ищет релевантные страницы, вырезает из них куски текста и подаёт модели как контекст. Для базовых вопросов по Confluence — работает. Мы на этом собрали первых ассистентов (по IT-инструкциям, по ВНД), и они до сих пор живут.

Стадия 2: ограничения готового решения. Проблемы начались, когда мы столкнулись с PDF-документами, презентациями и внутренними стандартами. CQL-поиск по Confluence не видит содержимое вложений. Разбиение на чанки не контролируется — инструмент режет текст, как ему удобно, а не как нужно для конкретной задачи. Качество ответов начало сильно зависеть от того, как именно информация лежит в Confluence, и повлиять на это было сложно.

Стадия 3: собственные pipeline в Langflow. Для более устойчивых и сложных задач мы стали вручную строить RAG pipeline в Langflow — контролируем извлечение текста, разбиение на чанки, формат метаданных. Это дороже в разработке, но даёт предсказуемый результат. Обязательное требование: ответ содержит ссылки на источники, а если информации нет — явный отказ вместо галлюцинации.

Стадия 4 (текущая): тестируем RAGFlow. Для упрощения этой работы сейчас пробуем RAGFlow — специализированный инструмент для knowledge workflow, который берёт на себя парсинг документов, чанкинг и индексацию. Сравниваем с нашими ручными pipeline по качеству и удобству сопровождения.

Выводы, которые я хотел бы прочитать сам год назад

Эксплуатация сложнее модели. Поднять модель — относительно просто. Сделать эксплуатацию предсказуемой: трейсинг, лимиты, доступы — тяжело. Именно здесь ломается большинство внедрений.

Open source — свобода и боль одновременно. На старте ускоряет, но боль проявляется на стыках: версии, совместимость, auth. Каждое обновление одного компонента может сломать другой.

Сначала датасет, потом промпт. Без эталонных ответов любая оптимизация — гадание. Мы пришли к тому, что датасет с ground truth — обязательный артефакт при запуске любого ассистента.

Готовые инструменты работают — до определённого предела. Маркетплейс Open WebUI, готовые компоненты Confluence-поиска — всё это позволяет запуститься быстро. Но как только задача усложняется (PDF, презентации, стандарты), приходится строить собственные pipeline. Важно понимать границу заранее.

Экономика платформы > экономика одного кейса. Единый gateway + observability + безопасность = снижение стоимости каждого следующего кейса. Первый ассистент на платформе дорогой, пятый — дешёвый.

Если коротко: управляемость важнее «самой крутой модели». А настоящая выгода от AI в корпорации приходит не от одного гениального бота, а от масштаба — когда сотрудники активно пользуются платформой каждый день, когда новый ассистент собирается за часы, а не за месяцы и когда вся эта конструкция стоит на предсказуемом фундаменте, а не на энтузиазме одного инженера.

Что дальше?

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

Автономные агенты. Сейчас наши ассистенты работают в режиме «вопрос — ответ». Следующий шаг — агенты, которые работают проактивно. Мы прорабатываем два направления: персональные Copilot-ассистенты (знают твой контекст, проекты, календарь — сами присылают утренний брифинг и напоминания о дедлайнах) и автономные агенты для рутинных процессов на базе OpenClaw/NemoClaw — с персистентной памятью, heartbeat-механизмом и cron-задачами. Ключевое отличие от простой автоматизации — агент не выполняет заскриптованный pipeline, а сам решает, что делать, в зависимости от контекста. Технология молодая, двигаемся аккуратно — сначала пилот на паре сценариев.

Улучшение RAG. Текущий подход с Confluence-поиском и ручными pipeline в Langflow работает, но плохо масштабируется. Мы тестируем RAGFlow и исследуем графовые базы знаний — чтобы ассистенты понимали не просто «где лежит ответ», а связи между документами, версии и актуальность. Отдельная задача — научиться нормально работать с неструктурированными данными: презентациями, чертежами, сканами.

Системные evaluations. Как я писал выше, мы понимаем, что без автоматической оценки качества масштабирование упрётся в потолок. В планах обязательный датасет с ground truth для каждого ассистента, автоматические прогоны при изменении промптов, интеграция eval-pipeline в процесс релиза.

Вместо заключения: о чём написать дальше?

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

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

  • Экономика. Сколько реально стоит владение AI-платформой — железо, лицензии, команда, эксплуатация? Как считаем ROI и окупаемость?

  • Кейсы в деталях. Разбор конкретного ассистента от постановки задачи до прода — архитектура, промпты, грабли, метрики.

  • Стек и инфраструктура. Как устроен наш Kubernetes-кластер, как мониторим vLLM, как настроили сквозной трейсинг?

  • RAG и работа с документами. Как строим pipeline для корпоративных знаний, что работает, а что нет?

  • Процессы команды. Как устроена работа AI-команды в девелоперской компании — спринты, демо, взаимодействие с заказчиками?

Буду рад обсуждению в комментариях. Если строите что-то похожее — делитесь опытом, всегда интересно сравнить подходы.