Skip to Content
БлогQwen Code Еженедельник: Computer Use как встроенная функция без настройки, интеграция Feishu, переписанный движок сжатия
Назад в блог

Qwen Code Еженедельник: Computer Use как встроенная функция без настройки, интеграция Feishu, переписанный движок сжатия

Qwen Team
2026-06-04

Qwen Code выпустил v0.17.0 и v0.17.1 на этой неделе, более 60 PR объединено по четырём направлениям:

Computer Use теперь встроенная функция. Раньше нужно было устанавливать расширения, настраивать MCP, выдавать разрешения, перезапускать — большинство людей не могли пройти этот workflow до конца. Теперь 9 инструментов десктопной автоматизации зарегистрированы как отложенные встроенные. Модель запрашивает однократное подтверждение при первом вызове, а всё остальное (загрузка бинарника, проводка разрешений macOS, жизненный цикл сервера) полностью автоматическое. Пока Anthropic продолжает усиливать Computer Use в Opus 4.8, но привязывает к своей модели, Qwen Code работает с моделью по вашему выбору — вы контролируете стоимость.

Интеграция с Feishu запущена. Qwen Code уже поддерживает интеграцию с WeChat, и на этой неделе добавлен Feishu. Режимы подключения WebSocket и Webhook, ответы Agent-а транслируются в реальном времени через интерактивные карточки Feishu с кнопкой остановки. Достаточно упомянуть бота через @ в групповом чате Feishu, чтобы использовать Agent — переключение инструментов не требуется.

Сжатие длительных задач больше не теряет контекст. Старая модель сжатия делила по количеству символов на 70/30. Длительные задачи с одним ходом (типичные workflow computer-use) имеют только одно сообщение пользователя, и логика разделения не могла найти точку разреза, отбрасывая все скриншоты и оригинальный промпт пользователя. Новый движок использует полное резюме истории + выборочное восстановление: 9-секционные структурированные резюме сохраняют нарративную непрерывность, а последние 5 файлов + 3 изображения восстанавливают непрерывность состояния. Когда Computer Use сжимает во время работы, Agent больше не становится «слепым».

Пользователи CJK наконец-то могут вздохнуть. Окно кандидатов IME для китайских/японских/корейских методов ввода всегда прыгало в нижний левый угол терминала, на расстоянии целого экрана от места, где вы фактически печатаете. На этой неделе, обходя дерево yoga для перемещения физического курсора к позиции визуального курсора, окно кандидатов наконец следует за ним.

✨ Новые функции

Computer Use без настройки: десктопная автоматизация с одним подтверждением

Qwen Code делает Computer Use встроенной функцией без настройки. 9 инструментов, включая computer_use__list_apps, computer_use__get_app_state, computer_use__click, зарегистрированы как отложенные встроенные инструменты. При первом вызове любого из них моделью появляется стандартный диалог разрешения инструмента — вы нажимаете Approve один раз, и всё дальше автоматически — npx -y open-computer-use mcp загружает upstream бинарник (~50MB), macOS автоматически проводит через разрешения Accessibility и Screen Recording, жизненный цикл MCP сервера управляется автоматически.

Включено по умолчанию (tools.computerUse.enabled: true). Отключите одной настройкой, если не нужно. Работает с выбранной вами моделью, не привязан к конкретному провайдеру.

Что вы можете с этим делать:

  • Попросите Agent «открой приложение Stocks, кликни на первую акцию» — Agent видит скриншот, определяет элементы UI и кликает автоматически
  • Первое использование требует только одного подтверждения, последующие вызовы проходят напрямую
  • Модель отправляет select:computer_use__list_apps,computer_use__get_app_state,computer_use__click для пакетной загрузки схем, загружая несколько инструментов сразу
  • Проводка разрешений macOS полностью автоматическая: Accessibility → Screen Recording → автопереподключение после перезагрузки
  • Отключите через tools.computerUse.enabled: false или переопределите версию upstream бинарника через QWEN_COMPUTER_USE_PACKAGE

См. PR #4590 

Канал Feishu: используйте Qwen Code прямо в Feishu

