Skip to Content
БлогОбновления07-16 Обновление продукта

Qwen Code: /learn превращает знания в Skill, масштабное обновление Code Review, полная переработка Web Shell

Qwen Team
2026-07-16

На этой неделе Qwen Code выпустил 3 стабильные версии v0.19.9, v0.19.10 и v0.19.11, принято более 160 PR.

Команда /learn. Пользователь создаёт skill вручную — указывает источник знаний (каталог, URL, диалог, текст), Qwen Code автоматически формирует SKILL.md для повторного использования.

Code Review вышел на новый уровень качества. Suggestion публикуется как inline-комментарий в PR, добавлены проверка корректности программы, предиктивная валидация, Step 4 verifier и Step 5 reverse-audit.

Масштабная переработка Web Shell. Библиотека shadcn в основе UI, панель ревью Artifact, страница управления extension, масштабирование и перетаскивание Mermaid-диаграмм. Полная поддержка мульти-workspace, split pane с цветовой маркировкой по workspace.

Voice Bridge: голосовой ввод через ACP. Даже текстовая основная модель обрабатывает голосовые prompt — аудио сначала транскрибируется в текст, модели с поддержкой аудио получают оригинальный поток без преобразования.

Сканированные PDF больше не блокируют Agent. При превышении лимита извлечения текста страницы автоматически рендерятся в изображения, визуальная модель анализирует картинку.

CLI-рабочие процессы дополнены. /update для обновления в один клик, Ctrl+O для заморозки диалога, Ctrl+S для временного сохранения prompt, Explore наследует основную модель, Alt+T разворачивает полный ход рассуждений.

✨ Новые возможности

/learn: превращение знаний в переиспользуемый Skill

/learn — новая slash-команда для создания переиспользуемых skill из источников знаний. Источником может быть локальный каталог, URL, история диалога или произвольный текст. Основная модель собирает знания и автоматически формирует SKILL.md, сохраняя его в .qwen/skills/learned-skill-<name>/ с меткой source: learned — отдельно от skill, написанных вручную или сгенерированных автоматически.

Что это даёт:

  • /learn Deploy process: ... — оформление процесса деплоя в skill для повторного использования
  • Указание каталога документации позволяет Qwen Code изучить стандарты разработки проекта и следовать им в дальнейшем
  • Извлечение знаний из диалога и сохранение их в виде переиспользуемого шаблона команд

Подробнее в PR #6440 

Масштабное обновление контроля качества Code Review

На этой неделе Code Review усилен по нескольким направлениям — от inline-комментариев до верификации качества самого review.

/review теперь публикует находки типа Suggestion напрямую как inline-комментарии в PR — больше не нужно вручную копировать рекомендации из вывода review и вставлять их в PR. В сам review добавлены проверки процедурной корректности (procedural correctness finders), настраиваемый уровень effort, а перед публикацией guardrail-валидация подтверждает обоснованность каждой находки.

Review больших diff больше не распределяется оптом — каждая строка diff закреплена за конкретным reviewer, что обеспечивает полное покрытие. Review chunk agent получает полностью сформированный prompt, запуски с пустым контекстом исключены. PR triage-комментарии дополнены оценкой уверенности, диаграммами последовательности, обзором файлов и review footer — reviewer получает более богатый контекст. Таймаут автоматического review по умолчанию увеличен до 180 минут с возможностью override до 240 минут, большие PR больше не прерываются по таймауту.

Что это даёт:

  • /review автоматически публикует inline suggestion в PR, избавляя от ручной вставки комментариев
  • Настраиваемый уровень effort адаптируется к объёму review
  • Оценка уверенности PR triage помогает определить, какие PR требуют повышенного внимания

В v0.19.11 добавлены Step 4 verifier и Step 5 reverse-audit — процесс review превратился из «найти проблему → опубликовать комментарий» в полный цикл «найти проблему → подтвердить обоснованность находки → провести обратный аудит на предмет пропусков». Список findings свёрнут в prompt верификации и обратного аудита, что уменьшает объём prompt. Область build/test агента 7 также сужена до workspace, реально затронутых diff, большие репозитории больше не собираются целиком.

