Конфигурация вместо программирования: новая религия AI-разработки
В 2026 году написание очередного AI-бота на Python начинает напоминать ритуал шамана. Ты импортируешь библиотеки, настраиваешь промпты, подключаешь векторные БД, пилишь эндпоинты. И каждый раз одно и то же. Coreness предлагает странный на первый взгляд подход: а что если вообще не писать код? Только YAML-конфиги, декларативное описание, а фреймворк сам соберет все в работающую систему.
Эта идея не нова — вспомните Terraform или Kubernetes manifests. Но для AI-ботов с их сложными цепочками вызовов, RAG-пайплайнами и требованиями к изоляции данных? Звучит как утопия. Coreness версии 2.3 (актуальна на январь 2026) доказывает обратное.
Архитектура: Master Bot, тенанты и Row-Level Security
Здесь Coreness делает то, что другие фреймворки считают «слишком сложным»: настоящую мультитенантность из коробки. Не просто несколько ботов в одном процессе, а полную изоляцию данных, конфигураций и даже моделей LLM.
Как это работает? В центре системы — Master Bot. Он не отвечает пользователям. Его задача — управлять жизненным циклом тенант-ботов, роутить сообщения, обеспечивать изоляцию. Каждый тенант — это отдельная сущность со своей:
- Конфигурацией (YAML файл)
- Набором RAG-документов
- Настройками LLM (можно использовать разные модели для разных тенантов)
- PostgreSQL схемой с Row-Level Security
Про RLS стоит сказать отдельно. Coreness не просто создает разные таблицы для разных тенантов (хотя может и так). Он использует механизм Row-Level Security PostgreSQL, где все данные лежат в одних таблицах, но каждый тенант видит только свои строки. Элегантно и безопасно.
Важный нюанс: RLS в PostgreSQL требует внимательной настройки политик. Coreness генерирует их автоматически, но если вы решите вручную модифицировать БД — будьте осторожны. Одна ошибка в политике, и тенант увидит чужие данные.
YAML-конфиг: вся логика бота в одном файле
Вот как выглядит конфигурация типичного бота-консультанта в Coreness:
tenant: ecommerce_support
llm:
provider: openai
model: gpt-4o-mini
temperature: 0.7
max_tokens: 2000
rag:
enabled: true
collection: product_docs
top_k: 5
similarity_threshold: 0.75
personality:
system_prompt: |
Ты — консультант интернет-магазина электроники.
Отвечай вежливо, используй информацию из базы знаний.
Если не знаешь ответа — предложи связаться с менеджером.
workflows:
- name: product_search
trigger: "найди|ищу|посоветуй"
steps:
- extract_product_query
- search_rag
- generate_response
- name: order_status
trigger: "статус заказа|где мой заказ"
steps:
- ask_order_number
- query_database
- format_status_response
integrations:
telegram:
enabled: true
token: ${TELEGRAM_TOKEN}
webhook_url: https://your-domain.com/webhookНикакого Python. Никаких классов. Просто декларативное описание того, ЧТО должен делать бот, а не КАК. Фреймворк сам создает цепочки вызовов, настраивает RAG, подключается к Telegram.
А если нужно кастомное поведение? Всегда можно добавить Python-хуки:
custom_hooks:
before_response:
module: my_hooks
function: validate_user_tier
args:
- user_id
- current_tier
after_rag_search:
module: my_hooks
function: filter_by_availability
args:
- search_results
- user_regionRAG без головной боли: встроенный и кастомизируемый
Большинство фреймворков предлагают RAG как отдельный компонент, который нужно настраивать вручную. В Coreness RAG — это просто флаг в конфиге: rag.enabled: true.
Под капотом используется векторная БД (Qdrant или pgvector в PostgreSQL), семантический чанкинг, реранкинг результатов. Но самое интересное — мультитенантная изоляция работает и здесь. У каждого тенанта свой набор документов, свои embedding-модели (если нужно), свои коллекции.
Сравнение с альтернативами: когда Coreness выигрывает, а когда проигрывает
| Фреймворк | Мультитенантность | Конфигурация | Сложность | Лучше для |
|---|---|---|---|---|
| Coreness 2.3 | Из коробки, с RLS | YAML (декларативная) | Низкая для стандартных сценариев | Множество кастомизируемых ботов |
| LangChain | Ручная реализация | Python код | Высокая | Эксперименты, исследовательские проекты |
| FastAPI + OpenAI | С нуля | Python код | Очень высокая | Полный контроль над архитектурой |
| Botpress | Есть, но без RLS | GUI + конфиги | Средняя | Диалоговые потоки, визуальное построение |
Coreness убийственно эффективен в одном сценарии: когда нужно быстро развернуть десятки похожих, но не идентичных ботов. Поддержка для клиентов, внутренние помощники, FAQ-боты для разных продуктов. Изменяешь YAML-конфиг — получаешь нового бота.
Но если вам нужен агент со сложной логикой, состоянием, планированием действий — Coreness покажет зубы. Кастомизация через хуки работает, но сложные сценарии быстро превращаются в спагетти из YAML и Python.
Про безопасность AI-агентов в мультитенантных средах мы подробно писали в статье Безопасность AI-агентов. Промпт-инъекции в мультитенантной среде особенно опасны — один скомпрометированный бот может получить доступ к данным всех тенантов.
Реальные кейсы: где Coreness уже работает
1Образовательная платформа с персональными помощниками
30 000 студентов, каждый получает своего AI-ассистента. Помощник знает пройденные темы, рекомендует материалы, отвечает на вопросы по курсу. Все на одном сервере, изоляция через RLS. Затраты на инфраструктуру в 5 раз ниже, чем при развертывании отдельных ботов.
2E-commerce с поддержкой на 15 языках
Магазин электроники развернул 15 ботов-консультантов — по одному на каждый язык. Общая база продуктов, но разные промпты, тон общения, культурные особенности. Обновление ассортимента происходит один раз — все боты получают актуальную информацию.
3Внутренняя служба поддержки компании
50 отделов, у каждого свой бот с доступом к внутренней документации. Отдел продаж видит только коммерческие предложения, отдел разработки — техническую документацию, HR — политики компании. Master Bot управляет правами доступа.
Под капотом: как работает изоляция тенантов
Технически Coreness использует комбинацию подходов:
- Connection pooling с контекстом: Каждый запрос выполняется с установленным контекстом тенанта (SET app.tenant_id)
- Row-Level Security в PostgreSQL: Политики автоматически добавляют WHERE tenant_id = current_setting('app.tenant_id')
- Отдельные embedding-коллекции: В Qdrant или pgvector каждый тенант имеет префикс в имени коллекции
- Изоляция промптов: Системные промпты загружаются из конфига тенанта, не смешиваются
Это не идеальная изоляция уровня виртуализации, но для 99% бизнес-сценариев достаточно. Если нужна максимальная безопасность, можно развернуть отдельные инстансы Coreness для критичных тенантов.
Начинаем работать: быстрый старт за 15 минут
Установка Coreness — это не про недели настройки. Вот минимальный сценарий:
# Клонируем репозиторий (версия 2.3 на январь 2026)
git clone https://github.com/coreness-ai/coreness
cd coreness
# Ставим зависимости (Python 3.11+)
pip install -r requirements.txt
# Запускаем PostgreSQL с pgvector и Qdrant
docker-compose up -d
# Создаем первого тенанта
cp configs/example_tenant.yaml configs/my_tenant.yaml
# Редактируем конфиг под свои нужды
# Запускаем Master Bot
python coreness/master.py --config-dir ./configsПосле этого Master Bot начнет слушать входящие сообщения, создаст тенант-бота согласно конфигурации, настроит RLS-политики в БД. Веб-интерфейс для мониторинга доступен на порту 8080.
Кому подойдет Coreness, а кому лучше посмотреть в сторону
Берите Coreness, если:
- Нужно быстро развернуть множество похожих ботов
- Требуется изоляция данных между клиентами/отделами/продуктами
- Команда предпочитает декларативную конфигурацию вместо программирования
- Уже есть инфраструктура на PostgreSQL
- Нужен RAG «из коробки» без глубокой настройки
Смотрите другие решения, если:
- Нужен один сложный AI-агент с кастомной логикой
- Требуется максимальная производительность (Coreness добавляет оверхед)
- Хотите полный контроль над каждым аспектом системы
- Работаете с экзотическими моделями или протоколами
- Предпочитаете визуальное построение диалогов (как в Botpress)
Будущее Coreness: куда движется проект
На январь 2026 команда Coreness анонсировала планы на версию 3.0:
- Поддержка Agentic RAG (агенты, которые сами решают, когда искать в базе знаний)
- Встроенная аналитика и A/B тестирование промптов
- Поддержка edge-развертывания (боты на устройствах пользователей)
- Интеграция с локальными моделями через полностью локальные RAG-системы
Самое интересное — обещают «миграцию тенантов»: возможность переносить бота с одного инстанса Coreness на другой без потери данных. Звучит как магия, но в мире, где компании меняют облачных провайдеров каждые два года — необходимая функция.
Coreness не пытается быть универсальным фреймворком для всех AI-задач. Он решает одну проблему, но решает ее блестяще: массовое развертывание кастомизируемых ботов с гарантированной изоляцией. В 2026 году, когда каждый отдел хочет своего AI-ассистента, а безопасность данных не обсуждается — такой инструмент стоит иметь в арсенале.
Попробуйте начать с одного тенанта. Просто чтобы понять философию «конфигурация вместо кода». Возможно, это изменит ваш подход к созданию AI-ботов навсегда. Или как минимум сэкономит пару бессонных ночей перед релизом.