Qwen Code уже поддерживает интеграцию с WeChat, и на этой неделе добавлен Feishu. Новый адаптер канала Feishu (Lark) поддерживает режимы подключения WebSocket и Webhook. Ответы Agent-а транслируются через интерактивные карточки Feishu в реальном времени с кнопкой остановки. Цитируемый/отвеченный контекст корректно захватывается — будь то текстовое сообщение или карточка.

Каждое сообщение имеет независимую изоляцию состояния, поэтому несколько пользователей не мешают друг другу.

Что вы можете с этим делать:

  • Упомяните Qwen Code через @ в приватном или групповом чате Feishu для вопросов или назначения задач напрямую
  • Следите за процессом мышления и вывода Agent-а в реальном времени через потоковые карточки, прерывайте в любой момент кнопкой остановки
  • Цитируйте сообщение для вопроса, и Agent увидит цитируемый оригинальный текст
  • Поддержка вложений изображений и файлов

См. PR #4379 

Переписанное сжатие: длительные задачи больше не теряют контекст

На прошлой неделе мы спроектировали авто-сжатие как трёхуровневую лестницу. На этой неделе мы пошли на уровень глубже: сам движок сжатия был переписан.

Старая модель делила историю по количеству символов на первые 70% (сжатые в резюме) и последние 30% (сохранённые дословно). Проблема возникала с длительными задачами с одним ходом, как computer-use — пользователь говорит только одну вещь, например «открой Safari, кликни на результат поиска, сделай скриншот», затем Agent выполняет десятки раундов вызовов инструментов. Логика разделения требует как минимум двух сообщений пользователя для нахождения точки разреза; один ход никогда не может найти такую, и fallback заменяет все скриншоты и оригинальный промпт пользователя текстовым резюме. После восстановления Agent становится «слепым» — нет визуального контекста, нет дословного намерения пользователя.

Новый движок использует резюме + выборочное восстановление:

  • 9-секционное структурированное резюме: секция 6 принудительно цитирует дословно каждое сообщение пользователя, гарантируя выживание намерения пользователя после сжатия
  • Восстановление последних 5 файлов: адаптивно по размеру — маленькие файлы встраивают свежепрочитанное полное содержимое с диска, большие файлы получают только ссылки на пути
  • Восстановление последних 3 изображений: каждое изображение несёт заголовок метаданных (индекс хода + имя исходного инструмента + args), модель может соотнести визуальное состояние с действием, которое его произвело

Что вы можете с этим делать:

  • После сжатия во время длительной задачи Computer Use Agent всё ещё может видеть недавние скриншоты и ваши оригинальные инструкции
  • /compress добавляет директиву фокуса: /compress focus on the auth bug — направляет резюме на то, что вас интересует (макс. 2000 символов)
  • Режим Plan и состояние фоновых subagent-ов автоматически восстанавливаются после сжатия, без тихой потери

См. PR #4599 , #4688 

Режим одобрения переименован: Default → Ask Permissions

Режим одобрения по умолчанию ранее назывался «Default» — имя, которое говорит только «это значение по умолчанию», не указывая, какие разрешения режим фактически предоставляет. Другие режимы (Plan, Auto-Edit, Auto, YOLO) все напрямую описывают поведение; Default был единственным исключением.

Переименован в Ask Permissions, напрямую отвечая на вопрос «будет ли Agent спрашивать меня в этом режиме?» Одновременно выровнено с именованием Claude Code для эквивалентного режима, снижая когнитивную нагрузку между инструментами.

Внутреннее значение enum ApprovalMode.DEFAULT, "default" в settings.json и CLI команда /approval-mode default — всё остаётся без изменений — ноль миграции для существующих конфигураций. Переводы для 9 локалей обновлены одновременно.

Что вы можете с этим делать:

  • Диалог Settings показывает Ask permissions в строке Tool Approval Mode — мгновенно понятно, что этот режим будет запрашивать ваше согласие
  • Селектор /approval-mode показывает описания поведения, а не бессмысленное «Default»
  • Существующие settings.json и CLI команды полностью совместимы, изменения не требуются

См. PR #4674 

Позиционирование кандидатов IME: методы ввода CJK наконец работают