Подробнее в PR #6593 , #6711 , #6612 , #6789 , #6771 , #6840 , #6942 , #6965 , #6892 , #6955 

Полная переработка UI Web Shell

На этой неделе более 15 PR по Web Shell — от базовой UI-библиотеки до боковой панели, страницы настроек и переключателя моделей.

В основу UI заложена библиотека shadcn, унифицированы дизайн-токены и стандарты компонентов. Боковая панель мульти-workspace переработана, компоновка стала нагляднее. Страница настроек переведена на современные компоненты, пользовательские настройки редактируются прямо в панели, управление моделями интегрировано в настройки. Переключатель моделей обновлён — метаданные моделей отображаются чётче, переключение стало быстрее. Подробнее в PR #6760 , #6804 , #6817 , #6758 

Полная поддержка мульти-workspace. Эндпоинты Daemon ACP поддерживают область действия workspace, channel worker привязываются по workspace, split view поддерживает сессии между workspace и метки workspace. Динамически добавленные workspace сохраняются — после перезапуска daemon повторная настройка не требуется. Workspace можно удалять на лету, без перезапуска сервера. Подробнее в PR #6621 , #6635 , #6746 , #6716 , #6745 

Добавлена правая панель ревью Artifact — отредактированные файлы отображаются в виде карточек turn с подсчётом строк и разворачиваемым diff по каждому файлу. Правая панель поддерживает список/дерево файлов и перетаскивание для изменения ширины. Artifact и запланированные задачи также имеют собственные карточки turn output, HTML artifact рендерятся в sandbox iframe. Подробнее в PR #6591 

В v0.19.11 добавлена страница управления extension — просмотр и управление установленными extension прямо в Web Shell. Mermaid-диаграммы поддерживают масштабирование, панорамирование и перетаскивание — блок-схемы и диаграммы последовательности больше не статичны. Split pane позволяет развернуть отдельную панель на весь экран, каждая панель окрашена по workspace. Элементы Composer переведены в формат popover, список сессий отображает сессии, ожидающие действий пользователя. Подробнее в PR #6815 , #6881 , #6951 , #6971 , #6877 , #6956 

Дополнительные улучшения: двойной клик по ячейке Markdown-таблицы открывает всплывающее окно с полным содержимым для удобного копирования; панель инструментов поля ввода отображает текущую ветку Git; группы сессий поддерживают произвольные HEX-цвета; запланированные задачи собираются из всех workspace в единый обзор; Composer поддерживает произвольный текст-заполнитель; пути workspace заблокированы. Подробнее в PR #6530 , #6725 , #6752 , #6759 , #6765 , #6853 

Voice Bridge: голосовой ввод через ACP

Ранее при отправке голосового prompt через ACP (Agent Communication Protocol), если основная модель была текстовой, аудио не обрабатывалось. Теперь добавлен voice bridge — аудио сначала транскрибируется настроенной voice model в текст, затем передаётся основной модели. Если основная модель сама поддерживает аудиовход, оригинальное аудио передаётся напрямую, без транскрипции. При недоступности или сбое транскрипции основная модель получает безопасное сообщение «аудио недоступно», сырое аудио не передаётся.

Что это даёт:

  • Отправка голосовых команд через ACP-клиент — текстовые модели тоже понимают голос
  • Основные модели с поддержкой аудио (мультимодальные) получают оригинальный аудиопоток без потери информации
  • Безопасная деградация при сбое транскрипции — проблемы с аудио не прерывают диалог

Подробнее в PR #6576 

Автоконвертация PDF в изображения: сканированные документы больше не блокируют Agent

