AI-агент для автоматизации desktop-приложений — разработка

Ручной ввод в desktop-приложениях съедает часы, а ошибки всплывают уже в отчётности. Мы разрабатываем AI-агентов для таких задач под ключ: агент сам заполняет формы и переносит данные, сокращая время на операцию в разы. Обсудим задачу — вернёмся с оценкой и планом.
Часто задаваемые вопросы

Почему AI-агент desktop ломается после обновления интерфейса

Агент, записанный через координаты клика и путь в дереве окна, живёт ровно до ближайшего обновления рабочего приложения. Разработчики переносят кнопку в другую панель, меняют порядок полей, добавляют промежуточный диалог подтверждения — и сценарий, который месяц закрывал проводки, перестаёт находить элементы. Тот же эффект даёт смена разрешения или масштаба на рабочей станции: сетка координат уезжает, и клик уходит в пустое место.

Хуже всего то, что такой отказ тихий. Агент не падает с ошибкой и не пишет тревожную строку: он ждёт элемент, повторяет шаг, откладывает его и переходит к следующему, а часть документов остаётся необработанной. Снаружи процесс выглядит живым, в отчётах — ноль ошибок.

Обнаруживается поломка не в логах агента, а в учётной системе: расхождения в реестре, зависшие заявки, непроведённые позиции, которые всплывают на сверке. К этому моменту партия накопилась, и разбирать её приходится вручную.

Хрупкость сценария автоматизации — не свойство конкретной программы, а следствие того, как он построен. Агент, который опирается на семантику элементов через UI Automation, проверяет результат каждого шага и сообщает о расхождении до того, как оно попадёт в реестр, переживает обновление интерфейса приложения без переписывания с нуля. Разбираем, как это закрывается.

Что даёт агентная автоматизация: эффект в измеримых числах

Эффект агентной автоматизации считают не по числу запущенных сценариев, а по времени, которое перестаёт уходить на сам поток операций. Агент берёт на себя перенос данных между окнами, выгрузки и заполнение форм — оператор перестаёт быть звеном передачи информации и занимается только решениями, которые требуют человека.

Скорость обработки заявок вырастает не за счёт ускорения одного шага, а за счёт снятия очереди: пока оператор разбирает одну заявку, агент параллельно ведёт несколько десятков однотипных и не ждёт подтверждения по каждой. Замеряется это временем от поступления заявки до готового результата и долей заявок, закрытых без участия человека.

Доля ошибок ручного ввода падает по понятной причине: значение переносится из источника в приёмник напрямую, без набора с клавиатуры и без сверки двух экранов глазами. Ошибка перестаёт зависеть от усталости к концу смены.

Повторные прогоны сценария тоже становятся управляемой величиной: каждый шаг получает признак выполнения, и после сбоя агент продолжает с контрольной точки, а не проходит весь путь заново. Это важно там, где повторный запуск создаёт дубли — в учётных системах, при отправке документов, при постановке задач.

Отдельно считают класс отказов, который уходит совсем: незаполненное поле, неверный формат даты, потерянная строка в выгрузке. Они не смягчаются, а исчезают, потому что проверка формата происходит до записи. Остаются отказы внешних систем — их обработку проектируют отдельными ветками сценария.

Режимы работы агента: сравнение подходов и ограничений

Совместимость агента определяется не моделью, а тем, где он исполняется. Режимы запуска агента различаются правами учётной записи, активностью сессии, разрешением экрана и способом обновления версии — и именно это чаще всего решает, заведётся сценарий или сорвётся на середине.

Агент на рабочем месте оператора работает в живой пользовательской сессии: видит те же окна, тот же фокус ввода и то же окружение, что и человек. Ограничение — зависимость от состояния сеанса: при блокировке экрана или перекрытом окне шаги срываются. Выделенная машина под агента снимает это постоянной сессией и предсказуемым окружением, но требует отдельного доступа к целевой системе и контроля состояния узла.

Вариант Когда подходит Ограничения
На рабочем месте оператора Разбор пилотного процесса, задачи с подтверждением человеком Зависит от активности сессии и настроек экрана, конфликтует с параллельной работой оператора
Выделенная машина под агента Регулярный поток однотипных задач без участия человека Нужны отдельные учётные данные, слежение за доступностью узла и обновлением агента
Общий парк с централизованным управлением Десятки агентов и сценариев на одну систему Требует реестра задач, разграничения прав между сценариями и очереди на общие окна

На практике режимы комбинируют: парк под централизованным управлением держит единые версии агента и общий журнал шагов, а чувствительные операции остаются за оператором. Опишите свои сценарии — вернёмся с оценкой, какой вариант выдержит их без переделки.

