CUA: как дать ИИ-агенту настоящий компьютер и не пожалеть об этом

2
CUA: как дать ИИ-агенту настоящий компьютер и не пожалеть об этом

Обычный ИИ-агент умеет писать текст, генерировать код и вызывать API. CUA идёт дальше и даёт агенту фактически собственные руки. Модель может увидеть окно программы, найти кнопку, нажать её, набрать текст, переключиться в другое приложение, открыть файл и проверить результат. Причём работать можно не только в браузере, но и с обычными приложениями Windows, macOS и Linux.

Я бы не называл CUA очередной библиотекой для автоматизации мыши. Сейчас проект превратился в целую инфраструктуру для computer-use агентов. В ней есть драйвер рабочего стола, облачные изолированные компьютеры, локальные виртуальные машины, инструменты оценки и экспериментальные модели. Самая интересная часть для обычного разработчика называется Cua Driver. Именно с неё я бы начинал знакомство.

Как устроен CUA и почему здесь не только скриншоты

Примитивный computer-use агент работает примерно так. Делает снимок экрана, отправляет картинку модели, получает координаты кнопки, кликает, снова фотографирует экран и повторяет цикл. Метод универсальный, но медленный и хрупкий. Кнопка сдвинулась на двадцать пикселей, появилось окно обновления или изменился масштаб интерфейса, и агент начинает промахиваться.

Как работает CUA Светлая анимированная схема. Модель передаёт решение ИИ-агенту, агент работает через Cua Driver, а Driver управляет операционной системой, приложениями, браузером, файлами и командами. Как работает CUA Модель принимает решение, агент строит план, Cua Driver превращает план в реальные действия Модель решает, что сделать ИИ-агент строит план шагов и проверяет результат Cua Driver клики, ввод, окна файлы и команды Компьютер Что получает агент Приложения окна и элементы интерфейса Браузер сайты и веб-приложения Файлы чтение и изменение данных MCP и команды инструменты вместо лишних кликов

CUA использует более широкий подход, который разработчики называют Computer-Use 2.0. Агент может сочетать графический интерфейс, дерево доступности, команды, файлы, программные интерфейсы и MCP. Если задачу проще решить через терминал, нет смысла десять раз нажимать кнопки. Если нужного API нет, агент возвращается к интерфейсу программы.

КомпонентДля чего нужен
Cua DriverУправляет приложениями и браузерами на Windows, macOS и Linux
Cua FleetsЗапускает изолированные облачные компьютеры для агентов
LumeСоздаёт локальные виртуальные машины macOS и Linux на Apple Silicon
CUA-S1Экспериментальное семейство небольших специализированных моделей для принятия отдельных решений
Cua-BenchСоздаёт тестовые задания, проверяет агентов и сохраняет траектории их работы

Разделение мне нравится. CUA не пытается притворяться одной волшебной нейросетью. Модель решает, что делать, агентный рантайм хранит контекст и план, а Cua Driver превращает решение в действия на компьютере.

Схему можно представить так.

модель → агент → Cua Driver → операционная система → приложение

Причём модель необязательно поставляет сама CUA. Driver можно подключить к Claude Code, Codex, Cursor и другим агентам. Для связи используется в том числе MCP, который превращает функции драйвера в доступные агенту инструменты.

Как попробовать Cua Driver на практике

Проект поддерживает Windows, macOS и Linux. В официальной документации установка сведена к одной команде. На Windows разработчики предлагают PowerShell.

irm https://cua.ai/driver/install.ps1 | iex

На macOS и Linux используется shell-установщик.

/bin/bash -c "$(curl -fsSL https://cua.ai/driver/install.sh)"

Я не люблю бездумно передавать скачанный из сети скрипт прямо в PowerShell или Bash. Для тестовой машины способ удобен, но на рабочем компьютере разумнее сначала скачать скрипт, посмотреть содержимое и только затем запускать.

После установки полезно сразу проверить не только наличие бинарного файла, но и доступ драйвера к графической сессии.

cua-driver --version
 cua-driver status
 cua-driver doctor
 cua-driver call list_apps

Последняя команда особенно показательна. Если Driver видит установленные приложения, можно переходить к агенту. Для MCP-клиента CUA умеет сформировать конфигурацию автоматически.

cua-driver mcp-config --client codex

Для Claude Code можно зарегистрировать сервер напрямую.

claude mcp add --transport stdio cua-driver -- cua-driver mcp
 claude mcp list

После подключения агент получает инструменты работы с окнами и интерфейсом. Простейшая проверка из документации CUA почти нарочито скучная. Попросить агента открыть калькулятор, вычислить 6 × 7 и убедиться, что приложение показывает 42. Скучный тест здесь полезнее эффектной демонстрации, поскольку проверяет полный цикл от решения модели до действия и обратного чтения состояния программы.

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

Где CUA действительно полезен, а где реклама забегает вперёд

Главное преимущество CUA появляется там, где автоматизация упирается в программы без нормального API. В компании может годами жить старое Windows-приложение, внутренний кабинет, бухгалтерская программа или инженерная утилита. Написать интеграцию нельзя, а человек ежедневно нажимает одни и те же кнопки. Computer-use агент способен закрыть подобный разрыв.

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

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

Но фраза «ИИ сам работает за компьютером» создаёт слишком оптимистичное впечатление. Графические агенты всё ещё ошибаются, теряют контекст, неверно выбирают элементы и делают лишние шаги. Свежий OSWorld 2.0 специально проверяет длинные реальные рабочие процессы. Даже лучшие протестированные системы остаются очень далеко от безошибочной автономной работы на протяжении сложной многоэтапной задачи.

CUA частично снижает проблему за счёт дерева доступности, точной привязки к окнам и структурированных браузерных инструментов, но не отменяет ошибок самой модели.

