Skip to Content
BlogQwen Code Semanal: Computer Use Integrado sem Configuração, Integração Feishu, Reescrita do Motor de Compressão
Voltar ao Blog

Qwen Code Semanal: Computer Use Integrado sem Configuração, Integração Feishu, Reescrita do Motor de Compressão

Qwen Team
2026-06-04

O Qwen Code lançou v0.17.0 e v0.17.1 esta semana, com mais de 60 PRs mescladas em quatro direções:

Computer Use agora é uma capacidade integrada. Antes era necessário instalar extensões, configurar MCP, conceder permissões, reiniciar — a maioria das pessoas não conseguia completar esse fluxo. Agora, 9 ferramentas de automação de desktop estão registradas como builtins diferidos. O modelo solicita uma confirmação única na primeira invocação, e todo o resto (download do binário, orientação de permissões do macOS, ciclo de vida do servidor) é totalmente automático. Enquanto a Anthropic continua fortalecendo o Computer Use no Opus 4.8 mas o vincula ao seu próprio modelo, o Qwen Code funciona com o modelo que você escolher — você controla o custo.

Integração Feishu está ativa. O Qwen Code já suporta integração com WeChat, e esta semana o Feishu foi adicionado. Modos de conexão WebSocket e Webhook, com respostas do Agent transmitidas em tempo real via cartões interativos do Feishu, com botão de parar. Basta mencionar o bot com @ em um chat de grupo do Feishu para usar o Agent — sem necessidade de trocar de ferramenta.

Compressão de tarefas longas não perde mais contexto. O modelo antigo de compressão dividia por contagem de caracteres em 70/30. Tarefas longas de turno único (workflows típicos de computer-use) têm apenas uma mensagem do usuário, e a lógica de divisão não conseguia encontrar um ponto de corte, descartando todas as capturas de tela e o prompt original do usuário. O novo motor usa resumo completo do histórico + restauração seletiva: 9 seções de resumos estruturados preservam a continuidade narrativa, e os 5 arquivos + 3 imagens mais recentes restauram a continuidade de estado. Quando o Computer Use comprime durante a execução, o Agent não fica mais “cego”.

Usuários CJK finalmente podem respirar. A janela de candidatos IME para métodos de entrada chinês/japonês/coreano sempre pulava para o canto inferior esquerdo do terminal, a quilômetros de onde você está realmente digitando. Esta semana, ao percorrer a árvore yoga para mover o cursor físico para a posição do cursor visual, a janela de candidatos finalmente acompanha.

✨ Novas Funcionalidades

Computer Use Integrado sem Configuração: Automação de Desktop com Uma Confirmação

O Qwen Code faz do Computer Use uma capacidade integrada sem configuração. 9 ferramentas incluindo computer_use__list_apps, computer_use__get_app_state, computer_use__click estão registradas como ferramentas builtin diferidas. Quando o modelo invoca qualquer uma delas pela primeira vez, um diálogo padrão de permissão de ferramenta aparece — você clica em Approve uma vez, e tudo depois é automático — npx -y open-computer-use mcp baixa o binário upstream (~50MB), o macOS guia automaticamente as permissões de Accessibility e Screen Recording, e o ciclo de vida do servidor MCP é gerenciado automaticamente.

Habilitado por padrão (tools.computerUse.enabled: true). Desative com uma mudança de configuração se não quiser. Funciona com o modelo escolhido por você, não vinculado a nenhum provider específico.

O que você pode fazer com isso:

  • Peça ao Agent “abra o app Stocks, clique na primeira ação” — o Agent vê a captura de tela, identifica elementos da UI e clica automaticamente
  • Primeiro uso requer apenas uma confirmação, chamadas subsequentes passam diretamente
  • O modelo envia select:computer_use__list_apps,computer_use__get_app_state,computer_use__click para carregar schemas em lote, carregando múltiplas ferramentas de uma vez
  • Orientação de permissões do macOS é totalmente automática: Accessibility → Screen Recording → reconexão automática após reiniciar
  • Desative com tools.computerUse.enabled: false, ou substitua a versão do binário upstream com QWEN_COMPUTER_USE_PACKAGE

Veja PR #4590 

Canal Feishu: Use Qwen Code Diretamente no Feishu

