
CUA: платформа для автоматизации управления ОС с помощью ИИ-агентов в контейнерах
В мире автоматизации и искусственного интеллекта появляется всё больше проектов, расширяющих возможности взаимодействия с операционными системами на основе моделей ИИ. Один из таких интересных проектов — CUA (Computer-Use Agents), представляющий собой платформу для управления полноценными ОС через интеллектуальных агентов, работающих в виртуальных контейнерах, с поддержкой локального и облачного развёртывания.
Что такое CUA?
CUA — это, по сути, «Docker для агентов, использующих компьютер». Он позволяет запускать и управлять виртуальными машинами с Windows, Linux и macOS, используя единый и удобный API, а также интегрировать мощные модели искусственного интеллекта, способные работать с интерфейсом операционной системы — кликать, печатать, делать скриншоты и выполнять другие действия.
Архитектура CUA включает два ключевых компонента:
- Computer SDK — управление виртуальными машинами и ОС, создание, настройка, локальный запуск и облачное развертывание
- Agent SDK — использование ИИ-агентов, работающих с интерфейсом, с поддержкой различных моделей и композиций агентов
Основные особенности проекта
- Кроссплатформенность: автоматизация в Windows, Linux и macOS с единым API, похожим на pyautogui, но применяемым к виртуальным машинам.
- Виртуализация в контейнерах: использует контейнеры и виртуальные машины, которые можно запускать локально или хостить в облаке.
- Богатый набор моделей: интегрирован Model Zoo с поддержкой различных типов моделей — от all-in-one агентов, через UI grounding и UI planning модели до больших языковых моделей (LLM).
- Упрощённый доступ к ИИ-моделям: можно легко сменить модель и источник инференса (OpenAI, Anthropic, Huggingface, локальный запуск и др.), просто меняя префикс имени модели.
- Интерактивное тестирование: присутствует возможность benchmark-тестирования на наборах OSWorld-Verified и SheetBench-V2 прямо из кода.
- Открытый и расширяемый код: модульная архитектура с множеством отдельных библиотек и утилит (Lume, Lumier, MCP Server и др.), что облегчает кастомизацию и расширение.
- Поддержка Human-in-the-Loop: можно встраивать живое участие человека для улучшения работы агентов.
Задачи проекта
CUA ставит своей целью сделать управление операционными системами максимально автоматизированным, интеллектуальным и масштабируемым. Конкретно решаемые задачи:
- Автоматизация рутины: от тестирования ПО и написания скриптов до сложных сценариев взаимодействия с интерфейсами.
- Повышение эффективности работы с виртуальными машинами через ИИ, например, автоматический поиск и запуск приложений, обработка данных с экранов.
- Создание единой инфраструктуры для исследований и соревнований в области компьютерного использования ИИ, включая Hack the North.
- Предоставление мощного инструментария для разработки ИИ-агентов с возможностью смешения и комбинирования моделей.
Примеры применения CUA
- Автоматизация тестирования ПО: запуск тестов в Windows/Linux/macOS окружениях с автоматическим взаимодействием и сбором результатов.
- Виртуальные ассистенты для работы с компьютером: задача «сделай скриншот и расскажи, что ты видишь» выполняется ИИ с пониманием визуального интерфейса.
- Образовательные проекты и хакатоны: платформа отлично подходит для соревнований по созданию ИИ-агентов, которые могут управлять программами и ОС.
- Инструменты для разработчиков: позволяет разработчикам создавать более интеллектуальные средства автоматизации, комбинируя модели UI grounding (понимание интерфейса) и LLM.
- Облачные решения: развертывание контейнеров с виртуальными десктопами, которыми управляет ИИ, что может быть полезно для удалённой работы и поддержки.
Технические детали и использование
Для работы с CUA достаточно использовать Python SDK, где объект ComputerAgent
позволяет мгновенно подключить модель ИИ для взаимодействия с виртуальной машиной.
Пример кода на Python:
from agent import ComputerAgent
agent = ComputerAgent(
model="anthropic/claude-3-5-sonnet-20241022",
tools=[computer],
max_trajectory_budget=5.0
)
messages = [{"role": "user", "content": "Take a screenshot and tell me what you see"}]
async for result in agent.run(messages):
for item in result["output"]:
if item["type"] == "message":
print(item["content"][0]["text"])
Этот агент запустит задачу, сделает скриншот и опишет содержимое экрана. Аналогично можно писать сложные сценарии взаимодействия с ОС.
Также доступен Computer
— интерфейс управления виртуальной машиной с возможностью делать клики, вводить текст и получать состояние.
from computer import Computer
async with Computer(os_type="linux", provider_type="cloud", name="vm1", api_key="key") as computer:
screenshot = await computer.interface.screenshot()
await computer.interface.left_click(100, 100)
await computer.interface.type("Hello!")
Модули и инфраструктура CUA
Проект состоит из множества независимых, но интегрируемых модулей:
- Lume и Lumier — инструменты управления виртуальными машинами и интеграции с Docker.
- Agent SDK — ядро для создания и запуска ИИ-агентов.
- MCP Server — сервер для интеграции с клиентами типа Claude Desktop.
- SOM (Self-of-Mark Library) — вспомогательные библиотеки для агентов.
- Core packages для Python и Typescript — утилиты и API для различных компонентов.
Каждый модуль можно установить и использовать отдельно, что даёт гибкость в построении кастомных решений на базе CUA.
Заключение
CUA — это перспективная платформа для автоматизации работы с операционными системами на базе ИИ-агентов. Она сочетает в себе удобный API для работы с виртуальными машинами, продвинутую интеграцию с различными ИИ-моделями и модульную архитектуру для масштабирования и адаптации.