Correções de Chamada de Ferramentas do Qwen 3.5 para Uso Agente: Status do Servidor e Soluções Alternativas no Lado do Cliente

✍️ OpenClawRadar📅 Publicado: April 15, 2026🔗 Source
Correções de Chamada de Ferramentas do Qwen 3.5 para Uso Agente: Status do Servidor e Soluções Alternativas no Lado do Cliente
Ad

Bugs na Chamada de Ferramentas em Configurações Agentes do Qwen 3.5

Ao executar modelos Qwen 3.5 em ambientes agentes como agentes de programação ou loops de chamada de funções, quatro bugs específicos podem fazer com que a chamada de ferramentas falhe completamente.

Os Quatro Bugs Principais

  • Chamadas de ferramentas XML vazam como texto simples: O Qwen 3.5 emite chamadas de ferramentas no formato XML (ex.: <function=bash><parameter=command>ls</parameter></function>). Quando os servidores falham em analisar isso—especialmente quando o texto precede o XML ou o pensamento está habilitado—a chamada de ferramenta chega como texto bruto com finish_reason: stop, então seu agente nunca a executa.
  • Tags <think> vazam para o texto e contaminam o contexto: O llama.cpp força thinking=1 internamente independentemente de enable_thinking: false, fazendo com que as tags se acumulem entre as rodadas e destruam sessões de múltiplas rodadas.
  • finish_reason incorreto: Os servidores enviam "stop" quando há chamadas de ferramentas, fazendo com que os agentes a tratem como uma resposta final.
  • finish_reason não padrão: Alguns servidores retornam "eos_token", "" ou null, fazendo com que a maioria das estruturas falhe no valor desconhecido antes de verificar se existem chamadas de ferramentas.
Ad

Status do Servidor (Abril de 2026)

A fonte fornece uma tabela de status detalhada para os principais servidores de inferência:

  • LM Studio 0.4.9: Melhor opção local para análise de XML (corrigido na v0.4.7), manipulação aprimorada de vazamento de pensamento, geralmente finish_reason correto.
  • vLLM 0.19.0: Funciona com a flag --tool-call-parser qwen3_coder, existem bugs de streaming, vazamento de pensamento corrigido, geralmente finish_reason correto.
  • Ollama 0.20.2: Melhorado desde a correção do bug de </think> não fechado, ainda instável na análise de XML, às vezes finish_reason incorreto.
  • llama.cpp b8664: O analisador existe, mas falha com o pensamento habilitado, vazamento de pensamento quebrado, finish_reason incorreto quando o analisador falha.

Soluções Recomendadas

Use GGUFs do Unsloth em vez dos modelos Jinja padrão do Qwen 3.5, que têm problemas conhecidos com o filtro |items falhando em argumentos de ferramentas. O Unsloth vem com 21 correções de modelo.

Adicione uma rede de segurança do lado do cliente com três pequenas funções que capturam o que os servidores perdem. A fonte fornece a primeira função:

import re, json, uuid

1. Analisar chamadas de ferramentas XML do Qwen a partir do conteúdo de texto

def parse_qwen_xml_tools(text): results = [] for m in re.finditer(r'<function=([\w.-]+)>([\s\S]?)</function>', text): args = {} for p in re.finditer(r'<parameter=([\w.-]+)>([\s\S]?)</parameter>', m.group(2)): k, v = p.group(1).strip(), p.group(2).strip() try: v = json.loads(v) except: pass args[k] = v

Esta função extrai chamadas de ferramentas do conteúdo de texto quando os servidores falham em analisar o XML corretamente, fornecendo um mecanismo de fallback para fluxos de trabalho agentes.

📖 Leia a fonte completa: r/LocalLLaMA

Ad

👀 See Also