O Qwen Code já suporta integração com WeChat, e esta semana o Feishu foi adicionado. O novo adaptador de canal Feishu (Lark) suporta modos de conexão WebSocket e Webhook. Respostas do Agent são transmitidas via cartões interativos do Feishu em tempo real, com botão de parar. Contexto citado/respondido é capturado corretamente — seja mensagem de texto ou mensagem de cartão.

Cada mensagem tem isolamento de estado independente, então múltiplos usuários não interferem entre si.

O que você pode fazer com isso:

  • Mencionar Qwen Code com @ em um chat privado ou de grupo do Feishu para fazer perguntas ou atribuir tarefas diretamente
  • Acompanhar o processo de pensamento e saída do Agent em tempo real via cartões em streaming, interromper a qualquer momento com o botão de parar
  • Citar uma mensagem para fazer uma pergunta, e o Agent pode ver o texto original citado
  • Suporta anexos de imagem e arquivo

Veja PR #4379 

Reescrita da Compressão: Tarefas Longas Não Perdem Mais Contexto

Na semana passada, projetamos a auto-compressão como uma escada de três níveis. Esta semana fomos um nível mais fundo: o motor de compressão em si foi reescrito.

O modelo antigo dividia o histórico por contagem de caracteres nos primeiros 70% (comprimidos em resumo) e os últimos 30% (preservados verbatim). O problema ocorria com tarefas longas de turno único como computer-use — o usuário diz apenas uma coisa como “abra o Safari, clique no resultado da busca, tire uma captura de tela”, então o Agent executa dezenas de rodadas de chamadas de ferramentas. A lógica de divisão requer pelo menos duas mensagens do usuário para encontrar um ponto de corte; turno único nunca consegue encontrar um, e o fallback substitui todas as capturas de tela e o prompt original do usuário por um resumo de texto. Após a recuperação, o Agent fica “cego” — sem contexto visual, sem intenção verbatim do usuário.

O novo motor usa resumo + restauração seletiva:

  • Resumo estruturado em 9 seções: a seção 6 força a citação verbatim de cada mensagem do usuário, garantindo que a intenção do usuário sobreviva à compressão
  • 5 arquivos mais recentes restaurados: adaptativo ao tamanho — arquivos pequenos incorporam conteúdo completo recém-lido do disco, arquivos grandes recebem apenas referências de caminho
  • 3 imagens mais recentes restauradas: cada imagem carrega um header de metadados (índice de turno + nome da ferramenta fonte + args), para que o modelo possa correlacionar o estado visual com a ação que o produziu

O que você pode fazer com isso:

  • Após compressão durante uma tarefa longa de Computer Use, o Agent ainda pode ver capturas de tela recentes e suas instruções originais
  • /compress adiciona uma diretiva de foco: /compress focus on the auth bug — guia o resumo para focar no que você se importa (máx. 2000 caracteres)
  • Modo Plan e estado de subagent em background se restauram automaticamente após compressão, sem perda silenciosa

Veja PR #4599 , #4688 

Modo de Aprovação Renomeado: Default → Ask Permissions

O modo de aprovação padrão era anteriormente chamado “Default” — um nome que apenas diz “este é o padrão”, não quais permissões o modo realmente concede. Outros modos (Plan, Auto-Edit, Auto, YOLO) todos descrevem diretamente o comportamento; Default era a única exceção.

Renomeado para Ask Permissions, respondendo diretamente “o Agent me perguntará neste modo?” Simultaneamente alinhado com a nomenclatura do Claude Code para o modo equivalente, reduzindo o custo cognitivo entre ferramentas.

Valor de enum interno ApprovalMode.DEFAULT, "default" no settings.json, e comando CLI /approval-mode default todos permanecem inalterados — zero migração para configurações existentes. Traduções para 9 locales atualizadas simultaneamente.

O que você pode fazer com isso:

  • O diálogo de Settings mostra Ask permissions na linha Tool Approval Mode — instantaneamente claro que este modo pedirá seu consentimento
  • O seletor /approval-mode mostra descrições de comportamento, não um “Default” sem significado
  • settings.json e comandos CLI existentes são totalmente compatíveis, sem necessidade de mudanças

Veja PR #4674 