Ранее при работе со сканированными или насыщёнными текстом PDF извлечение текста превышало бюджет в 12000 token и вызывало зацикливание FILE_TOO_LARGE — Agent повторял попытки с меньшим диапазоном страниц, каждый раз превышая лимит, контекст переполнялся до сбоя сессии. Теперь добавлен fallback с рендерингом страниц в изображения: при превышении лимита или сбое извлечения текста страницы автоматически рендерятся через pdftoppm в JPEG и передаются визуальной модели. Стоимость в token на страницу фиксирована и не зависит от плотности текста. Извлечение текста остаётся основным путём (grep, точное цитирование), рендеринг включается только при превышении лимита или сбое. Для текстовых основных моделей с подключённой визуальной моделью сканированные документы, прикреплённые через @, рендерятся в небольшом количестве страниц и передаются vision bridge для транскрипции.

Что это даёт:

  • Сканированные PDF больше не вызывают FILE_TOO_LARGE, визуальная модель анализирует изображения
  • Насыщённые PDF (превышающие бюджет token) автоматически деградируют до изображений, контекст не переполняется
  • Текстовые PDF по-прежнему обрабатываются через извлечение текста, точность не теряется

Подробнее в PR #6585 

Обновление CLI-процессов: обновление в один клик, диалог не теряется

Раньше для обновления Qwen Code нужно было помнить способ установки — npm install для npm, повторная загрузка установщика для standalone. На этой неделе добавлены команда qwen update и slash-команда /update, автоматически определяющие тип установки. Standalone-установка загружает последнюю версию из npm registry с проверкой SHA256 + верификацией подписи Ed25519 (опционально) + smoke test (новый двоичный файл должен пройти --version) + атомарная замена, автоматический откат при сбое. Для npm-установки отображается соответствующая команда npm install -g. Поддержка i18n для 9 языков. Подробнее в PR #5780 

Ctrl+O — заморозка представления transcript — нажатие открывает альтернативный экран с полной записью диалога, все выводы инструментов развёрнуты, доступна прокрутка. Esc/q/Ctrl+C/Ctrl+O для возврата. Одновременно переработан рендеринг выводов инструментов: результаты read/search/list свёрнуты в однострочные сводки, mutating-инструменты остаются развёрнутыми. Настройка compactMode молча игнорируется. Подробнее в PR #5666 

Ctrl+O — временное сохранение prompt — при нажатии Ctrl+S с содержимым в поле ввода prompt сохраняется в файл временного хранения на уровне проекта, при следующем запуске из того же проекта автоматически восстанавливается. После отправки временный файл удаляется. Заполнители больших вставок разворачиваются перед сохранением, восстанавливается оригинальное содержимое. Разные проекты не мешают друг другу. Подробнее в PR #6709 

Настраиваемый таймаут shell-команд. Добавлена настройка tools.shell.defaultTimeoutMs для изменения таймаута по умолчанию на уровне проекта или сессии, без необходимости каждый раз указывать таймаут в параметрах команды. Значение по умолчанию — 120 секунд, 0 отключает таймаут. Подробнее в PR #6628 

Explore subagent теперь наследует основную модель. Встроенный Explore subagent больше не выбирает fastModel автоматически, а наследует модель основной сессии. Если основная модель — Claude Opus, Explore тоже использует Claude Opus, без потери качества рассуждений. Для возврата к быстрой модели установите agents.builtin.exploreModel в fast или конкретный ID модели. Подробнее в PR #6807 

Alt+T разворачивает полный ход рассуждений. При потоковом выводе нажатие Alt+T разворачивает thinking block — теперь виден полный поток рассуждений в реальном времени, а не захардкоженные 4 строки хвоста. Отслеживание цепочки рассуждений модели наконец-то полноценное. Длинные рассуждения ограничены высотой области просмотра, бесконечного разворачивания нет. Подробнее в PR #6678 

📊 Другие новые возможности

