Когда OpenAI выпустила Codex «почти для всего», технологический мир это заметил. ИИ пишет код и составляет электронные письма уже много лет, но утверждение, что Codex теперь может работать в macOS — «видя, нажимая и печатая собственным курсором» — представляет собой принципиально иную способность.
Связать облачную языковую модель с локальной операционной системой — задача заведомо трудная. Десятилетиями автоматизация опиралась на хрупкие Application Programming Interfaces (API) или скрипты, парсящие DOM, которые ломались, как только менялся хоть один элемент интерфейса.
Главная инженерная идея: Codex отказался от интеграции на уровне кода в пользу исполнения на уровне пикселей. Сочетая мультимодальное зрение с низкоуровневой инъекцией событий ядра, OpenAI превратил Graphical User Interface (GUI) в универсальный API.
Далее — техническая архитектура, которая делает это возможным.
Архитектура Mac-нативного агента
Чтобы ИИ мог тестировать приложение или итерировать фронтенд-дизайн без участия человека, ему нужен непрерывный цикл «Восприятие — Рассуждение — Действие». Вот как Codex, вероятно, реализует каждый этап в macOS.
1. Восприятие: семантическое зрение и движок Grounding
Традиционные инструменты автоматизации вроде AppleScript читают дерево доступности UI. Этот подход быстр, но пасует на кастомных Electron-приложениях, веб-полотнах или играх, где элементы интерфейса лишены корректных тегов доступности.
OpenAI утверждает, что Codex работает с приложениями, «видя» их, — то есть опирается на Computer Vision. Хост-приложение, запущенное на Mac, с высокой частотой делает снимки кадров рабочего стола. Затем мультимодальная модель разбирает эти кадры методом семантической сегментации — она ищет не HTML-теги, а визуально распознаёт форму и контекст элементов интерфейса: кнопок, строк поиска, меню.

Ключевая инженерная задача здесь — Grounding. Определив цель, ИИ выполняет расчёт, чтобы сопоставить семантический объект с точными пиксельными координатами на экране. Он переводит «нажми кнопку закрытия» в точные позиции (x, y), учитывая конкретное разрешение дисплея и коэффициент масштабирования.
| Этап | Что происходит | Технология |
|---|---|---|
| Захват кадров | Высокочастотные скриншоты рабочего стола | Хост-приложение |
| Семантический разбор | Идентификация элементов UI по внешнему виду, а не по коду | Мультимодальная модель зрения |
| Grounding | Сопоставление семантических целей с пиксельными координатами | Модель регрессии координат |
| Диспетчеризация действий | Внедрение синтезированных событий ввода в ОС | Хуки системного фреймворка |
2. Действие: инъекция событий уровня ОС
Знать, куда нажать, имеет смысл, только если программа действительно может запустить действие. Codex полностью обходит физическую периферию.
Для взаимодействия с macOS на нативном уровне Codex почти наверняка обращается к самым глубоким системным фреймворкам Apple: Quartz Event Services и Accessibility API.
Когда Codex решает нажать, он синтезирует виртуальный CGEvent — mouseDown, за которым следует mouseUp, — и напрямую внедряет его в системную очередь событий macOS. С точки зрения операционной системы этот синтетический событие неотличим от физического нажатия на трекпад. Именно поэтому Codex может управлять любым приложением: если человек может это нажать, Codex тоже может.
3. Изоляция: механика «призрачного курсора»
Пожалуй, самый амбициозный технический тезис — что Codex работает «в фоновом режиме, не перехватывая управление вашим компьютером». Любой, кто пользовался макрорекордером, знает: традиционная автоматизация полностью захватывает курсор мыши.
Чтобы обеспечить параллельное исполнение, система должна изолировать ввод ИИ от физических действий пользователя. Возможны два подхода к реализации:
| Подход | Как работает | Компромисс |
|---|---|---|
| Маршрутизация на целевое окно | macOS позволяет отправлять события конкретным Process Identifiers (PID). Codex направляет синтезированные клики напрямую в цикл событий целевого приложения, минуя глобальный аппаратный курсор. | Меньше накладных расходов; требует точного наведения на окно. |
| Виртуальные фреймбуферы | Система поднимает headless-слой виртуального рабочего стола. Codex «видит» и работает в этом невидимом пространстве, пока пользователь продолжает трудиться в основном окружении без помех. | Выше потребление памяти; более строгие гарантии изоляции. |
Подход с виртуальным фреймбуфером согласуется с механикой, замеченной, когда Anthropic выпустила собственную способность Computer Use, — это указывает, что паттерн может становиться отраслевым стандартом для десктопных ИИ-агентов.
Перспективы: мир после API
Последствия выходят далеко за рамки технической реализации. Решив конвейер «от зрения к действию» на уровне ОС, OpenAI сделал традиционные API необязательными. Мы входим в эпоху Large Action Model (LAM).
Практические следствия:
- Интеграция унаследованного ПО: Корпоративные инструменты 2008 года без API? Codex он не нужен. Он открывает приложение, навигирует по интерфейсу, копирует данные и вставляет их в современный дашборд.
- Ограничения платформ: Платформы, ограничивающие доступ разработчиков через агрессивный rate limiting API? Codex открывает веб-браузер и ведёт интерфейс напрямую — как сделал бы человек.
- Кросс-прикладные рабочие процессы: Задачи, прежде требовавшие кастомного middleware между разрозненными приложениями, теперь оркестрируются одной инструкцией на естественном языке.
Индустрия ПО десятилетиями строила мосты между приложениями. Освоив GUI macOS, Codex сделал так, что приложениям больше не нужно общаться друг с другом. ИИ пользуется ими от нашего имени.
FAQ
Как Codex «видит» экран на macOS?
Codex использует хост-приложение, которое с высокой частотой делает скриншоты рабочего стола. Затем мультимодальная модель зрения выполняет над этими кадрами семантическую сегментацию, идентифицируя элементы UI — кнопки, меню, текстовые поля — по их внешнему виду, а не по лежащему в их основе коду или тегам доступности.
Какие фреймворки macOS использует Codex для симуляции кликов и нажатий?
Скорее всего, Codex взаимодействует с Quartz Event Services и Accessibility API от Apple. Он синтезирует виртуальные CGEvents (например, mouseDown и mouseUp) и внедряет их в системную очередь событий macOS, делая этот ввод неотличимым от событий физической периферии.
Как Codex работает в фоне, не перехватывая курсор?
Вероятно, система использует либо маршрутизацию на целевое окно — отправку событий напрямую конкретным Process Identifiers (PID), — либо виртуальные фреймбуферы, создающие невидимое рабочее пространство, где ИИ действует независимо, тогда как физический курсор пользователя остаётся незатронутым.
Что такое Large Action Model (LAM) и чем она отличается от LLM?
Large Action Model расширяет возможности Large Language Model от генерации текста к исполнению реальных задач. В то время как LLM генерирует ответы, LAM воспринимает окружение через зрение, рассуждает о том, какие действия предпринять, и выполняет их через инъекцию ввода на уровне системы. Codex представляет практическую реализацию концепции LAM.
Добавить комментарий