Не завис, а считал: как две нейросети ускорили каталог Archicad с минут до секунд

В диспетчере задач напротив Archicad 26 стояло «Не отвечает». Процесс держал около 13% процессора и почти 4 ГБ памяти, каталог покрытий стен больше шести минут показывал «2D | Обработка элементов». Обычно в этот момент задачу снимают. Мы не стали: на 389-й секунде обработка ещё шла, к 452-й таблица была готова. Программа не зависла, она считала.
Это ноутбук дизайнера интерьеров, нашей клиентки. Она попросила помочь удалённо: каталог отделки стен открывается минутами, а когда его ставишь на лист, Archicad перестаёт отвечать. Работали две нейросети. Codex управлял её рабочим столом через удалённый доступ: открывал проект, читал настройки, замерял время и вёл журнал. Claude Code разбирал журнал, задавал вопросы клиентке и готовил задания на следующий заход. Кода в этой истории нет вообще, только чужая программа с интерфейсом, в котором агенту приходится кликать.
Где нейросети неудобно
Сначала о том, чего не видно в итоговой цифре. Удалённое управление вело себя непредсказуемо. Прокрутка над плавающей панелью Навигатора масштабировала чертёж вместо списка. Попытка перетащить таблицу на лист двигала главное окно программы. Часть кликов терялась, когда клиентка в это же время трогала мышь, и Codex каждый раз останавливался и спрашивал, свободны ли оба компьютера.
Ещё одно ограничение — чужое время. Клиентке нужно было работать, и в какой-то момент диагностику пришлось прервать, закрыть тестовую копию и вернуть ей ноутбук. Следующий заход был жёстко ограничен: десять минут на одну конкретную проверку. Поэтому эксперименты проводили на копиях проекта, а оригинал не перезаписывали. Для контрольного замера сделали отдельную копию с суффиксом repair.
Критерии каталога
Каталог — это таблица, которую Archicad собирает из модели по условиям в «Параметрах схемы». Здесь он считал площади стен по покрытиям. Codex прочитал условия, ничего не меняя. Упрощённо, с условными названиями покрытий:
Тип элемента = Стена И
Покрытие отличается от строительного материала И
( Покрытие = Плитка A ИЛИ
Покрытие = Плитка B ИЛИ
Покрытие = Штукатурка ) ИЛИ
Покрытие = Белая краска
Открывающая скобка стояла в третьей строке, закрывающая — в пятой. Белая краска оказалась в шестой, за скобкой. «И» связывает сильнее, чем «ИЛИ», поэтому выражение читается так:
(Стена И Отличается И (Плитка A ИЛИ Плитка B ИЛИ Штукатурка)) ИЛИ Белая краска
Для ветки с белой краской условие «только стены» не действует. Archicad приходится проверять на это покрытие всё подряд, а не только стены. У Graphisoft это описано прямо: несгруппированное «ИЛИ» заставляет программу проверять все элементы проекта (статья поддержки). То есть мы нашли не новый баг, а известную ловушку. Дальше о том, как её обнаружили в чужом файле и что изменило исправление.
A/B на одной копии
Codex взял одну копию проекта и поменял в ней только положение закрывающей скобки: перенёс её с пятой строки на шестую. Потом смотрел, сколько проходит до готовой таблицы.
Скобка закрывается | Время до готовой таблицы | Штукатурка, м² | Плитка A, м² | Плитка B, м² | Белая краска, м² |
|---|---|---|---|---|---|
после штукатурки (как было) | на 68-й и 142-й секунде ещё считал, к 210-й готово | 130,11 | 7,48 | 9,05 | 33,06 |
после белой краски | готово не позже 8 секунд | 130,11 | 7,48 | 9,05 | 27,45 |
Время здесь — интервал между снимками экрана, а не бенчмарк. Агент видит экран кадрами, и между кадрами проходят десятки секунд. Честно сказать можно так: старый вариант считал от двух с лишним до трёх с половиной минут, новый — единицы секунд. Первое открытие исходного каталога вообще заняло около семи минут, но там условия замера были другими, и в таблицу мы его не ставим.
По дороге всплыла мелочь, которая стоила нескольких минут из тех десяти. Чтобы не трогать исходный каталог, Codex сделал его дубликат и перенёс скобку в нём. Но после «ОК» в параметрах дубликата Archicad неожиданно начал пересчитывать старый каталог, оставшийся открытым на соседней вкладке. Esc расчёт не остановил, и пришлось ждать ещё около трёх минут. Если соберётесь экспериментировать с тяжёлым каталогом, закройте его вкладку до правки копии.
5,61 м², которые мы не объяснили
Три строки из четырёх совпали до сотых. Белая краска уменьшилась на 5,61 м². Логически это элементы, которые попадали в таблицу только через ветку «ИЛИ Белая краска» мимо фильтра по стенам. Какие именно, мы не выяснили. Codex начал временно добавлять в таблицу поле «Тип элемента», чтобы увидеть их, но до конца эту проверку не довёл и отменил диалог без изменений.
Перенос скобки меняет не только скорость, но и выборку. Нельзя молча поставить быстрый вариант в чужую смету и считать задачу решённой: цифры в ней поменялись, а мы не знаем, какой из двух наборов правильный.
Вопрос, на который ответила клиентка
Claude Code вынес это как отдельный вопрос клиентке: что она считает этой таблицей и зачем в модели белая краска. Ответ снял проблему. Белая краска у неё — временная заливка: сначала все стены белые, потом она назначает им нужную плитку или цвет. Считать ей нужно штукатурку и плитку, а они в двух вариантах совпали. Для её задачи быстрый каталог подходит, и расхождение по белой краске ей не мешает.
Этого знания не было ни в модели, ни в журнале, ни в документации Graphisoft. Нейросети нашли строку, аккуратно замерили и не стали подгонять цифры. Решение, какой набор верный, приняла клиентка.
Перенос в рабочий файл
В рабочем проекте скобку поправила сама клиентка по нашей подсказке. Открыла нашу копию каталога как образец, спросила в чате, где должна стоять скобка, и за несколько минут поправила условие в своей таблице. К следующему дню она успела поменять в каталоге состав покрытий, так что вчерашние цифры к её файлу уже не относились. Codex их не подставлял, а перечитал актуальную схему: скобки стояли правильно, каталог открывался меньше чем за десять секунд.
Отдельно проверили шаблон, из которого начинается каждый её новый проект. Там оба каталога покрытий уже были сгруппированы правильно, и повторно их не трогали. Новый проект, созданный из шаблона, открыл каталог стен примерно за двадцать секунд с учётом задержек удалённого экрана.
Если у вас медленный каталог
Скопируйте проект и работайте на копии. Проверьте по заголовку окна, что открыта именно она.
Не спешите снимать задачу только из-за статуса «Не отвечает». Если процесс занимает процессор, запишите время и дайте операции разумный срок: так у вас появится исходная цифра для сравнения. Если она так и не завершается, это уже другая диагностика.
Откройте «Параметры схемы» и найдите цепочки одинаковых условий через «ИЛИ». Посмотрите, где стоят скобки и какие условия типа элемента остались снаружи группы.
Перед правкой перепишите площади всех строк таблицы.
Меняйте одно: положение скобки. Не добавляйте и не удаляйте покрытия заодно.
Сравните и время, и каждую площадь. Если цифры разошлись, выясните у автора модели, какой вариант отвечает его задаче.
Закройте вкладку тяжёлого каталога, прежде чем подтверждать параметры его копии.
Что из этого следует для агентов
Эта проверка объяснила медленный расчёт каталога. После исправления клиентка сразу поставила его на лист, так что прежние зависания при размещении, судя по всему, были тем же пересчётом. Про другие сбои программы по одному такому эксперименту выводов делать нельзя.
В программе с графическим интерфейсом агент работает медленнее, чем с кодом, и спотыкается о вещи, которых в терминале нет: теряет клики, видит мир кадрами, делит мышь с человеком. Но то, ради чего его звали, он сделал хорошо. Поменял одну переменную, замерил, записал все цифры, а не только красивую, и остановился там, где решение было не его. Скобку нашли за один вечер. Вопрос про белую краску занял один разговор с клиенткой, и без него исправление было бы наполовину угадайкой.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.