ФункцияPRЧто это даёт
Автовосстановление Channel daemon: DingTalk/Feishu channel worker автоматически переподключаются#6680 После перезапуска daemon каналы не отключаются
Сохранение Markdown-таблиц DingTalk: структура таблиц не разрушается при отправке#6673 DingTalk-канал больше не получает разбитый текст
DingTalk @ отправитель: опциональное упоминание отправителя в группе#6679 Ответы в DingTalk-канале могут упоминать задавшего вопрос
DingTalk webhook в личные сообщения: webhook поддерживает отправку в DM#6891 Уведомления DingTalk можно отправлять лично, а не в группу
Структурированное управление памятью Channel#6860 Более структурированное управление памятью диалогов каналов
Интерактивные вопросы SDK: ask_user_question возвращает ответы модели#6655 SDK-интеграция поддерживает интерактивные диалоги
Методы управления SDK: запросы effort, models, usage, context#6492 Более точное управление моделями и мониторинг использования через SDK
Жизненный цикл ACP tool-call#6819 SDK отслеживает фазы подготовки вызовов инструментов
Улучшенная наблюдаемость субагентов: полные команды, путь transcript, контекст одобрения#6580 Лучшая видимость действий субагентов
Временная шкала субагентов: хронологическое отображение + параллельные timeline#6772 Удобнее отслеживать прогресс при параллельных задачах
Метаданные источника Daemon session: неизменяемые метки источника#6932 Сессии daemon можно отследить до источника создания
Глубокая агрегация здоровья Daemon: проверка здоровья между workspace#6961 Мониторинг состояния daemon охватывает все workspace
Управление MCP workspace: управление MCP в режиме serve#6954 MCP server управляются по workspace в мульти-workspace среде
Экспорт архивных сессий: /export для экспорта архивных сессий#6911 История сессий доступна для экспорта и резервного копирования
Heartbeat shell-команд#6876 Долгие молчащие команды больше не считаются истёкшими
Удлинение условий /goal: более длинные описания целей#6665 Сложные цели не нужно сокращать
Встроенный провайдер xAI Grok: настройка моделей xAI через мастер /auth#6805 Grok работает без ручной настройки провайдера
Ссылочные метки запланированных задач: вставка ссылок на extension/skill/MCP в prompt#6589 Prompt запланированных задач может напрямую ссылаться на skill и MCP
Хук MessageDisplay: обратный вызов во время потокового вывода#6489 Плагины отслеживают содержимое текста в процессе ответа
Обработка групповых сообщений QQ Bot#6457 Поддержка групповых сообщений QQ-канала

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