Этапы внедрения: аудит, схема, настройка, проверка, передача

Внедрение начинается не с показательного запуска, а с разбора того, как задача выполняется сегодня. Мы фиксируем последовательность шагов, их частоту, вариативность входных данных и точки отказа: где человек принимает решение, что происходит при нестандартном ответе системы, какие окна появляются реже одного раза в неделю. Автоматизация обычно ломается именно на этих редких ветках — поэтому они описываются на аудите, а не всплывают в опытной эксплуатации.

  1. Аудит процесса. Разбираем текущий сценарий по шагам, собираем перечень вариаций, отдельно выписываем исключения и правила доступа к учётным записям и справочникам.
  2. Схема сценария. Согласовываем карту действий агента: что он делает сам, где останавливается и передаёт управление оператору, как реагирует на изменение интерфейса целевых программ. Схема согласуется письменно — она становится основой приёмки.
  3. Настройка и обвязка. Собираем окружение в изолированном контуре, настраиваем доступы по принципу минимальных прав, логирование каждого действия и хранение скриншотов на случай разбора инцидента.
  4. Проверка на реальных примерах. Прогоняем сценарий на накопленной истории операций и на искусственно созданных сбоях: недоступный ресурс, изменившееся поле, тайм-аут ответа. Отдельно проверяем, как агент завершает работу при прерывании — без «зависших» окон и незакрытых операций.
  5. Опытная эксплуатация. Запускаем в паре с оператором на ограниченном участке: агент выполняет работу, человек сверяет результат. Расхождения разбираются, правила уточняются до приемлемой доли ручных вмешательств.
  6. Передача регламентов сопровождения. Отдаём описание сценария, инструкции по перезапуску и типовым сбоям, порядок обновления при изменениях в целевых программах.

После передачи агент остаётся управляемым: правки проходят тот же контур проверки, поэтому обновление не превращается в разовый аврал.

Что остаётся у заказчика: конфигурации, политики, регламенты

После сдачи у заказчика остаётся не только работающий агент, но и комплект артефактов, по которому команда сама меняет сценарии, выдаёт доступы и разбирает сбои без обращения к нам. Комплект рассчитан на то, что сопровождение ведёт ваша команда, а мы подключаемся точечно.

  • Конфигурация агента — шаги сценария, способы поиска элементов окна, время ожидания и правила повторов вынесены в отдельные файлы: правка шага не требует пересборки кода.
  • Схема процесса — как агент проходит сценарий целиком, где ветвления и какие данные переходят между шагами, чтобы новый инженер понял логику за один проход.
  • Политики доступа — под какой учётной записью работает агент, к каким системам и каталогам обращается, что ему явно запрещено.
  • Журнал прогонов — по каждому запуску: номер шага, результат, длительность, снимок экрана в момент ошибки; инцидент разбирается по записи, а не по памяти.
  • Набор проверочных прогонов — сценарии на тестовом стенде, которые прогоняются после каждой правки конфигурации и ловят регрессию до рабочего контура.
  • Инструкция для операторов — как запустить, поставить на паузу, продолжить с упавшего шага и что делать при нестандартном окне.
  • Регламент обновлений — кто правит конфигурацию, кто согласует, как откатиться на предыдущий набор шагов при регрессии.

Кейс: агент вместо ручного ввода заявок в учётную систему

Что было

Заявки приходили в почту и мессенджеры, а в учётную систему на 1С их заносили вручную: оператор открывал форму, переносил реквизиты, сверял контрагента по справочнику и подбирал номенклатуру. На одну заявку уходило 7–9 минут, в пиковые часы очередь тянулась до конца смены, а расхождения в реквизитах находились уже на согласовании — возврат и повторный круг.

Что стало

Агент разбирает входящее сообщение, сопоставляет контрагента и позиции со справочниками и работает в окнах учётной системы как человек: клики, ввод полей, переключение между формами — без правок в конфигурации и прямого доступа к базе. Спорные случаи он не додумывает, а откладывает в очередь на разбор оператору.

Метрики снимали в опытной эксплуатации на живом потоке. Доля ручных доработок после агента — 9% против 42% до него, среднее время заявки сократилось с восьми минут до сорока секунд, а расхождения реквизитов перестали доходить до согласования: обязательные поля агент проверяет до записи. Операторы переключились на исключения и конфликты справочников.

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

Чем AI-агент desktop отличается от записи макросов

