AI-агенты в CAD ломаются на MCP: как граф из 47 000 узлов API решил проблему
Автоматизация проектирования в KOMPAS-3D силами ИИ-агента (программы, которая сама пишет и выполняет код) упирается не в возможности модели, а в архитектуру обвязки: стандартный подход через MCP-инструменты порождает цепочки вызовов, в которых модель теряет контекст и множит ошибки.

Практик протестировал и отверг популярную схему с MCP (Model Context Protocol, стандартный способ подключения инструментов к ИИ-агенту) для работы с CAD-системой KOMPAS-3D и построил альтернативу: граф из 47 тысяч узлов API плюс многослойная валидация кода до его запуска в живой системе.
Разработчик, работающий с KOMPAS-3D, столкнулся с типичной проблемой: ИИ-агенты уверенно генерируют Python-скрипты для CAD, но эти скрипты системно ошибаются. Модель придумывает несуществующие функции, путает две исторически сложившиеся ветки API (API5 и API7, которые не смешиваются), вызывает свойство как метод, подставляет случайные числа вместо строго определённых значений. Попытки исправить это промпт-инжинирингом (подбором инструкций и примеров для модели) провалились: каждый новый пример закрывал одну ошибку и открывал две новых. Источник описывает полный цикл решения, от отказа от MCP до построения трёхслойной валидации.
Почему MCP здесь не справляется?
Стандартный рефлекс: обернуть API KOMPAS в набор MCP-инструментов, каждый со своей JSON-схемой. «Открыть документ», «получить состав», «заполнить ячейку штампа». На практике это превращает простой цикл из семи строк Python в десяток с лишним раунд-трипов через модель.
Пример из источника: обход состава сборки и чтение обозначения каждой детали. На Python это один цикл. Через MCP это цепочка: вызвать get_active_document, достать хэндл, скормить в cast_to_3d, достать другой хэндл, вызвать get_top_part, потом get_parts_count, потом на каждую деталь отдельный get_part_item и get_part_marking.
Ключевое наблюдение автора: JSON-схема плохо выражает то, что модель и так умеет. Приведение типа, цикл, временная переменная, ветвление, всё это LLM (большая языковая модель) видела в терабайтах обучающего кода. Разложенные на плоский список декларативных вызовов, те же операции становятся непривычными: модель хуже планирует цепочку, теряет промежуточные данные, путает параметры.
Решение получилось обратным по духу: дать модели писать полноценный код и построить вокруг него слои, которые ловят ошибки до запуска в живом CAD.
Что понадобится
- KOMPAS-3D с установленным SDK (набор инструментов для программирования под систему)
- Python 3.x с доступом к COM-автоматизации Windows
- LLM с поддержкой генерации кода, например, Claude или GPT-4 (конкретная модель в источнике не указана)
- Файлы описания COM-типов KOMPAS (шесть файлов, из которых строится граф API)
- Реальная сборка для тестирования (в демо использован файл
2025БК.100.10.00.000.a3d) - Время: настройка графа и валидации требует нескольких итераций, быстрого «подключил и заработало» здесь нет
Пошаговая инструкция
-
Откажитесь от обёртки API в MCP-инструменты. Вместо дробления на отдельные tool call позвольте ИИ-агенту генерировать цельные Python-скрипты. Агент пишет обычный код с циклами, переменными и ветвлениями, то есть в той форме, на которой он обучен.
-
Соберите граф API из файлов описания COM-типов. Из шести файлов описания типов KOMPAS извлеките все типы, функции и значения перечислений. Зафиксируйте каждый файл по контрольной сумме, чтобы отслеживать расхождения, если у клиента другая сборка. По данным автора, в графе получается около 47 тысяч узлов и 60 тысяч связей.
-
Добавьте связи приведения типов. В COM-архитектуре KOMPAS один объект часто реализует несколько интерфейсов. Эта связь не выражена в описаниях типов напрямую: её нужно извлечь из отдельной COM-конструкции. Без этого шага граф не знает, что, например, объект типа Part7 умеет обращаться к методам интерфейса IModelObject.
python
# Псевдокод: скрипт находит COM-классы и собирает
# список интерфейсов, реализуемых каждым классом
for coclass in type_library.coclasses:
interfaces = coclass.implemented_interfaces
# Отсеиваем обработчики событий (односторонняя стрелка)
interfaces = [i for i in interfaces if not i.is_event_handler]
graph.add_cast_edges(coclass, interfaces)
-
Отсеките интерфейсы-хабы. Базовые интерфейсы вроде
IKompasAPIObjectвстречаются почти в каждом COM-классе. Если пускать их в переходы, поиск пути превращается в хаос «из чего угодно во что угодно». Автор поставил порог отсечения (по умолчанию 10 классов) и вынес его в переменную окружения для калибровки. -
Подключите к агенту две функции на графе.
- Поиск ближайшего валидного имени. Агент запросил
ActiveDocument3D, граф отвечает: «такого нет, ближайшее ActiveDocument». Обычно одной итерации хватает. - Поиск пути между интерфейсами. Граф выдаёт готовый шаблон шагов, собранный из проверенных связей:
IApplication.ActiveDocument -> IKompasDocument
привести к IKompasDocument3D
IKompasDocument3D.TopPart -> IPart7
IPart7.Parts -> IParts
IParts.Item(i) -> IPart7
-
Добавьте справочник валидных значений (слой 2). Некоторые ошибки не поймает ни граф, ни компилятор. Метод заполнения ячейки штампа
IStamp.Text(cell_id, text)формально принимает любое целое число, но реально валидны только конкретные номера ячеек по ГОСТ 2.104. Заведите справочник допустимых значений для таких параметров и проверяйте сгенерированный код до запуска. -
Запускайте валидацию до отправки кода в живой CAD. Каждый сгенерированный скрипт проходит проверку по графу (существуют ли вызываемые методы, корректны ли приведения типов) и по справочнику значений. Только после прохождения всех слоёв код исполняется в реальной системе.
Задача: открыть 3D-сборку 2025БК.100.10.00.000.a3d, обойти состав, собрать спецификацию .spw по ГОСТ 2.106 с разделами «Документация», «Сборочные единицы», «Детали», «Стандартные изделия».
Что сделал агент: сгенерировал Python-скрипт, который через COM открывает документ, обходит дерево сборки, классифицирует компоненты по разделам ГОСТ и формирует спецификацию. Перед исполнением скрипт прошёл валидацию по графу API (все вызовы существуют, приведения типов корректны) и по справочнику значений (номера ячеек штампа соответствуют ГОСТ 2.104).
Результат: готовая спецификация по действующей редакции стандарта. Демо записано на реальной сборке из промышленной конструкторской документации.
- Пытаться чинить ошибки промптами. Автор прямо пишет: промпт-инжиниринг здесь не работает. API слишком большое, каждый пример закрывает одну ошибку и открывает новые. Нужна системная валидация, а не ручной подбор инструкций.
- Смешивать API5 и API7. У KOMPAS исторически две ветки API, которые не совместимы. Модель без ограничений будет комбинировать вызовы из обеих, и такой код может даже запуститься, но работать будет непредсказуемо.
- Игнорировать интерфейсы-хабы. Без порога отсечения граф строит бессмысленные пути через базовые интерфейсы, которые есть у каждого объекта. Агент получает «валидный» маршрут, но код на его основе делает лишние приведения типов.
- Доверять формальной типизации. Компилятор пропустит любое целое число в параметр ячейки штампа. Реально сработают только номера по ГОСТ. Без справочника допустимых значений ИИ-агент будет генерировать формально корректный, но бесполезный код.
Что делать с этим прямо сейчас?
Инженерам и CAD-разработчикам: если вы работаете с KOMPAS-3D и накопили коллекцию скриптов, паттерн «граф API плюс валидация значений» позволяет передать рутину генерации ИИ-агенту. Начните с построения графа из ваших файлов описания типов.
Авторам Дзена, пишущим о технологиях: разбор показывает конкретный случай, когда модный MCP-подход оказался хуже «старого» скриптового. Это сильный материал для статьи-сравнения подходов к ИИ-автоматизации.
Разработчикам ИИ-агентов для любых локальных систем: архитектура не привязана к KOMPAS. Любая система с большим COM или REST API, у которой модель путает вызовы, получит выигрыш от графа допустимых переходов и справочника валидных значений. Из доступных в РФ ИИ-моделей для генерации кода можно попробовать YandexGPT (хотя его способности к кодогенерации ограниченнее, чем у зарубежных аналогов).
Этот разбор ценен не столько конкретным решением для KOMPAS, сколько честным признанием: промпт-инжиниринг имеет потолок. Когда API содержит 47 тысяч узлов, никакой системный промпт не удержит модель от галлюцинаций (уверенного выдумывания несуществующих функций). Нужна внешняя структура, которая знает границы допустимого.
По моим наблюдениям, большинство попыток «прикрутить ИИ-агента к рабочему инструменту» спотыкаются именно здесь: не на уровне модели, а на уровне обвязки. Модель умеет писать код, но не знает, какой код допустим в конкретной системе. Граф API и справочник значений решают именно эту задачу, и этот паттерн переносим на любые CAD, ERP или учётные системы с программным интерфейсом.
Честная оговорка: автор показал демо на одной сборке. Насколько подход масштабируется на сложные изделия с сотнями компонентов, пока можно только предполагать.
Научитесь работать с ИИ-инструментами на практике
В dzen.guru мы разбираем реальные сценарии применения нейросетей для авторов и специалистов, без теории ради теории.
Попробовать dzen.guruПаттерн «дай модели писать код, но проверяй каждый вызов по графу до исполнения» применим далеко за пределами KOMPAS-3D. Если у вас есть локальная система с большим API и задача автоматизации, начните с малого: постройте граф хотя бы из той части интерфейса, которую используете чаще всего, и подключите проверку имён до запуска скрипта.

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».
Читайте также

Конференция HighLoad++ 2025 обнажила парадокс: компании внедряют ИИ-агентов, не меняя процессы
Я вижу проблему: H1 говорит «Конференция HighLoad++ 2026 об искусственном интеллекте», а формат задан как how-to. Но источник — это отчёт-обзор с конференции,…

Альтернатива Microsoft Office с ИИ в ядре: индийский фаундер вложил $30 млн своих денег
Индийский серийный предприниматель Бхавин Турахия вложил 30 миллионов долларов собственных денег в Neo, платформу, которая заменяет привычный офисный пакет…

Смарт-очки с камерой за 5 000 рублей: двухнедельный тест Blackview BV100
Blackview BV100 за 5 000 рублей позволяют снимать фото и видео, слушать музыку и общаться с ИИ-ассистентом голосом, и двухнедельный тест показал, где эти смарт…
Комментарии