Posicionamento do Candidato IME: Métodos de Entrada CJK Finalmente Funcionam

O Qwen Code renderiza o cursor visual com caracteres invertidos, enquanto o cursor físico é escondido e fica por padrão no canto inferior esquerdo do terminal. A janela de candidatos de métodos de entrada CJK sempre segue o cursor físico — uma tela inteira de distância de onde você está realmente digitando. Hermes e OpenClaude têm o mesmo problema; a solução deles é fazer fork do código fonte do Ink.

O Qwen Code adota uma abordagem diferente: usando addLayoutListener (disparado após o calculateLayout() do yoga, zero jitter) para percorrer a árvore yoga e obter a posição absoluta do componente de entrada, depois movendo o cursor físico para a posição do cursor visual. Usa patch-package para expor os módulos internos ink/dom e ink/components/CursorContext sem fazer fork de todo o Ink.

O que você pode fazer com isso:

  • Mude para Sogou/Apple Pinyin ou outros métodos de entrada CJK, e a janela de candidatos aparece ao lado do cursor em vez de pular para o canto inferior esquerdo
  • A janela de candidatos acompanha quando você move o cursor com teclas de seta
  • Conversas normais, entrada multilinha e rolagem do histórico não são afetadas

Veja PR #4652 

Mais Novas Funcionalidades

FuncionalidadePRImpacto
Virtual Viewport: renderização de histórico virtualizada opt-in (ui.useTerminalBuffer: true), renderiza apenas área visível, rolagem por teclado/mouse, corrige tremulação e lag em conversas longas#4146 Conversas de 1000 turnos não tremem/lagam mais, corrige diretamente #3702 #2950 #3118 #2972
Fork SubAgent Gating + Disciplina de Prompt: desabilita fork no modo não-interativo, injeta restrições “Don’t peek / Don’t race” no modo interativo#4574 Fork não dispara mais acidentalmente em CI/headless; no modo interativo o Agent não espia resultados intermediários do fork ou fabrica status de conclusão
Monitoramento de Pressão de Memória: RSS cgroup-aware + monitoramento de heap V8, limpeza automática do FileReadCache#4403 Libera cache automaticamente sob pressão de memória durante sessões longas, evitando OOM
Dump Diagnóstico Auto Pré-OOM: escreve JSON diagnóstico no disco em pressão hard/critical#4654 Dados de diagnóstico persistem após crash do processo, podem ser anexados diretamente a relatórios de bugs
Notificações de Conclusão de Shell em Background: notificações de terminal quando tarefas em background completam/falham/cancelam#4355 Não precisa mais perguntar manualmente ao Agent se as tarefas em background terminaram
Escrita Atômica Fase 2: credentials/memory/config/JSONL todos usam escrita atômica#4333 kill -9 / OOM / queda de energia não corrompe mais arquivos de credenciais ou causa grudamento de registros JSONL
CPU Profiling: /doctor cpu-profile ou QWEN_CODE_CPU_PROFILE=1 ou sinal SIGUSR1#4620 Três formas de gerar .cpuprofile, carregável diretamente no Chrome DevTools para análise
Aviso de Corrupção do Settings JSON: diálogo de aviso quando arquivo de config tem erros de sintaxe#4560 Erros de edição manual do settings.json não são mais silenciosamente engolidos
Personalização da Statusline: opções respectUserColors + hideContextIndicator#4670 Cores da barra de status e indicador de contexto ajustáveis por preferência
Modelo MiniMax-M3: configuração do modelo MiniMax-M3 adicionada#4668 Selecionar MiniMax-M3 diretamente de /model
Web Shell /delete: exclusão em lote de sessões#4603 Limpar sessões antigas em lote na Web UI
Runtime MCP add/remove: adicionar/remover servidores MCP dinamicamente em runtime#4552 Gerenciar servidores MCP sem reiniciar
Triage Skill: skill integrada de classificação de issue/PR#4577 Agent pode fazer classificação inicial de issues e PRs para você
Simplify Skill: skill integrada de simplificação de código#3570 Agent tem um workflow sistemático de simplificação de código
Agent Reproduction Workflows: workflows de reprodução de problemas do Agent#4118 Workflow padronizado de reprodução e debugging de comportamento do Agent
Shell Subprocess Context Env Vars: session/agent/prompt ID injetados em variáveis de ambiente shell#4649 Scripts personalizados podem acessar o contexto da sessão atual
AUTO Denial Observability + Caps: observabilidade e limites para negações do modo AUTO#4476 O que o modo AUTO negou e por quê — agora há dados
Web Shell Inline Terminal: interface de comando terminal inline na Web UI#4710 Ver execução de comandos diretamente na Web UI
Pacote Assinado Computer Use: usa fork @qwen-code/open-computer-use assinado + notarizado#4726 macOS Gatekeeper não bloqueia mais o binário do Computer Use
Suporte Multi-Marca Desktop#4581 App Desktop suporta builds multi-marca
Daemon Non-Blocking Prompt#4585 POST /prompt retorna imediatamente 202 + promptId, não-bloqueante