ИсправлениеPRЧто это даёт
Channel больше не отправляет промежуточный вывод субагентов#6696 DingTalk/Feishu больше не получают черновые ответы
Обновление токенов входящих медиа DingTalk#6903 Сообщения с изображениями/файлами в DingTalk не ломаются из-за истёкших токенов
WeCom requireMention больше не блокирует групповые чаты#6948 Групповые чаты WeCom работают нормально
Проверка учётных данных Feishu#6780 Недействительные учётные данные не проходят молча
Кнопка Approve в /mcp#6518 Pending/rejected MCP server можно одобрить напрямую
Сохранение MCP URL query#6587 Удалённые MCP-подключения не ломаются из-за обрезания URL
Автовосстановление MCP OAuth 401#6732 Автоматический повтор при истечении OAuth, ручное переподключение не нужно
MCP OAuth HTTP handshake сохраняет challenge#7022 MCP OAuth-подключения не ломаются из-за потери challenge
Автоодобрение MCP read-only требует trust#6924 Ненадёжные MCP server не получают молчаливого автоодобрения
VS Code: позиция курсора =0 не перезаписывается#2971 Курсор в начале строки не прыгает в конец
VS Code ACP процесс в режиме Electron Node#6866 ACP-процесс в расширении VS Code не падает из-за версии Node
Автовысота Web Shell composer#6872 Длинные prompt не обрезаются фиксированной высотой
Сохранение состояния свёрнутых групп Web Shell#6878 После обновления страницы группы сессий не разворачиваются
YOLO mode не отключается plan mode молча#6630 Plan mode не выключает YOLO без уведомления
Локализация меток Approval mode UI#6592 Переключение режимов по Shift+Tab без английских меток
Таймаут Shell классифицируется как ошибка инструмента#6864 Таймаут shell не считается ошибкой модели
Приоритет пользовательских команд ACP#6607 В режиме Agent ваши команды не оттесняются содержимым вложений
Исправление шаблонных заполнителей субагентов#6672 Числовые шаблоны вроде ${0} не парсятся ошибочно
Ограничение token Claude Opus 4.6-4.8#6718 Compaction не срабатывает преждевременно
Обработка подписи thinking через прокси Claude#6893 Claude через прокси не выдаёт ошибок неподписанного thinking
Сохранение managed memory при сжатии#6714 Microcompaction не теряет записи памяти
Результаты Skill участвуют в microcompaction#6788 Результаты skill не теряются при сжатии
Восстановление при недействительном потоке модели#6712 Недействительный поток модели не вызывает сбой
Автооткат при сбое продолжения max-token#6921 Сбой продолжения не оставляет незавершённое состояние
Кэш trusted-folders не загрязняется#6900 Проверка доверия предпросмотра не влияет на последующие решения
Оптимизация запуска: ленивая загрузка tree-sitter#6747 Более быстрый запуск
Сокращение процессов Git snapshot#6784 Лучшая производительность во время сессии
Защита от OOM в длинных сессиях#6682 Длинные сессии не вызывают OOM при выходе
Унифицированное восстановление сессий#6731 Более надёжное восстановление после прерываний и деградаций

👥 Участники