Qwen Code рендерит визуальный курсор инвертированными символами, а физический курсор скрыт и по умолчанию находится в нижнем левом углу терминала. Окно кандидатов методов ввода CJK всегда следует за физическим курсором — на расстоянии целого экрана от места, где вы фактически печатаете. Hermes и OpenClaude имеют ту же проблему; их решение — форк исходного кода Ink.

Qwen Code использует другой подход: через addLayoutListener (срабатывает после calculateLayout() yoga, ноль дрожания) обходит дерево yoga для получения абсолютной позиции компонента ввода, затем перемещает физический курсор к позиции визуального курсора. Использует patch-package для экспорта внутренних модулей ink/dom и ink/components/CursorContext без форка всего Ink.

Что вы можете с этим делать:

  • Переключитесь на Sogou/Apple Pinyin или другие методы ввода CJK, и окно кандидатов появится рядом с курсором вместо прыжка в нижний левый угол
  • Окно кандидатов следует при перемещении курсора стрелками
  • Обычные разговоры, многострочный ввод и прокрутка истории не затронуты

См. PR #4652 

Другие новые функции

ФункцияPRВлияние
Virtual Viewport: opt-in виртуализированный рендеринг истории (ui.useTerminalBuffer: true), рендерит только видимую область, прокрутка клавиатурой/мышью, исправляет мерцание и лаги длинных разговоров#4146 Разговоры в 1000 ходов больше не мерцают/лагают/вызывают шторм прокрутки, напрямую исправляет #3702 #2950 #3118 #2972
Fork SubAgent Gating + Дисциплина промптов: отключает fork в неинтерактивном режиме, внедряет ограничения «Don’t peek / Don’t race» в интерактивном режиме#4574 Fork больше не срабатывает случайно в CI/headless; в интерактивном режиме Agent не подглядывает промежуточные результаты fork и не фабрикует статус завершения
Мониторинг давления памяти: cgroup-aware RSS + мониторинг кучи V8, автоочистка FileReadCache#4403 Автоматически освобождает кеш при давлении памяти во время длинных сессий, избегая OOM
Автодамп диагностики перед OOM: записывает диагностический JSON на диск при hard/critical давлении#4654 Диагностические данные сохраняются после краша процесса, можно напрямую прикрепить к баг-репорту
Уведомления о завершении фоновых Shell задач: уведомления терминала при завершении/неудаче/отмене фоновых задач#4355 Не нужно вручную спрашивать Agent, завершились ли фоновые задачи
Атомарная запись Фаза 2: credentials/memory/config/JSONL — всё атомарная запись#4333 kill -9 / OOM / потеря питания больше не повреждает файлы учётных данных и не вызывает склеивание записей JSONL
CPU Profiling: /doctor cpu-profile или QWEN_CODE_CPU_PROFILE=1 или сигнал SIGUSR1#4620 Три способа генерации .cpuprofile, загружается напрямую в Chrome DevTools для анализа
Предупреждение о повреждении Settings JSON: диалог предупреждения при синтаксических ошибках в файле конфигурации#4560 Ошибки ручного редактирования settings.json больше не проглатываются молча
Кастомизация Statusline: опции respectUserColors + hideContextIndicator#4670 Цвета строки состояния и индикатор контекста настраиваемы по предпочтению
Модель MiniMax-M3: добавлена конфигурация модели MiniMax-M3#4668 Выбрать MiniMax-M3 напрямую из /model
Web Shell /delete: пакетное удаление сессий#4603 Пакетная очистка старых сессий в Web UI
Runtime MCP add/remove: динамическое добавление/удаление MCP серверов в runtime#4552 Управление MCP серверами без перезапуска
Triage Skill: встроенный навык классификации issue/PR#4577 Agent может выполнить начальную классификацию issue и PR за вас
Simplify Skill: встроенный навык упрощения кода#3570 Agent имеет систематический workflow упрощения кода
Agent Reproduction Workflows: workflow воспроизведения проблем Agent-а#4118 Стандартизированный workflow воспроизведения и отладки поведения Agent-а
Shell Subprocess Context Env Vars: session/agent/prompt ID инжектированы в переменные окружения shell#4649 Пользовательские скрипты могут получить доступ к контексту текущей сессии
AUTO Denial Observability + Caps: наблюдаемость и лимиты для отказов режима AUTO#4476 Что режим AUTO отклонил и почему — теперь есть данные
Web Shell Inline Terminal: встроенный терминальный интерфейс команд в Web UI#4710 Видеть выполнение команд напрямую в Web UI
Подписанный пакет Computer Use: использует подписанный + нотаризованный форк @qwen-code/open-computer-use#4726 macOS Gatekeeper больше не блокирует бинарник Computer Use
Мультибрендовая поддержка Desktop#4581 Desktop приложение поддерживает мультибрендовые сборки
Daemon Non-Blocking Prompt#4585 POST /prompt немедленно возвращает 202 + promptId, неблокирующий