🔧 Correções Importantes

PRCorreçãoImpacto
#4644 Substituir structuredClone por cópia rasa/variante de cauda durante resume, prevenindo OOMRetomar sessões longas não causa mais overflow de memória por cópia profunda de todo o histórico
#4650 Estado do toggle /memory persiste corretamente após reabrir o diálogoSwitch /memory não perde mais configurações após reabrir
#4605 Desabilitar undici 300s bodyTimeout (caminho Node.js no-proxy)Chamadas longas ao modelo não são mais interrompidas pelo timeout de 300 segundos
#4580 Corrigir falso erro rewind “compressed turn” quando mensagens mid-turn existemRetroceder conversa não reporta mais falsamente erros em sessões comprimidas
#4505 DashScope envia corretamente enable_thinking quando raciocínio está desabilitadoUsuários DashScope não veem mais saída de raciocínio após desabilitar thinking
#4540 Expor erro de provider Anthropic stream vazioMensagem de erro clara quando provider Anthropic retorna stream vazio, não fica mais silenciosamente travado
#4474 Carregar variáveis ~/.env antes da resolução de variáveis do settingsReferências de variáveis de ambiente no settings.json finalmente resolvem corretamente variáveis definidas em ~/.env
#4431 atomicWriteFile preserva uid do arquivo, evitando corrupção de arquivo de escrita compartilhadaEscritas atômicas em cenários multi-processo não mudam mais o proprietário do arquivo
#4689 Daemon isola streams de texto de subAgents paralelosSaídas de subAgents paralelos não se entrelaçam mais em transcrições
#4701 Correção da tecla Space no diálogo de seleção de modelo ArenaTecla Space finalmente funciona ao selecionar modelos no modo Arena
#4558 Suprimir menu de completação antes da edição de texto de restauração do históricoPressionar ↑ para restaurar entrada do histórico não dispara mais imediatamente o menu de completação
#4623 Compressão disparada por captura de tela corretamente rotulada na notificação auto-compactNotificações de compressão não rotulam mais falsamente compressão disparada por captura como compressão regular
#4531 Proteger envios de histórico de resume superdimensionadosRetomar sessões ultra-longas não falha mais devido a payload superdimensionado
#4439 Corrigir contagem de tokens de uso de providers hostisContagens de tokens anormais de certos providers não exibem mais dados incorretos

🎉 Novos Contribuidores

Agradecemos aos seguintes contribuidores de primeira vez:

ContribuidorContribuição
@kagura-agent Exibir avisos de inicialização no stderr antes da renderização TUI #4461 
@yuanyuanAli Adaptador de canal Feishu (Lark) #4379 
@he-yufeng Requisições proxy IDE usam undici fetch #4607 , esconder sticky todos completados #4635 , respeitar flag list extensions #4673  e mais
@zzhenyao Diálogo de aviso de corrupção do Settings JSON #4560 , posicionamento do candidato IME #4652 , opções de personalização da Statusline #4670 
@Pepograminger Desabilitar undici 300s bodyTimeout #4605 
@InfiniteUselessness Atualizar dependência @google/genai para 2.6.0 #4485 
@ZijianZhang989 Correção da tecla Space na seleção de modelo Arena #4701 

Como atualizar: Execute npm i @qwen-code/qwen-code@latest -g para atualizar para a versão mais recente.

Se tiver dúvidas ou sugestões, sinta-se à vontade para dar feedback em GitHub Issues !

Last updated on