Qwen Code Еженедельное обновление:Agent Team параллельное сотрудничество, Durable /loop переживает перезапуск, /cd сменить каталог
Qwen Code выпустил четыре официальных версии v0.18.0~v0.18.3 на этой неделе, более 100 PR слиты, охватывая четыре направления:
Много-Agent параллельное сотрудничество. Раньше /fork запускал фоновых Agents, но каждый Agent работал изолированно без коммуникации, результаты нужно было собирать вручную. М模式 Agent Team позволяет модели создавать именованные команды, spawn нескольких teammates для параллельной работы, обмена сообщениями, совместных списков задач, и лидер сводит единый отчёт. Teammates постоянные — после завершения задачи ждут следующую, не one-shot subagents исчезающие после выполнения.
Планируемые задачи переживают перезапуск. Раньше /loop задачи perishали с сеансом — тихо исчезали после перезапуска. Durable /loop persists планируемые задачи в файлы, автоматически восстанавливая при следующем запуске, с пропущенными периодическими задачами выполняющими один цикл догонки.
Смена каталога в сеансе, без перезапуска. /cd <path> меняет рабочий каталог текущего сеанса без выхода из CLI, файлы сеанса автоматически migrate в новый workspace, контекст system/directory автоматически刷新. Раньше нужно было перезапускать для смены каталогов проекта.
✨ Новые функции
Agent Team:Множество Agents параллельно сотрудничают, обмениваются сообщениями, разделяют задачи
Раньше /fork Qwen Code запускал фоновых Agents, но каждый Agent был изолирован — вы安排 три Agents параллельно review код, у них нет канала коммуникации, и вам нужно вручную собрать три результата.
На этой неделе добавлен режим Agent Team (experimental, opt-in). После включения модель может создавать именованные команды и spawn нескольких «teammates» для параллельной работы. Teammates и leader могут обмениваться сообщениями и разделять списки задач, leader最终 сводит единый отчёт. Teammates постоянные, не one-shot subagents — могут完成 одну задачу и ждать следующую,而非 исчезать после выполнения.
Отключено по умолчанию (включить через setting experimental.agentTeam или env variable QWEN_CODE_ENABLE_AGENT_TEAM=1). После включения модель получает инструменты командного сотрудничества (создать/удалить команды, отправлять сообщения teammates, создавать/обновлять/列出 разделяемые задачи), и инструмент Agent добавляет параметр name для spawn постоянных named teammates而非 disposable subagents.
Что вы можете делать:
- Три reviewer параллельно review код (один для обработки ошибок, один для race conditions, один для edge cases), получите сводный отчёт
- Координировать команду для构建 небольшого bookmark приложения
- Teammates автоматически报告 лидеру после完成, лидер даёт вам统一摘要
См. PR #4844
Durable /loop:Планируемые задачи переживают перезапуск
Раньше все /loop задачи perishали с сеансом —安排「проверить мой PR каждые 30 минут」 тихо исчезало после перезапуска Qwen Code. На этой неделе /loop задачи могут переживать перезапуски.
Когда запрос implies персистентность (「проверить мой PR каждый час」), задача сохраняется по проекту в ~/.qwen/tmp/<хеш-проекта>/scheduled_tasks.json (не в workspace, не появится в git status), и автоматически восстанавливается при следующем запуске. По умолчанию session-only, временные напоминания не записывают файлы.
Одноразовые напоминания expired во время downtime:при перезапуске модель确认 перед выполнением, никогда не执行 silently. Пропущенные периодические задачи执行 один цикл догонки после startup然后恢复正常 ритм. Когда несколько сеансов для одного проекта, только один triggers постоянные задачи; если holder crash, другой接管 в течение секунд. Периодические задачи auto-expire через 7 дней (deleted после последнего trigger).
Что вы можете делать:
- 「Проверить мой PR каждый час」→ продолжает работать после перезапуска, не нужно перенамерять
- Пропущенные периодические задачи автоматически догоняют один раз после перезапуска
- Временные напоминания
/loop 5m remind meвсё ещё perishают с сеансом, не записывают файлы
См. PR #5004
/cd:Сменить каталог без перезапуска CLI
Раньше, если вы хотели让 Agent работать из другого каталога проекта, пришлось退出 и перезапускать. Переключение между несколькими repos или parent/child workspace было неудобно, без способа перемещать active tool context внутри сеанса.
На этой неделе добавлен /cd <path> slash command. Он validates target каталог, handles trust确认, обновляет workspace roots и cwd service, мигрирует transcript/runtime/worktree файлы текущего сеанса в новый workspace сеанса каталог, и刷新 system/directory context. Path completion всё ещё работает.
Что вы можете делать:
/cd ../another-projectпереключиться на adjacent проект, файлы сеанса автоматически migrate/cd /path/to/parent-reponavigate上下 внутри сеанса, не需要 перезапускать- Not trusted paths触发确认, согласуется с trust flow при首次 запуске
См. PR #4890