🔧 Важные исправления

PRИсправлениеВлияние
#4644 Заменить structuredClone на поверхностную копию/хвостовой вариант при resume, предотвращая OOMВозобновление длинных сессий больше не вызывает переполнение памяти из-за глубокого копирования всей истории
#4650 Состояние переключателя /memory корректно сохраняется после повторного открытия диалогаПереключатель /memory больше не теряет настройки после повторного открытия
#4605 Отключить undici 300s bodyTimeout (путь Node.js no-proxy)Длительные вызовы модели больше не прерываются 300-секундным таймаутом
#4580 Исправить ложную ошибку rewind «compressed turn» при наличии mid-turn сообщенийОткат разговора больше не выдаёт ложные ошибки в сжатых сессиях
#4505 DashScope корректно отправляет enable_thinking при отключённом рассужденииПользователи DashScope больше не видят вывод рассуждений после отключения thinking
#4540 Раскрыть ошибку пустого потока провайдера AnthropicЧёткое сообщение об ошибке, когда провайдер Anthropic возвращает пустой поток, больше не зависает молча
#4474 Загрузить переменные ~/.env перед разрешением переменных settingsСсылки на переменные окружения в settings.json наконец могут корректно разрешать переменные, определённые в ~/.env
#4431 atomicWriteFile сохраняет uid файла, избегая повреждения файлов совместной записиАтомарная запись в многопроцессных сценариях больше не меняет владельца файла
#4689 Daemon изолирует параллельные текстовые потоки subAgent-овВыходные данные параллельных subAgent-ов больше не перемешиваются в транскриптах
#4701 Исправление клавиши Space в диалоге выбора модели ArenaКлавиша Space наконец работает при выборе моделей в режиме Arena
#4558 Подавить меню автодополнения перед редактированием текста восстановления историиНажатие ↑ для восстановления ввода истории больше не вызывает немедленное появление меню автодополнения
#4623 Сжатие, вызванное скриншотом, корректно помечено в уведомлении auto-compactУведомления о сжатии больше не помечают ложно сжатие, вызванное скриншотом, как обычное сжатие
#4531 Защита от отправки слишком большой истории resumeВозобновление сверхдлинных сессий больше не завершается неудачей из-за слишком большого payload
#4439 Исправить подсчёт токенов использования враждебных провайдеровАномальные подсчёты токенов от определённых провайдеров больше не отображают некорректные данные

🎉 Новые контрибьюторы

Благодарим следующих контрибьюторов за первый вклад:

КонтрибьюторВклад
@kagura-agent Отображение предупреждений запуска на stderr перед рендерингом TUI #4461 
@yuanyuanAli Адаптер канала Feishu (Lark) #4379 
@he-yufeng Прокси-запросы IDE используют undici fetch #4607 , скрытие завершённых sticky todos #4635 , соблюдение флага list extensions #4673  и другое
@zzhenyao Диалог предупреждения о повреждении Settings JSON #4560 , позиционирование кандидатов IME #4652 , опции кастомизации Statusline #4670 
@Pepograminger Отключение undici 300s bodyTimeout #4605 
@InfiniteUselessness Обновление зависимости @google/genai до 2.6.0 #4485 
@ZijianZhang989 Исправление клавиши Space выбора модели Arena #4701 

Как обновить: Выполните npm i @qwen-code/qwen-code@latest -g для обновления до последней версии.

Если у вас есть вопросы или предложения, оставляйте обратную связь в GitHub Issues !

Last updated on