Запись макроса фиксирует последовательность действий: координаты кликов, паузы, позицию окна. Такой сценарий воспроизводится буквально — сдвинулась панель, поменялся порядок полей, всплыло уведомление, и цепочка рассыпается на середине, когда часть данных уже отправлена в систему.

AI-агент desktop работает не с координатами, а со смыслом экрана. Он разбирает состояние интерфейса — какие поля заполнены, что осталось обязательным, какое окно поверх остальных, — и решает, какое действие ведёт к цели. Распознавание состояния формы идёт по содержимому и структуре элементов, поэтому перенос кнопки на другое место ничего не ломает.

Жёсткие скрипты надёжны ровно до первого изменения интерфейса или нестандартного состояния. Поддерживать их дорого: каждое обновление учётной системы превращается в правку ветвлений, а непредусмотренное модальное окно останавливает весь процесс до ручного вмешательства.

Отдельное отличие — восстановление после сбоя. Макрос на неожиданном диалоге просто ждёт или падает с ошибкой. Агент замечает расхождение с ожидаемым состоянием, повторяет шаг, закрывает лишнее окно и возвращается к контрольной точке, а весь путь действий остаётся в журнале для разбора.

Это не значит, что агент заменяет всё. Там, где последовательность жёстко задана и экран стабилен, детерминированный код предсказуемее. Мы обычно собираем гибрид: агент отвечает за распознавание и ветвления, а повторяемые операции выполняет проверенный скрипт.

Технические сомнения: устойчивость, доступы, откаты

Агент работает поверх интерфейсов приложения, а не через его внутренние точки интеграции. Отсюда главный вопрос: что происходит, когда окно открылось не тем, кнопка переехала или сессия отвалилась на середине. Цикл строится с проверкой состояния после каждого шага — агент подтверждает результат по факту, а не по нажатию. Если ожидаемое состояние не наступило, шаг повторяется ограниченное число раз, после чего задача помечается как требующая человека: очередь не забивается молчаливыми ошибками.

Права выдаём по минимуму: отдельная учётная запись, доступ только к нужным системам и папкам, без администраторских полномочий на рабочей станции. Каждое действие попадает в журнал — что открыл, что ввёл, где остановился, — по нему восстанавливается ход любой задачи. Внедрение обратимо: агент не вытесняет прежнюю автоматизацию, а встаёт рядом, доля операций переключается маршрутизацией и так же возвращается назад. Отключение — это остановка сценария и снятие доступа, данные остаются на месте.

Что будет, если в приложении обновят интерфейс?

Агент опирается на несколько признаков элемента, а не на координаты. При переезде он останавливается на несовпадении и сообщает, какой шаг сломался, — правку вносим точечно, без переписывания сценария.

Какие права нужны агенту на рабочей машине?

Ровно те, что нужны для целевых операций, и ни одного лишнего: обычная учётная запись, отдельный профиль, без доступа к платёжным и кадровым контурам. Объём прав согласуем до запуска.

Можно ли вернуться к ручному процессу?

Да. Прежний порядок сохраняется на время внедрения, переключение идёт частями. Если пробная группа показывает хуже, чем было, возвращаем маршрут людям, не переделывая уже сделанное.

Обсудим задачу: с чего начинаем и что нужно от вас

Чтобы оценка была предметной, а не «плюс-минус», нам нужен доступ к тому, как процесс работает сейчас. Обычно хватает описания сценария, тестового контура с теми же версиями систем и перечня приложений, в которых действует агент. Собираем это в один заход — и возвращаемся с планом внедрения по этапам.

  • Описание процесса: шаги оператора, точки принятия решений, что считается успешным завершением и какие ошибки критичны.
  • Перечень систем: где ведётся работа, как выполняется вход, есть ли программные интерфейсы или только экранный ввод.
  • Тестовый контур: копия окружения с обезличенными данными, учётные записи с нужными правами, доступ по защищённому каналу.
  • Примеры сложных случаев: редкие сценарии, всплывающие окна, изменения интерфейса, ручные подтверждения — по ним видно, где агент упрётся.
  • Регламент и ограничения: какие действия требуют подтверждения человека, что агенту запрещено, кто отвечает за итоговое решение.
  • Ответственный с вашей стороны: человек, который подтверждает сценарии и принимает результат каждого этапа.
  • Целевые показатели: время одной операции, доля сценариев без ручного вмешательства, допустимый уровень ошибок.

Дальше наш шаг: разбираем материалы, воспроизводим сценарий на тестовом контуре и возвращаемся с оценкой работ и планом внедрения. В плане фиксируем, что предъявляем после каждого этапа и как откатываемся, если поведение агента отклоняется от согласованного.

Направления AI-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1142