Thinking сворачиваемый:Процесс推理 не доминирует экран
Раньше thinking блоки модели всегда displayed полный推理 текст, занимая massive экран空间. На этой неделе изменено на трёх-state display:
- Streaming阶段:4-line固定高度 scrolling окно показывает live推理 контент + timer (「∴ Thinking… 8s」)
- Сворачивается после完成 (default):одна строка показывает общую duration (「∴ Thought for 15s」)
- Expand для查看:dedicated shortcut key для thinking блоков будет assigned позже;目前 Ctrl+O triggers compactMode toggle,共用同一键 с thinking expand,独立 expand/collapse shortcuts будут decoupled в后续 PR
Setting thinkingDisplayMode удалён, заменён на single сворачиваемый режим. Thinking блоки только UI history, не отправляются в API, поведение session resume не изменилось.
Что вы можете делать:
- Complex推理 сворачивается в одну строку, не clutter
- Ctrl+O в任何 момент expand查看 полный推理 процесс модели
- Streaming阶段 имеет timer, показывает сколько модель思考
См. PR #4598

MCP Approval Gate:Project-level MCP config не подключается автоматически
Раньше MCP servers объявленные в project .mcp.json или workspace .qwen/settings.json подключались автоматически — открытие repo содержащего malicious .mcp.json могло запустить server до вашего review.
На этой неделе добавлен approval gate. Project .mcp.json и workspace scope MCP servers должны быть одобрены до подключения. Решения об одобрении persist в <QWEN_HOME>/mcpApprovals.json, индексируются по project root + server name, и привязаны к config hash. Изменение command/args/URL/environment/headers server меняет hash, reverting его в pending — не silently наследует старые одобрения.
Модель приоритетности MCP server:user/default settings < project .mcp.json < workspace/system settings < session (ACP/IDE) < --mcp-config. Project config может override user config но не enterprise system config.
Что вы можете делать:
- Открыть новый repo, project-level MCP servers показывают как «Pending approval», без auto-connect
qwen mcp approve <name>илиqwen mcp approve --allдля batch одобрения- Изменение server config auto-requires重新 одобрение (hash binding)
qwen mcp list查看 все server approval statuses
См. PR #4713

Background Agent Permission Bubbling:Background задачи不再自动 deny确认
Раньше background Agents需要 permission确认 для tool calls (如 git push, rm) автоматически denied с «background agents cannot prompt for confirmation», затем parent session re-ran в foreground — essentially background run был wasted, возвращаясь в foreground очередь.
На этой неделе добавлен approvalMode: bubble. Когда subagent config设置 approvalMode: bubble, background Agents encountering tool calls needing confirmation bubble запрос в parent session’s Background tasks UI. Вы можете открыть детали из footer pill для одобрения. После одобрения Agent继续执行; после denial он exits normally. bubble — subagent-only approvalMode value, не session-level опция. В headless/ACP/SDK contexts он всё ещё auto-denies (нет UI для ответа).
Что вы можете делать:
- Custom subagent объявляет
approvalMode: bubble, background задачи不再自动 deny - Footer pill показывает «⚠ needs approval», ↓ для открытия деталей和одобрения (single authorization только, нет «always allow» опции)
- После одобрения Agent继续 и返回 результаты, не нужно re-run в foreground
См. PR #4955

