Coreness — self-hosted AI боты на YAML с мультитенантностью и RAG | AiManual
AiManual Logo Ai / Manual.
20 Янв 2026 Инструмент

Coreness: YAML вместо Python, или Как развернуть 100 AI-ботов за вечер

Обзор Coreness: open-source фреймворк для развертывания AI-ботов через YAML-конфиги с встроенной RAG и изоляцией тенантов. Python, PostgreSQL RLS, multi-tenancy

Конфигурация вместо программирования: новая религия AI-разработки

В 2026 году написание очередного AI-бота на Python начинает напоминать ритуал шамана. Ты импортируешь библиотеки, настраиваешь промпты, подключаешь векторные БД, пилишь эндпоинты. И каждый раз одно и то же. Coreness предлагает странный на первый взгляд подход: а что если вообще не писать код? Только YAML-конфиги, декларативное описание, а фреймворк сам соберет все в работающую систему.

Эта идея не нова — вспомните Terraform или Kubernetes manifests. Но для AI-ботов с их сложными цепочками вызовов, RAG-пайплайнами и требованиями к изоляции данных? Звучит как утопия. Coreness версии 2.3 (актуальна на январь 2026) доказывает обратное.

💡
Coreness 2.3 поддерживает последние модели LLM на январь 2026: GPT-4o-mini, Claude 3.7 Sonnet, Llama 3.3 70B, а также локальные модели через Ollama и vLLM. Поддержка Gemini 2.0 добавлена в релизе 2.3.2.

Архитектура: 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_region

RAG без головной боли: встроенный и кастомизируемый

Большинство фреймворков предлагают RAG как отдельный компонент, который нужно настраивать вручную. В Coreness RAG — это просто флаг в конфиге: rag.enabled: true.

Под капотом используется векторная БД (Qdrant или pgvector в PostgreSQL), семантический чанкинг, реранкинг результатов. Но самое интересное — мультитенантная изоляция работает и здесь. У каждого тенанта свой набор документов, свои embedding-модели (если нужно), свои коллекции.

💡
Если вы хотите глубоко разобраться в архитектуре RAG-систем, рекомендую статью Production-ready AI-агент с нуля. Там подробно разбираются чанкинг, реранкинг и гибридный поиск.

Сравнение с альтернативами: когда Coreness выигрывает, а когда проигрывает

ФреймворкМультитенантностьКонфигурацияСложностьЛучше для
Coreness 2.3Из коробки, с RLSYAML (декларативная)Низкая для стандартных сценариевМножество кастомизируемых ботов
LangChainРучная реализацияPython кодВысокаяЭксперименты, исследовательские проекты
FastAPI + OpenAIС нуляPython кодОчень высокаяПолный контроль над архитектурой
BotpressЕсть, но без RLSGUI + конфигиСредняяДиалоговые потоки, визуальное построение

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 для критичных тенантов.

💡
Для тестирования подобных систем рекомендую ознакомиться с подходом из статьи Автономный ИИ-агент QA для тестирования бэкенда. Автономное тестирование мультитенантных систем — отдельный вызов.

Начинаем работать: быстрый старт за 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-ботов навсегда. Или как минимум сэкономит пару бессонных ночей перед релизом.