Computer Use
В Qwen Code входит навык computer-use, который обучает модель управлению настольными приложениями через два отдельно устанавливаемых пакета:
bundled computer-use skill
-> @qwen-code/node-repl-mcp
-> @qwen-code/cua-sdk/computer-use
-> native cua-driver accessibility backendQwen Code не включает MCP-сервер, SDK или нативный драйвер. Навык устанавливает внешние пакеты автоматически, если они отсутствуют.
Computer Use может читать UI приложений и управлять вводом мыши и клавиатуры. Используйте его только в доверенных средах и внимательно проверяйте одобрения MCP.
Автоматическая настройка
Требуется Node.js 22 или новее и npm.
При первом использовании навык самостоятельно выполняет следующие команды:
qwen mcp add --scope user node-repl npx -y @qwen-code/node-repl-mcp@0.1.7
npm install --no-save --package-lock=false @qwen-code/cua-sdk@0.20.11Перезапустите Qwen Code после первого добавления MCP-сервера. Затем навык продолжает задачу рабочего стола через node_repl.
Установка SDK не изменяет package.json и lockfile, но записывает в node_modules рабочего пространства. Его postinstall загружает и проверяет нативный пакет для текущей платформы.
Удаление конфигурации MCP или установки SDK в рабочем пространстве отключает путь выполнения; устаревшего фолбэка нет.
Использование
Попросите Qwen Code использовать $computer-use для задачи рабочего стола. После бутстрапа он использует рабочий процесс приложения на macOS:
- привязывает приложение с помощью
computer.getApp(nameOrIdentifierOrPath); - считывает
app.getState()для получения компактного текста доступности, затем автоматические инкрементальные обновления; - выполняет одно или несколько действий, используя короткие идентификаторы элементов из этого текста;
- получает новейшее состояние перед принятием решения о дальнейших действиях; и
- закрывает клиент SDK и сбрасывает REPL только тогда, когда никакое другое постоянное состояние не требуется.
Драйвер — единственный компонент, который вычисляет диффы наблюдений. Код модели использует типизированные методы SDK и не диспатчит произвольные имена инструментов драйвера. Дескриптор приложения отслеживает текущее окно и диалоги, хранит идентификаторы нативных элементов внутри себя и делегирует ввод нативному драйверу. Код модели не выбирает режимы переднего/фонового плана. Неподтверждённые действия не воспроизводятся. getState() может открыть обнаруженное остановленное приложение; действия никогда его не перезапускают. Существующие API точных окон остаются доступными на Windows и Linux.
const app = await computer.getApp('Microsoft Excel');
nodeRepl.write((await app.getState()).text);
// Используйте идентификатор элемента из возвращённого состояния.
await app.click(37);
await app.typeText('hello');
nodeRepl.write((await app.getState()).text);Обновляйте состояние после открытия или закрытия диалога перед повторным использованием идентификаторов элементов. Каждое обновление состояния App захватывает текущий скриншот внутренне. Возврат по умолчанию оставляет его скрытым; запросите его явно через app.getState({ includeScreenshot: true }), когда модели нужно изображение.
Разрешения
Node REPL — это MCP-сервер, который выполняет написанный моделью JavaScript с обычными правами Node.js. Его вызовы следуют обычному потоку одобрения MCP Qwen Code. SDK также применяет нативную авторизацию.
На macOS для наблюдения доступности и ввода требуется разрешение Accessibility. Скриншоты дополнительно требуют разрешения Screen Recording. macOS может привязать выдачу разрешения к терминалу или IDE, из которых запущен Qwen Code. Windows и Linux используют свои платформенные средства доступности и ввода.
Использование компьютера перед вами из удалённой сессии
Когда Qwen Code работает на машине без графической среды (dev box, сервер), навык всё равно может управлять рабочим столом, за которым вы сидите: этот компьютер предоставляет свой собственный node_repl одной удалённой сессии. Сейчас это работает на macOS.
Настройте это один раз на вашем компьютере:
npx -y @qwen-code/node-repl-mcp@0.1.7 desktop-relay installЭто установит node_repl и SDK в ~/.qwen/desktop-relay и зарегистрирует сокет launchd на 127.0.0.1:47821. В фоне ничего не работает; launchd запускает короткоживущий процесс только при подключении.
- Из Web Shell. Удалённый демон должен запускаться с
QWEN_SERVE_CLIENT_MCP_OVER_WS=1, а Web Shell должен быть защищённой страницей (https илиhttp://localhostчерез SSH-туннель). В сессии выберите Use this computer в футере боковой панели, затем Connect this computer.
Диалог на вашем компьютере запрашивает разрешение на каждое подключение. Разрешённая сессия может выполнять код на вашем компьютере с вашими правами, видеть и управлять его экраном — так же, как локальный Computer Use — пока вы не отключите её или она не завершится. При первом подключении macOS запросит разрешение для node в Accessibility и Screen Recording.
Устранение неполадок
- Если
node_replвсё ещё недоступен после автоматической настройки, перезапустите Qwen Code и проверьте сервер командойqwen mcp list. - Если импорт SDK всё ещё не работает после автоматической настройки, убедитесь, что Qwen Code запущен из рабочего пространства, где был установлен пакет.
- После таймаута, отмены, сброса или краха ядра заново выполните бутстрап клиента SDK и запросите свежее состояние.