WrenAI: семантический слой и контекстный движок GenBI для безопасных SQL-запросов ИИ-агентов
Прямое предоставление языковым моделям (LLM) и ИИ-агентам доступа к сырым схемам реляционных баз данных с помощью технологии Text-to-SQL часто заканчивается ошибками. Даже продвинутые модели путают похожие названия столбцов, выполняют ошибочные соединения (joins), не знают тонкостей расчета бизнес-метрик (например, необходимость отсечения отмененных заказов при вычислении выручки) и генерируют некорректные SQL-запросы. Схема базы данных отвечает на вопрос, какие таблицы существуют в системе, но не несет информации о бизнес-семантике компании.
Открытая платформа WrenAI (разрабатываемая компанией Canner под лицензией Apache-2.0) решает эту проблему за счет создания управляемого семантического слоя и контекстной памяти. Вместо прямого обращения к СУБД ИИ-агенты (Cursor, Claude Code, автономные процессы через протокол MCP) взаимодействуют с семантической моделью данных MDL (Modeling Definition Language), валидируют планы выполнения через проверку dry-plan и используют верифицированный контекст для безопасного формирования запросов и визуальных дашбордов.
Архитектура: семантическая модель MDL, Rust-движок и 3 этапа жизненного цикла
Архитектура WrenAI базируется на высокопроизводительном движке, написанном на языке Rust с использованием библиотеки фреймворка аналитической обработки данных Apache DataFusion. Движок поддерживает более 22 источников данных, включая PostgreSQL, ClickHouse, Snowflake, BigQuery, Redshift, Databricks, DuckDB, MySQL и S3.
В мае 2026 года разработчики Canner объединили репозитории: код движка перенесен в единый монорепозиторий Canner/WrenAI, а предыдущая Docker-версия первого поколения переведена в архивный статус (Wren GenBI Classic на ветке legacy/v1). Развитие получило полностью агентно-ориентированное ядро (agent-native context engine).
Работа платформы организована по циклу Generate · Deploy · Know:
- Generate (Генерация и валидация): При получении вопроса от пользователя или ИИ-агента WrenAI извлекает контекст схемы и модели MDL, обращается к векторной памяти на базе встроенной базы данных LanceDB для поиска похожих одобренных запросов, генерирует код SQL и выполняет его предварительное планирование (
dry-plan). Это позволяет отловить синтаксические и логические ошибки до реальной нагрузки на хранилище данных. - Deploy (Развертывание инсайтов): Построенные графики и аналитические дашборды собираются в клиентское браузерное приложение с использованием модуля WebAssembly (
wren-core-wasm). Пользователь может мгновенно опубликовать интерактивный интерфейс на платформах Vercel или Cloudflare Pages. - Know (Накопление знаний): Одобренные аналитиками описания метрик, проверенные SQL-запросы и правила объединения таблиц фиксируются в YAML-файлах в репозитории Git (
queries.ymlиinstructions.md), становясь версионируемой базой знаний для всей компании.
Сравнение подходов к бизнес-аналитике и Text-to-SQL
Для понимания места WrenAI в архитектуре данных сравним основные подходы к автоматизации аналитики:
| Подход | Точность бизнес-логики | Контроль метрик и joins | Безопасность и валидация | Встраивание в ИИ-агенты |
|---|---|---|---|---|
| Прямой Text-to-SQL (сырой LLM) | Низкая (частые галлюцинации и ошибки в именах полей) | Отсутствует (модель угадывает связи из названий) | Отсутствует (риск тяжелых неоптимальных SQL) | Прямой доступ к СУБД без ограничений |
| Традиционные BI-системы | Высокая (статические отчеты и дашборды) | Централизованный UI системы без гибкого экспорта | Настраивается внутри платформы | Ограниченное (нет нативного интерфейса для LLM) |
| Базовый семантический слой | Высокая (единые определения таблиц) | Зафиксирована в файлах конфигурации | Ограничивается правилами модели | Требуется ручное написание адаптеров под LLM |
| WrenAI (GenBI Engine) | Высокая (MDL + контекстная память проверенных запросов) | Версионируемый слой MDL с инструкциями в Git | Проверка dry-plan, лимиты строк и фильтрация ошибок | Нативная поддержка агентов через CLI, skills и MCP |
Интеграция с ИИ-агентами и пошаговый порядок выполнения запроса
WrenAI предоставляет встроенный набор навыков (skills) для агентов Cursor и Claude Code. При вызове команды в управляемом режиме (wren ask "топ-5 клиентов по выручке" --guided) платформа выполняет строгий конвейер безопасности:
[ Запрос пользователя ]
│
▼
1. wren context show ──► Извлечение структур MDL и правил расчета
│
▼
2. wren memory recall ──► Поиск похожих проверенных запросов в LanceDB
│
▼
3. SQL Generation ──► Формирование текста SQL-запроса
│
▼
4. wren dry-plan ──► Проверка плана выполнения в DataFusion
│
▼
5. wren query ──► Выполнение запроса в базе данных с лимитом строк
При обнаружении ошибки на этапе dry-plan система возвращает структурированный отклик, позволяя модели скорректировать SQL без выполнения потенциально опасных тяжелых сканирований таблицы.
Лицензионные границы: Бесплатное ядро Open Source (Apache-2.0) включает в себя движок Rust, язык моделирования MDL, CLI-утилиту, сервер MCP и коннекторы к 22 СУБД. Расширенные функции безопасности — разграничение прав доступа на уровне строк и колонок (RLS/CLS), управление пользователями и группами, коммерческий визуальный UI и Enterprise SLA — поставляются в составе платной версии Cloud/Enterprise Plus.
Практическое руководство по развертыванию и настройке WrenAI
Воспользуйтесь пошаговой инструкцией для интеграции WrenAI с СУБД PostgreSQL и настройки ИИ-агентов.
1. Подготовка окружения и установка пакетов
Создайте изолированное виртуальное окружение Python и установите основной CLI-пакет с коннектором для PostgreSQL и векторной памятью:
python3 -m venv .venv
source .venv/bin/activate
pip install "wrenai[postgres,memory]"
2. Подключение навыков (skills) к ИИ-агенту
Для интеграции с Cursor или Claude Code зарегистрируйте стаб обнаружения навыков:
npx skills add Canner/WrenAI --skill '*'
В новой сессии агента запустите мастер первичной настройки:
wren skills get onboarding
Команда выполнит автоматическую проверку окружения, создаст профиль проекта, сгенерирует заготовку структуры MDL и проверит подключение к PostgreSQL.
3. Создание и валидация семантической модели MDL
Опишите таблицы и связи в файле models/schema.mdl. После внесения изменений выполните проверку синтаксиса и сборку контекста:
wren context validate
wren context build
Индексируйте контекст и примеры запросов в векторной памяти:
wren memory index
4. Выполнение тестового запроса
Запустите тестовый аналитический запрос через CLI для проверки конвейера:
wren ask "Рассчитай суммарный объем продаж за текущий месяц" --guided
Система проверит контекст, выполнит dry-plan и отобразит результат в консоли.
5. Сборка и развертывание GenBI-дашборда
Для создания интерактивного дашборда с графиками выполните сборку в режиме снимка данных (snapshot):
wren genbi build sales-overview --prompt "Дашборд по продажам и клиентам" --data-mode snapshot
wren genbi register
wren genbi verify
Команда wren genbi verify выполняет проверку файлов, валидацию MDL и сканирование на предмет случайно оставленных секретов. Помните: сканирование является вспомогательным инструментарием — никогда не сохраняйте пароли СУБД и API-ключи в файлах instructions.md или коммитах Git. При деплое на платформу Vercel убедитесь в правильной настройке прав доступа и параметров Vercel Authentication.

