Skip to Content
Руководство для пользователейВозможностиУправление компьютером

Computer Use

Computer Use работает через автономный Node REPL MCP-сервер. Его первый вызов js загружает глобальный cua и отображает документацию для текущей платформы. Computer Use и Browser Use больше не требуют встроенных навыков.

Qwen Code / любой MCP-клиент -> @qwen-code/node-repl-mcp (js, js_reset) -> @qwen-code/cua-sdk/runtime -> native Qwen CUA Driver (настольные приложения) -> @qwen-code/browser-use (расширение браузера Qwen)

Настройка

Требуется Node.js 22 или новее и npm. Зарегистрируйте MCP-сервер, затем перезапустите Qwen Code:

qwen mcp add --scope user node-repl npx -y @qwen-code/node-repl-mcp@0.26.0

Сервер устанавливает соответствующий SDK и браузерный SDK как зависимости. Нативный пакет SDK загружается для текущей платформы и проверяется по контрольным суммам SHA-256 соответствующего релиза. Он кэшируется вне npm-пакета; команда бутстрапа SDK рабочего пространства не требуется. Версия 0.26.0 является локальным целевым релизом до его публикации.

Windows по умолчанию использует обычную доставку ввода и не устанавливает UIAccess-воркер. Включение UIAccess через CUA_DRIVER_USE_UIACCESS=1 требует подписанного воркера в Program Files\Qwen\CuaDriver; устанавливайте SDK из терминала с повышенными привилегиями с установленной этой переменной. Неподписанный воркер не может включить UIAccess; не обходите проверку подписи. Старым неподписанным релизам для UIAccess требуется новый подписанный релиз драйвера, а не переустановка той же версии.

Задачи приложений

var app = await cua.getApp('Microsoft Excel'); // Используйте короткий идентификатор из автоматически отображенного состояния AX. await app.click(37); await app.typeText('hello'); await app.getAXState();

getApp отображает полный текст AX без изображения. getAXState отображает последующие диффы. getScreenshot захватывает только текущее окно; getAXStateAndScreenshot захватывает и то, и другое. Наблюдения возвращают строки и отображают себя; {emit:false} подавляет вывод. Запросите скриншот перед использованием координат {x,y}, которые являются пикселями в текущем скриншоте этого окна.

Драйвер разрешает приложения/окна, владеет текущими короткими идентификаторами и координатами, и выбирает доставку ввода. macOS использует доступность и направленные события. Windows и Linux сначала пытаются фоновую доставку и используют ввод переднего плана только после отказа, доказывающего, что ничего не было отправлено. Ввод переднего плана прекращается при обнаружении физической активности пользователя; он восстанавливает предыдущее приложение только если пользователь не переключился в другое место. Подтверждение диспетчеризации не доказывает изменение UI: наблюдайте перед повторной попыткой.

Linux поддерживает X11, включая приложения X11 под XWayland. Нативные приложения Wayland не поддерживаются. Передайте DISPLAY, XAUTHORITY и шину сеанса доступности рабочего стола серверу.

Задачи рабочего стола и браузера

Используйте явный интерфейс рабочего стола для полноэкранных задач:

await cua.desktop.getScreenshot(); await cua.desktop.click({ x: 300, y: 200 }, { key: 'shift' });

Координаты рабочего стола — это пиксели в последнем скриншоте основного дисплея. Ввод рабочего стола управляет видимым передним планом рабочего стола и может перемещать реальный указатель. Для удерживаемых клавиш всегда используйте try/finally с cua.desktop.keyDown(key) и keyUp(key). Удерживаемые клавиши принадлежат вызывающей сессии и освобождаются при корректном сбросе/завершении. При удержании клавиш используйте keyDown/keyUp для аккордов и действий указателя рабочего стола без явных модификаторов; освободите их перед вводом текста, обычными сочетаниями клавиш или вводом приложения. Резкое завершение процесса ОС не может гарантировать очистку.

var browser = await cua.getBrowser('Chrome'); // Документация браузера и вкладки отображаются при первом выборе. var tab = await cua.getTab('TAB_ID', { browser: 'Chrome' }); await tab.playwright.domSnapshot();

getBrowser, getTab и createBrowserTab возвращают существующие репозиторий browser-use SDK дескрипторы. Следуйте документации runtime выбранного браузера и подключите расширение браузера Qwen как раньше. Интеграция не добавляет API окон браузера, дифф DOM или новую поддержку Windows.

Разрешения и жизненный цикл

Сервер выполняет JavaScript с обычными разрешениями Node.js и следует потоку одобрения MCP клиента. На macOS требуется Accessibility для ввода/наблюдения AX и Screen Recording для скриншотов; Automation может быть запрошен для сохранения документов/переименования в Finder. Гранты принадлежат цепочке ответственности ОС хост-процесса. На Windows обычный установленный демон использует существующий путь UAC/задачи входа; приложения, которые он запускает, используют токен, производный от его собственного токена, с целостностью обычного пользователя. UIAccess опционален: явная установка CUA_DRIVER_USE_UIACCESS=1 требует доверенного подписанного рабочего процесса под Program Files и завершается ошибкой, если недоступен. Установка npm по умолчанию не подготавливает этот рабочий процесс и не требует его подписи.

js завершается за один вызов и по умолчанию имеет таймаут 30 секунд. Таймаут может оставить внешние эффекты; наблюдайте перед повторной попыткой. js_reset отбрасывает привязки и корректно закрывает собственную нативную/браузерную сессию. После сжатия контекста вызовите cua.rewriteDocumentation() перед продолжением.

Ретрансляция удаленного рабочего стола

Для существующей настройки ретрансляции рабочего стола macOS установите соответствующий сервер:

npx -y @qwen-code/node-repl-mcp@0.26.0 desktop-relay install

Это использует существующий локальный сокет launchd на 127.0.0.1:47821. В защищенном Web Shell выберите Use this computer, затем Connect this computer. Рабочий стол запрашивает разрешение на каждое подключение. Удаленный демон должен включить QWEN_SERVE_CLIENT_MCP_OVER_WS=1.

Прямой MCP и устранение неполадок

qwen-cua-driver mcp предоставляет те же 19 нативных операций Computer Use напрямую. Вызовы приложений используют app; вызовы с поддержкой рабочего стола используют scope:"desktop" вместо этого. key_down/key_up только для рабочего стола. Расширенные нативные инструменты остаются доступными через хост opt-in CUA_DRIVER_EXTRA_TOOLS=1.

Если сервер недоступен, проверьте qwen mcp list и перезапустите клиент после его добавления. Если захват не работает, проверьте текущую сессию рабочего стола и разрешения ОС. Если нативная загрузка не работает, проверьте точную версию релиза/контрольную сумму актива или предоставьте локально собранный соответствующий пакет через QWEN_CUA_SDK_NATIVE_DIR. Заблокированный рабочий стол не может предоставить доказательства принятия GUI.

См. MCP-серверы, Режим одобрения и Песочница.

Last updated on