Перейти к содержанию

OpenAI

Код вместо кликов в образце computer-use агента

4 мин чтения

Текст написан ИИ-моделью по источникам, на которые ведут ссылки, и сверен с ними второй моделью. Как мы работаем

Всё о теме: OpenAI: модели и продукты →
Изображение: github.com

OpenAI строит цикл computer-use агента вокруг модели, которая пишет код для работы с программой, и 7 сентября выложила образец такого агента в открытом репозитории на GitHub. Агентов там два. Первый написан на JavaScript и водит браузер через Playwright. Второй на Python с PyAutoGUI управляет десктопом через скриншоты, мышь и клавиатуру. Лицензия MIT.

Сам цикл знакомый: агент смотрит на интерфейс, выбирает действие, выполняет его и проверяет результат. Operator, анонсированный 23 января 2025 года, работал на модели Computer-Using Agent (CUA): она читала скриншоты страницы и действовала мышью и клавиатурой, без API сайтов. В новом образце между моделью и интерфейсом стоит код. По описанию OpenAI, так модель может объединять действия, сама обрабатывать наблюдения и решать, когда снова посмотреть на экран.

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

Код разложен симметрично. Ядро цикла лежит в responses-loop.ts и responses_loop.py, в репозитории оно подписано как «модель, код, обратная связь». Рядом стоят постоянные исполнители, javascript-worker.ts и desktop/worker.py, а за жизненный цикл и прерывание Python-исполнителя отвечает runtime.py. JavaScript-агент использует локаторы Playwright, скриншоты и управление браузером в одной сессии, сервер и цикл у него на TypeScript. В Python-версии сервер, цикл и исполнитель PyAutoGUI тоже на Python, и она управляет видимым браузером на вашем рабочем столе. Веб-консоль и типы запросов, событий и записей прогонов (contracts/) у обоих агентов общие.

Задачи агентам дают в трёх учебных сценариях: доска задач с карточками и колонками, холст для рисования с фигурами, слоями и инструментами, поиск отеля с фиктивным бронированием. Промпты и настройки по умолчанию лежат в labs/catalog.json. Каждый прогон получает свежую копию шаблона, а рабочие файлы, скриншоты и записи складываются в каталог data/ выбранного приложения, который Git игнорирует. Записанную трассу можно открыть через Replay JSON, а по ленте скриншотов посмотреть, как выглядела среда на прошлых шагах.

Статус «Run finished» означает всего лишь, что цикл агента и очистка завершились штатно. Выполнена ли задача, предлагается решать самому по скриншотам, трассе и ответу модели: финальный ответ, предупреждают в OpenAI, не доказывает успеха.

Для запуска нужны Node.js 22.20.0 и ключ OpenAI API с доступом к настроенной модели, а pnpm 10.26.0 подтягивает Corepack из закреплённой в репозитории версии. Python-агенту нужны uv и Python 3.10 или новее (в репозитории закреплена 3.12), плюс разрешения на управление десктопом, а исполнитель проверяется командой uv run --project python-app python -m app.desktop.worker --check. В консоли выбирают сценарий, правят промпт и жмут Start Run. Прогоны делают настоящие вызовы API, прервать их можно кнопкой Stop, а перед сменой приложения нужно нажать Ctrl+C и дождаться остановки.

Образец показывает подход на стандартных библиотеках, а продукты OpenAI, по словам компании, работают на собственных средах исполнения с дополнительными мерами контроля. Сами продукты за это время успели сменить форму: 17 июля 2025 года Operator вошёл в ChatGPT как ChatGPT agent, отдельное приложение закрыли 31 августа 2025 года, а после того как ChatGPT agent убрали из ChatGPT и 9 августа 2026 года закрыли браузер ChatGPT Atlas, возможность живёт в облачном браузере на серверах OpenAI, расширении ChatGPT для Chrome и десктопном приложении ChatGPT Work.

В образце ничего из этой обвязки нет. Сгенерированный код исполняется с правами пользователя, без песочницы уровня ОС и без механизма проверки действий, который OpenAI применяет в продакшене. Запускать агентов OpenAI советует в учебных сценариях или в других средах под вашим контролем, ключи и данные прогонов держать при себе, а сервисы оставлять на адресах loopback по умолчанию. Python-агент двигает настоящую мышь и жмёт настоящие клавиши, а на скриншоты могут попасть чужие окна, поэтому нужна отдельная сессия рабочего стола и окно сценария поверх остальных на основном мониторе.

После сбоя на десктопе может остаться зажатая клавиша или кнопка мыши, поэтому до первого запуска Python-версии OpenAI просит прочитать её заметки о прерывании и восстановлении.

Пока никто не написал. Будьте первым.

Присоединяйтесь к разговору

Войдите, чтобы оставить комментарий. Он появится после модерации.