УчастникВкладСсылки на PR
@wenshao Масштабное обновление Code Review (inline-комментарии, verifier/reverse-audit, оценка triage), улучшения Web Shell (split view, масштабирование Mermaid, цветовая маркировка workspace, визуальный предпросмотр)#6593 , #6942 , #6965 , #6971 , #6881 
@doudouOUC Полная цепочка мульти-workspace (эндпоинты ACP, группировка channel worker, персистентность workspace), автоконвертация PDF в изображения, список сессий, transcript reader#6621 , #6635 , #6585 , #6716 , #6741 
@yiliang114 Исправление цикла субагентов, исправление shell self-kill, улучшения CI, ограничение token Claude, сохранение managed memory, отказоустойчивость потока#6543 , #6544 , #6682 , #6714 , #6718 
@qqqys Комплексные улучшения Channel (восстановление daemon, исправление DingTalk Stream, сохранение markdown-таблиц, диагностика channel payload), исправление жизненного цикла goal#6680 , #6715 , #6673 , #6617 , #6620 
@chinesepowered Исправление курсора VS Code, оптимизация mobile-mcp, нормализация координат cua-driver, исправление LRU cache, определение языка dotfiles#2971 , #6624 , #6785 , #6787 
@ytahdn Улучшения Web Shell (shadcn, боковая панель, страница настроек, страница управления extension, блокировка путей workspace, split view)#6760 , #6804 , #6815 , #6853 , #6956 
@dreamWB Web Shell (нижняя панель состояния, assistant turn footer, context mention, настраиваемая боковая панель, переключатель моделей, цвета session group)#6613 , #6611 , #6578 , #6750 , #6758 
@callmeYe Выравнивание диалогов памяти, подробности ошибок daemon memory tasks, обновление remember, путь установки skill, API skill workspace#6434 , #6431 , #6497 , #6811 , #6816 
@chiga0 Заморозка transcript по Ctrl+O, VP mode inline thought expand, персистентность session artifact#5666 , #6079 , #6557 
@jifeng Улучшение читаемости Markdown-таблиц, двойной клик по ячейке для просмотра полного содержимого#6626 , #6530 , #6838 
@TianYuan1024 Интерактивные вопросы SDK с возвратом ответов, улучшенная наблюдаемость субагентов, провайдер xAI Grok#6655 , #6580 , #6805 
@tanzhenxin Поддержка NO_PROXY для запросов модели, max_tokens context window clamp, Explore subagent наследует основную модель#6640 , #6556 , #6807 
@LaZzyMan Команда /learn, нормализация координат mobile-mcp, кнопка Approve в /mcp#6440 , #6610 , #6518 
@Nas01010101 Настраиваемый таймаут shell-команд, исправление cron step, документация tools.disabled, исправление YOLO plan mode#6628 , #6627 , #6641 , #6630 
@zjunothing Настраиваемый таймаут memory agent, повторные попытки vision bridge, исправление изображений буфера обмена в десктопной версии#6459 , #6541 , #6708 
@huww98 Alt+T разворачивает полный поток рассуждений#6678 
@yuanyuanAli Web Shell AskUserQuestion свёртывание/развёртывание, mobile welcome composer slots#6588 , #6584 
@Alex-ai-future Приоритетное сопоставление CLI-команд, улучшенные ответы об ошибках plan mode#6504 , #6667 , #6764 
@Eric-GoodBoy-Tech Обработка групповых сообщений QQ Bot#6457 
@DragonnZhang Документация model-provider, удлинение условий /goal, обрезка release notes для desktop CI#6552 , #6665 , #6792 
@dexhunter Быстрый путь ASCII-токенов, ленивая загрузка tree-sitter, оптимизация запуска#6551 , #6747 
@han-dreamer Локализация Approval mode UI, Git branch chip, обновление remember#6592 , #6725 , #6497 
@samuelhsin Произвольные HEX-цвета групп сессий#6752 
@water-in-stone Унифицированное восстановление сессий#6731 
@BZ-D Ссылочные метки prompt запланированных задач#6589 
@VectorPeak Сохранение MCP URL query, исправление ACP readTextFile#6587 , #6704 
@BenGuanRan Проверка учётных данных Feishu, отправка DingTalk webhook в DM, исправление WeCom requireMention#6780 , #6891 , #6948 
🆕 @liziwl 🎉 Первый вклад: команды qwen update и /update для обновления в один клик#5780 
🆕 @C0d3N1nja97342 🎉 Первый вклад: исправление очистки tempDir extension на Windows#6545 
🆕 @cxruan 🎉 Первый вклад: настраиваемый z-index backdrop диалога Web Shell#6572 
🆕 @harbin1053020115 🎉 Первый вклад: инфраструктура Web Shell harness#6517 
🆕 @juhuan 🎉 Первый вклад: методы управления SDK и опции transport#6492 , #6491 
🆕 @ksws00684315 🎉 Первый вклад: исправление шаблонных заполнителей субагентов#6672 
🆕 @kaymeer 🎉 Первый вклад: исправление приоритета пользовательских команд ACP#6607 
🆕 @destire-mio 🎉 Первый вклад: временное сохранение prompt по Ctrl+S на уровне проекта#6709 
🆕 @yanchenko 🎉 Первый вклад: потоковый хук MessageDisplay#6489 
🆕 @ever-o 🎉 Первый вклад: рендеринг ссылочных меток пользовательских сообщений в Web Shell#6537 
🆕 @ran411285752 🎉 Первый вклад: жизненный цикл ACP tool-call#6819 
🆕 @morluto 🎉 Первый вклад: сохранение отображения деформированных результатов инструментов, валидация конфигурации сессии, откат продолжения#6925 , #6920 , #6921 
🆕 @AriaZhao-coder 🎉 Первый вклад: кэш trusted-folders не загрязняется проверкой предпросмотра#6900 
🆕 @xurik 🎉 Первый вклад: исправление гонки настроек ACP#6292 
🆕 @VladOsipov 🎉 Первый вклад: исправление переноса строк в описании skill#6562 

Обновление: выполните npm i @qwen-code/qwen-code@latest -g для обновления до последней версии. Также можно использовать команду /update прямо в Qwen Code для обновления в один клик.

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

Last updated on