Есть и технические границы. Поддержка браузеров неодинакова. Типизированное управление страницами лучше всего развито для Chromium, Chrome, Edge и части Electron-сценариев. Firefox и Safari приходится обслуживать через менее удобные механизмы доступности и управление интерфейсом. Wayland ограничивает некоторые виды фонового ввода. В Windows мешают границы привилегий, а отдельные программы используют собственные нестандартные элементы интерфейса.

Поэтому слово «поддерживается» не означает «любой интерфейс гарантированно работает». Сами разработчики CUA стараются возвращать явный отказ, когда драйвер не может безопасно выполнить операцию, вместо ложного сообщения об успехе. Такой подход выглядит здоровее многих систем автоматизации, которые честно сообщают «click succeeded» после клика в пустое место.

Безопасность важнее способности нажимать кнопки

Computer-use агент получает доступ к действиям, которые обычно выполняет владелец компьютера. Тестировать подобные системы безопаснее в отдельной виртуальной машине или облачной песочнице, без основных паролей, личных документов и административных прав.

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

Особенно неприятен prompt injection. Агент открывает веб-страницу или документ, встречает внутри вредоносную инструкцию и принимает чужой текст за команду. Чем больше инструментов и прав выдали агенту, тем дороже такая ошибка.

В CUA для ограничения полномочий есть три режима. standard рассчитан на обычную локальную работу. bounded ограничивает агента заранее описанным набором приложений, сайтов, каталогов и инструментов. unrestricted снимает часть встроенных ограничений и предназначен скорее для одноразовой изолированной среды.

Для автономного агента я бы выбирал bounded. Принцип простой. Не агент должен объяснять, почему ему нельзя открывать менеджер паролей. Среда изначально не должна давать такую возможность.

У Cua Driver есть ещё одна деталь, которую легко пропустить. Продуктовая телеметрия включена по умолчанию. Разработчики заявляют, что содержимое экранов, файлов и команд в такую телеметрию не входит. Отправляются технические сведения о версии, платформе, типах операций и результатах. При желании передачу можно отключить.

cua-driver telemetry status --json
 cua-driver telemetry disable

Сам проект распространяется по лицензии MIT, но отдельные зависимости используют собственные лицензии. Например, опциональный набор cua-agent[omni] включает компоненты с AGPL-3.0. Для корпоративного продукта список зависимостей стоит проверять отдельно, а не ограничиваться надписью MIT на главной странице репозитория.

Мой вывод

CUA интересен не обещанием «заменить человека за компьютером», а инженерной попыткой нормально собрать все части computer-use системы. Здесь есть управление реальным рабочим столом, MCP, политики доступа, виртуальные машины, облачные песочницы и собственный стенд оценки. Получается скорее инфраструктурный конструктор для разработчиков агентов, чем готовый цифровой сотрудник.

Для первого знакомства я бы не поднимал Fleets и не экспериментировал с полной автономностью. Поставил бы Cua Driver на отдельную тестовую машину, подключил знакомого агента через MCP, дал задачу из нескольких действий и посмотрел, насколько стабильно система переживает всплывающие окна, ошибки и изменения интерфейса.

Если задача хорошо решается через API или обычный скрипт, CUA только добавит сложности. Если приходится автоматизировать несколько настольных программ, старый корпоративный интерфейс или рабочий процесс без API, проект становится намного интереснее. Главная граница проходит не по способности модели найти кнопку, а по цене неправильного нажатия.

CUA работает только с браузером?

Нет. Cua Driver рассчитан на обычные настольные приложения и браузеры в Windows, macOS и Linux.

Нужна ли отдельная модель ИИ?

Для Cua Driver можно использовать внешний агент и поддерживаемую им модель. CUA также развивает собственные специализированные модели CUA-S1, но Driver от них не зависит.

Может ли CUA работать с Claude Code или Codex?

Да. Документация содержит готовые варианты подключения Cua Driver к Claude Code, Codex, Cursor и ряду других агентов через MCP или командную строку.

Можно ли запускать CUA на основном компьютере?

Технически можно, но для автономных задач безопаснее отдельная виртуальная машина или песочница с минимальными правами и без чувствительных данных.

CUA полностью заменяет Selenium или Playwright?

Нет. Для предсказуемой автоматизации веб-приложения специализированные инструменты часто быстрее и надёжнее. CUA полезнее, когда задача пересекает границы браузера, рабочего стола, файлов и нескольких приложений.

Можно ли ограничить доступ агента только одной программой?

Да. Режим bounded и capability manifest позволяют заранее ограничить доступные приложения, инструменты, каталоги и веб-источники.

CUA бесплатный и открытый?

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

CUA агенты компьютер автоматизация MCP нейросеть
Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.
root@node:~$ SCAN_TARGET   // ACCESS_GRANTED   // ENUMERATE_AD   // PIVOT_INTERNAL   // TRACE_ATTACK_PATH   // SESSION_ACTIVE   // BYPASS_COMPLETE
0x04FF   // KERBEROS::ENUMERATE   // SHELL_READY   // PRIVILEGE_CHECK   // LATERAL_MOVE   // RED_TEAM   // TARGET_REACHED
ACCESS GRANTED root@node:~$ pivot --inside-net
ATTACKER VIEW
Знать, как выглядит защита, одно. Знать, как ее обходят, совсем другое. Именно здесь начинаются Red Team и пентест
RED TEAM
CyberED × SecurityLab.ru

Юрий Кочетов

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

Реклама 18+
Рекламодатель
Реклама. АО «Позитив Текнолоджиз». ИНН 7718668887. 18+
Сайт рекламодателя: ptsecurity.com
Реклама