dobrovolskiy.com
EN
← Заметки2026-08-30 · Дмитрий Добровольский

Агент Claude внутри FreeCAD и AutoCAD: что на самом деле нужно CAD-копилоту

Техническая заметка о FreeGAD (верстак FreeCAD на Python) и AutoGAD (плагин AutoCAD 2025 на .NET 8): цикл инструментов над открытым документом, скриншоты как зрение, подтверждаемые правки, память по документам, клиенты для двух провайдеров и шифрование ключей.

Я сделал двух LLM-агентов, живущих внутри CAD-программ: FreeGAD — верстак FreeCAD 1.0/1.1 на Python, и AutoGAD — плагин для AutoCAD 2025 на .NET 8. Оба крутят цикл вызова инструментов над открытым документом, умеют смотреть на вьюпорт, правят модель только после диалога подтверждения, помнят заметки по каждому документу и работают с Claude или любой OpenAI-совместимой моделью. Заметка — о решениях, которые сделали их пригодными для настоящей инженерной работы.

Почему панель чата, а не окно чата

Контекст инженера-конструктора — открытый документ. Копировать свойства во вкладку браузера и вставлять код обратно медленно и чревато ошибками. Поэтому оба плагина встраивают панель чата в хост — панель верстака во FreeCAD, вкладку ленты с пристыковываемой палитрой в AutoCAD — и дают модели инструменты, которые читают и меняют документ напрямую.

Что видит модель

На каждом ходу агент отправляет компактный снимок документа: во FreeCAD — дерево объектов со свойствами, ограничения эскизов и ячейки таблиц; в AutoCAD — слои, листы, перечень блоков и текст спецификаций. Снимки короткие и стабильные, чтобы работало кэширование промпта: большая часть запроса между ходами не меняется.

Сверх снимка модель вызывает инструменты чтения по мере надобности: FreeGAD открывает любое свойство и умеет измерять геометрию; у AutoGAD есть query_entities, get_block_inventory, get_layers, get_tables и get_context над живой базой DWG.

Зрение замыкает цикл. take_screenshot во FreeGAD рендерит 3D-вид и отправляет его модели: после правки она проверяет, правильно ли выглядит деталь, а не только успешно ли прошёл вызов API. Один этот инструмент убрал большинство случаев «сказала „готово“, а результат неверный».

Записи всегда под подтверждением

Каждый инструмент записи — run_python, set_property, set_expression, delete_object во FreeCAD; replace_text, set_text, create_text, set_layer_state, set_custom_property, run_command в AutoCAD — открывает диалог с точным кодом или изменением, и каждая подтверждённая правка — один шаг отмены. Есть переключатель автоподтверждения для сессий, которым доверяешь. Это и есть разница между демо и тем, что можно подпустить к чертежу, который сдавать завтра.

Память, переживающая перезапуск

Оба хранят заметки по пользователю и по документу — по Uid документа FreeCAD или по GUID-отпечатку, записанному в чертёж, — плюс историю чата на документ. Модель сама пишет и читает их (remember / forget), так что решения вроде «плата 86,9 × 14,3 × 1,6 мм и лежит на основании» остаются привязаны к файлу.

Провайдеры, ключи и стоимость

Оба клиента говорят на Anthropic Messages API и с любым OpenAI-совместимым эндпоинтом, переводя tool_use в tool_calls и сопоставляя настройки усилия/рассуждений между провайдерами, с адаптивным мышлением у Claude. Написаны на голом HTTP (stdlib Python; HttpClient в .NET), без SDK. Ключи API зашифрованы Windows DPAPI. AutoGAD показывает стоимость в токенах каждого ответа и всей сессии; у FreeGAD есть анонимная телеметрия с возможностью отключения (FastAPI + SQLite + дашборд на SvelteKit), которая пишет задержки, расход токенов и зависания GUI.

Упаковка

FreeGAD поставляется с package.xml для FreeCAD, установщиком Inno Setup и лицензией AGPL. У AutoGAD два установщика: пользовательский EXE на Inno Setup с загрузкой по требованию через реестр и машинный MSI на WiX с бандлом Autodesk Autoloader. AutoGAD версии 1.0.5 — то, чем я ежедневно пользуюсь для рабочей документации по электрике и освещению: его персона знает российские нормы оформления (нагрузки, выбор автоматов, проверка кабелей).

Что сделал бы иначе

Сначала сделал бы инструмент скриншота. Всё остальное — обвязка; в момент, когда модель увидела собственный результат, качество правок изменилось. И держал бы инструменты записи узкими: общий run_python могуч, но именно конкретные инструменты (set_property, replace_text) пользователи подтверждают, не перечитывая по три раза.

Вопросы

Модель меняет мой чертёж без спроса?

Нет. Каждая запись проходит через диалог подтверждения с точным изменением, и каждая — один шаг отмены. Автоподтверждение по умолчанию выключено.

Какие модели работают?

Claude через Anthropic API и любой OpenAI-совместимый эндпоинт (включая локальные серверы). Плагины переводят форматы вызова инструментов между ними.

Можете сделать похожего агента для моей CAD или инженерной программы?

Да — та же схема (снимок, инструменты чтения, подтверждаемые записи, память) переносится на любой хост со скриптовым API. Делаю такое вживую, с почасовой оплатой.

Нужно что-то похожее?

Делаю это вживую на звонке в Zoom / Яндекс Телемост, вы смотрите на экран, таймер останавливается по вашему слову. Первые 15 минут бесплатно.

Ещё проекты

FreeGAD: Claude внутри FreeCADИнженерный ассистент на базе Claude, живущий внутри FreeCAD.