Интеграция предметной модели: как дать ИИ понять структуру MODX, а не просто файлы
Веб-разработчики всё чаще используют ИИ-агентов для ускорения написания кода, но стандартный подход «скопировать — вставить» создаёт разрыв между контекстом системы и инструментом. Автор материала описывает эксперимент, в рамках которого был создан специализированный интерфейс (MCP) для CMS MODX. Цель проекта — предоставить ИИ понимание сущностей (ресурсы, чанки, сниппеты) и их связей, а не только доступ к файлам базы данных. Это позволяет агенту выбирать правильный путь изменений, соблюдая архитектуру системы, и работать с различиями между версиями MODX 2 и MODX 3 через модульную архитектуру.
# Предметная модель вместо файлов: как мы научили ИИ работать с MODX
Использование искусственного интеллекта в веб-разработке стало обыденностью. На проектах на базе CMS MODX чат-боты типа ChatGPT долгое время служили помощниками для поиска ошибок, анализа кода и написания сниппетов. Однако эффективность этого сотрудничества часто ограничивалась человеческим фактором: разработчик вынужден был работать «курьером», вручную копируя код из редактора в чат-бот и обратно. В какой-то момент возникла идея автоматизировать этот процесс, но не просто передавая боту доступ к файлам, а дав ему возможность воспринимать сайт так же, как это делает системный архитектор.
Из этого желания вырос эксперимент, переросший в открытый проект MODX MCP. Его главная цель — предоставить агенту доступ к предметной модели системы, сохраняя логику связей между ресурсами, шаблонами и данными, что критически важно для безопасного и качественного автоматизированного изменения кода.
Правильный доступ вместо полного контроля
Ключевая идея проекта заключается в том, что SSH-доступ или прямой доступ к таблицам базы данных недостаточны для понимания смысла сайта. Для человека запись modChunk — это не просто строка в таблице, а сущность, которая используется несколькими шаблонами и может влиять на половину каталога. Если агент видит только файлы или сырые данные, он мыслит ими же, что может привести к хрупким изменениям.
Автор отмечает: *«MODX MCP не пытается дать ИИ максимальный доступ к сайту. Он пытается дать ИИ правильный доступ»*. Инструмент не заменяет полностью работу разработчика (остаются задачи по конфигурации сервера или SCSS), но предоставляет специализированный интерфейс для взаимодействия с CMS. Это позволяет агенту видеть связи между элементами и предсказывать последствия изменений, не прибегая к опасным методам прямого редактирования файлов.
Важный технический термин: MCP (Model Context Protocol)
MCP — это протокол, который позволяет ИИ-агентам взаимодействовать с внешними данными и инструментами, обеспечивая стандартный способ передачи контекста. В данном случае MCP выступает мостом между языковыми моделями и специфическими инструментами работы с CMS, передавая агенту структуру проекта, зависимости и доступные операции.
Архитектура и работа с версиями MODX
Выбор основы для проекта был тщательным. Команда рассмотрела несколько открытых решений, таких как modxMCP от dampilov94 и modxmcp от karamble. Каждый из них обладал сильными сторонами, но ни один полностью не соответствовал требованиям по охвату возможностей и совместимости. Решение заключалось в создании собственной архитектуры на базе open-source кода.
Особый акцент был сделан на поддержку двух поколений системы: MODX Revolution 2.8.x и MODX 3.x. Исходные проекты часто ориентировались только на одну версию, что создавало проблемы при миграции. Для решения этой задачи была внедрена модульная архитектура с платформенным слоем (Platform Layer).
Платформенный слой (Platform Interface) Этот слой скрывает различия между версиями. Инструменты работают с логическими сущностями (например, resource), а адаптеры платформы определяют, какой конкретный класс использовать в зависимости от версии (например, modResource для MODX 2 и Revolution для MODX 3). Такой подход предотвращает разрастание проверок кода и позволяет легко поддерживать обе ветки из одного кода.
*Пример интерфейса платформы:* ``php interface PlatformInterface { public function key(); public function majorVersion(); public function supports($modx); public function className($logicalName); public function runProcessor($modx, $processor, array $properties = array(), array $options = array()); }
Первые шаги и реальная сложность
Первый тест системы был намеренно простым: попросить изменить цвет фона сайта на красный и увеличить размер заголовка H1. Результат оказался успешным: агент самостоятельно нашел стили, внес изменения и пересобрал CSS, вернувшись в исходное состояние после команды отмены. Это доказало техническую возможность работы, но не показало глубину понимания архитектуры.
С первой реальной задачей — выводом дочерних ресурсов с использованием pdoResources — проявились сложности. Агент создал верный статический макет, который визуально соответствовал требованию, но не использовал нужную архитектуру CMS. Это привело к выводу, что доступ к инструментам не гарантирует правильное их применение. Необходимо научить агента выбирать уместные действия, опираясь на контекст проекта и накопленные знания о его структуре.
Будущие перспективы и безопасность
Проект MODX MCP опубликован под лицензией MIT и активно развивается. Код доступен в открытом доступе, а команда планирует выложить компонент в официальный каталог MODX Extras и на modstore.pro. В данный момент все 182 инструмента переведены на модульную среду выполнения, что позволяет применять их как на новых проектах MODX 3, так и на существующих базах MODX 2.
Авторы подчеркивают, что это только предметный интерфейс к CMS, а не полная замена серверной части. Вопросы безопасности, контроля изменений, резервного копирования и отката на боевые сайты рассматриваются как следующий шаг. В следующих статьях планируется обсудить механизмы блокировок и уровней риска, необходимые для того, чтобы позволить ИИ безопасно «чинить» активные сайты.
Личное замечание редактора
В мире автоматизации часто забывают о ценности контекста. Дав ИИ «руки» без «глаз», которые понимают структуру организации, — это все равно что дать хирургу скальпель, не показав пациент. Проект MODX MCP предлагает именно эти «глаза», превращая процесс разработки из механического копирования в диалог, где агент понимает не только строки кода, но и их место в системе. Это переход от автоматизации труда к автоматизации понимания.