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

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 просит прочитать её заметки о прерывании и восстановлении.
Дальше
Полное доказательство теоремы Ферма проверил Lean
«The FLT root reads PROVED», записал Claude, закрыв за 11 дней первое полное машинно проверяемое доказательство Великой теоремы Ферма. Оно заняло 13 миллионов строк Lean, впятеро больше библиотеки Mathlib.
Читайте также
Комментарии
Пока никто не написал. Будьте первым.
Присоединяйтесь к разговору
Войдите, чтобы оставить комментарий. Он появится после модерации.