/compress-fast:Без LLM вызова, мгновенная компрессия контекста
Раньше /compress зависел от LLM side query для生成摘要 (~2-5 секунд, потребляя ~30K tokens). Слишком медленно для локальных model deployments или пользователей想要 просто快速 освободить空间.
На этой неделе добавлен /compress-fast, чисто rule-driven:forces microcompaction для清理 старых tool результатов и media контента (сохраняет最近 N), затем strips все thinking части из model replies. Zero API calls, zero token overhead, instant response. Writes chat_compression checkpoint в JSONL, --resume поведение идентично /compress.
Что вы можете делать:
/compress-fastнемедленно reclaim数千 tokens, без задержки без затрат- Идеально для长 сеансов после многих tool calls когда хотите快速 reclaim空间
/compressвсё ещё доступен — используйте когда нужна семантическая摘要 качество- Два последовательных
/compress-fast, второй показывает «No compression needed»
См. PR #4893

Другие новые функции
| Функция | PR | Влияние |
|---|---|---|
| Workflow P2: parallel() + pipeline() конкурентный fan-out | #4947 | Workflows могут выполнять несколько subagents конкурентно; errors-as-data контракт предотвращает краш всего batch при частичных сбоях (opt-in, QWEN_CODE_ENABLE_WORKFLOWS=1) |
| Workflow P3: schema + agentType + model + isolation | #5034 | agent({schema}) структурированный вывод, agent({agentType:'Explore'}) тип subagent, agent({isolation:'worktree'}) изоляция модификаций файлов |
| Declarative Agent frontmatter v1 | #4842 | .qwen/agents/*.md поддерживает permissionMode, maxTurns, color — три поля CC 2.1.168 alignment |
| Declarative Agent mcpServers + hooks | #4996 | Per-agent MCP servers и hooks активируются при выполнении subagents, поведение согласовано с CC |
| Поуровневая truncация вывода Tool | #4880 | Shell 30k, grep 20k, agent 32k per-tool бюджеты; oversized вывод в временные файлы |
| /rewind восстановление cross-session | #4897 | /rewind работает после resume сеанса — цепочка snapshots была in-memory |
| Plan Approval Gate | #4853 | AUTO/YOLO exiting plan mode запускает design review agent; модель новый enter_plan_mode |
| A2UI surfaces через MCP | #4961 | Web client Daemon может render интерактивные A2UI interfaces от MCP tools |
| Слияние режима Daemon | #4490 | 386 файлов, +115K LOC Daemon batch слит |
| /sessions list для истории | #5187 | Новый CLI command, qwen sessions list列出 все исторические сеансы |
| /import-config миграция Claude MCP | #5095 | One-click импорт MCP конфигов Claude Code / Claude Desktop |
| Loop/Cron включены по умолчанию | #4950 | /loop и cron доступны по умолчанию; отключить с QWEN_CODE_DISABLE_CRON=1 |
| Computer Use миграция cua-driver | #5051 | Миграция с ocu npm backend на cua-driver-rs Rust binary |
| Web shell горячая клавиша перевода строки | #5005 | Option+Enter / Cmd+Enter для перевода строки в Web shell |
| Desktop отображение git branch | #5082 | Badge workspace Desktop-приложения показывает текущий git branch |
| FileSearch AsyncFzf worker thread | #4621 | Построение индекса поиска файлов на worker thread |
| Daemon status API | #5174 | Новый endpoint статуса Daemon для qwen serve |
| Workflow P4: meta + /workflows + phase-tree | #5094 | Команда /workflows и progress phase-tree |
| Конвенция auto-skill prefix | #4839 | Auto-генерируемые skills принудительно prefix auto-skill- |
| Upgrade YAML parser Skill frontmatter | #4870 | Skill frontmatter использует полноценный YAML parser |
| Skill frontmatter user-invocable | #5037 | Skills могут объявлять entry points команд, напрямую вызываемых пользователем |
| CHANGELOG.md auto-sync | #4881 | Auto-генерация и sync CHANGELOG.md при releases |
🔧 Важные исправления
| PR | Исправление | Влияние |
|---|---|---|
| #4982 | Устранение OOM от накопления debugResponses | Debug mode больше не взрывает память |
| #4914 | Idempotent compaction + explicit GC + debug log defaults | OOM защита усилена, compaction стабильнее |
| #4929 | SSH fallback clipboard OSC 52 | Paste в SSH удалённой сессии наконец работает |
| #4852 | Cursor застревает на boundary hard-wrapped строк | Движение cursor больше не застревает на wrap boundaries |
| #4963 | Fork subagent включен по умолчанию | /fork background Agent не需要手动 включение |
| #5012 | Windows отсутствует команда printf при запуске | Пользователи Windows больше не сталкиваются с ошибкой запуска |
| #4967 | SchemaValidator coercion числовых строк MCP tool | Вызовы MCP tools self-hosted LLM больше не падают на type mismatch |
| #5111 | Bound active tool result history | Tool result history больше не растёт без ограничений |
| #5036 | Hard-stop repeated identical tool calls | Модель больше не бесконечно повторяет один и тот же tool call |
| #4793 | Coerce non-string tool params для self-hosted LLMs | Совместимость типов параметров tools self-hosted моделей |
| #4969 | Устаревшие settings keys, неверные defaults и отсутствующие команды в docs исправлены | Docs точнее |
| #5073 | QWEN.md/AGENTS.md свыше 15% context window вызывает warning | Oversized context instructions больше не silently squeeze модель context |
| #5165 | Monitor batch processing уведомлений + expired event filtering | Monitor stdout больше не triggers полный LLM roundtrip на каждую строку, потребление tokens значительно снижено |
| #5196 | /dev/tcp, /dev/udp redirection больше не misclassified как file I/O | Система разрешений больше не misclassifies network socket operations как file read/write |
| #5171 | Auto-retry transport errors до первого chunk | Streaming calls не падают напрямую при network jitter, retry один раз |
| #5155 | Fork explicit:omitting subagent_type больше не случайно становится fire-and-forget | Результаты параллельных agent calls корректно flow back к parent turn |
🎉 Контрибьюторы
Благодарим контрибьюторов этой недели:
| Контрибьютор | Вклад |
|---|---|
| @qqqys | Agent Team #4844 , Background Agent permission bubbling #4955 , A2UI over MCP #4961 , Auto mode self-modification guard #4572 , Prompt Hooks #4377 , autofix workflow #4989 |
| @LaZzyMan | Workflow P2 #4947 , Workflow P3 #5034 , Workflow P4 #5094 , Declarative Agent frontmatter #4842 , Declarative Agent mcpServers+hooks #4996 , Tool output truncation #4880 , Computer Use cua-driver #5051 , Mac code-signing #5013 |
| @callmeYe | Plan Approval Gate #4853 , Skill frontmatter YAML parser #4870 , Skill .toml commands #5017 , prompt-cache prefix #4896 |
| @tanzhenxin | Durable /loop #5004 , Loop/Cron включены по умолчанию #4950 , Skill allowedTools #4704 , Agent Team messaging harden #4988 |
| @doudouOUC | Слияние режима Daemon #4490 , /rewind cross-session #4897 , Persistence oversized Tool результатов #5042 , Daemon status API #5174 , Monitor batch processing #5165 |
| @DragonnZhang | MCP approval gate #4713 , Desktop git branch #5082 , Desktop app #3778 , VSCode ACP notification #4358 , CLI горячая клавиша перевода строки #5005 |
| @zzhenyao | Устранение OOM #4982 , Усиление OOM #4914 , Clipboard SSH #4929 , printf Windows #5012 |
| @he-yufeng | Команда /cd #4890 , Fork включен по умолчанию #4963 , Background Agent preserve launch flags #5061 , Warning oversized context #5073 |
| @chiga0 | Thinking collapse #4598 , DaemonTransport abstraction #5040 , TUI spacing #4595 |
| @BenGuanRan | /stats dedup #4995 |
| @yiliang114 | Auto-update standalone install #4629 , PR review CI #4549 , Release asset verification #3855 , Telemetry memory/CPU #4868 , Transport error auto-retry #5171 |
| @wenshao | Web shell improvements #5069 , #5109 , #5125 , #5088 , #5096 |
| @ytahdn | Web shell token/settings #5066 , Transcript events #5193 , Custom footer #5166 |
| @ZijianZhang989 | /compress-fast #4893 , /sessions list #5187 , qwen3.7-plus model list #4953 |
| @tt-a1i | /import-config Claude MCP #5095 , Desktop git branch #5082 |
| @pomelo-nwu | qwen3.7-plus multimodal #4803 , SchemaValidator coerce #4967 |
| @Jerry2003826 | Bound hard rescue retries #4526 , Bound foreground shell output #4524 |
| @warmjademe | /dev/tcp/udp permission fix #5196 |
| @huww98 | /copy argument hint #5110 |
Как обновиться:Запустите npm i @qwen-code/qwen-code@latest -g для последней версии.
Вопросы或建议 — обратная связь на GitHub Issues !