Correcciones de Qwen 3.5 en la Llamada de Herramientas para Uso Agéntico: Estado del Servidor y Soluciones en el Lado del Cliente

Errores en la Llamada a Herramientas en Configuraciones Agenticas de Qwen 3.5
Al ejecutar modelos Qwen 3.5 en entornos agenticos como agentes de programación o bucles de llamada a funciones, cuatro errores específicos pueden hacer que la llamada a herramientas falle por completo.
Los Cuatro Errores Principales
- Las llamadas a herramientas XML se filtran como texto plano: Qwen 3.5 emite llamadas a herramientas en formato XML (por ejemplo, <function=bash><parameter=command>ls</parameter></function>). Cuando los servidores no logran analizar esto—especialmente cuando hay texto antes del XML o el pensamiento está habilitado—la llamada a herramientas llega como texto crudo con finish_reason: stop, por lo que tu agente nunca la ejecuta.
- Las etiquetas <think> se filtran al texto y envenenan el contexto: llama.cpp fuerza thinking=1 internamente independientemente de enable_thinking: false, haciendo que las etiquetas se acumulen a lo largo de los turnos y destruyan las sesiones multiturno.
- finish_reason incorrecto: Los servidores envían "stop" cuando hay llamadas a herramientas presentes, haciendo que los agentes lo traten como una respuesta final.
- finish_reason no estándar: Algunos servidores devuelven "eos_token", "", o null, causando que la mayoría de los marcos de trabajo fallen en el valor desconocido antes de verificar si existen llamadas a herramientas.
Estado del Servidor (Abril 2026)
La fuente proporciona una tabla de estado detallada para los principales servidores de inferencia:
- LM Studio 0.4.9: Mejor opción local para el análisis XML (corregido en v0.4.7), manejo mejorado de la fuga de pensamiento, generalmente finish_reason correcto.
- vLLM 0.19.0: Funciona con el indicador --tool-call-parser qwen3_coder, existen errores de transmisión, fuga de pensamiento corregida, generalmente finish_reason correcto.
- Ollama 0.20.2: Mejorado desde la corrección del error de etiqueta </think> no cerrada, todavía inestable en el análisis XML, a veces finish_reason incorrecto.
- llama.cpp b8664: Existe un analizador pero falla con el pensamiento habilitado, fuga de pensamiento rota, finish_reason incorrecto cuando el analizador falla.
Soluciones Recomendadas
Usa GGUFs de Unsloth en lugar de las plantillas Jinja estándar de Qwen 3.5, que tienen problemas conocidos con el filtro |items fallando en los argumentos de las herramientas. Unsloth incluye 21 correcciones de plantillas.
Añade una red de seguridad del lado del cliente con tres pequeñas funciones que capturen lo que los servidores pasan por alto. La fuente proporciona la primera función:
import re, json, uuid
1. Analizar llamadas a herramientas XML de Qwen desde el contenido 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 función extrae llamadas a herramientas del contenido de texto cuando los servidores no logran analizar el XML correctamente, proporcionando un mecanismo de respaldo para flujos de trabajo agenticos.
📖 Leer la fuente completa: r/LocalLLaMA
👀 Ver también

Soluciones prácticas para problemas de confiabilidad de OpenClaw
Un desarrollador comparte ocho técnicas específicas que mejoraron su configuración de OpenClaw, incluyendo un sistema de memoria de 3 niveles con registros diarios y un grafo de conocimiento, gestión de puntuaciones de activación y aplicación de reglas basadas en archivos.

Los modelos Qwen3.x fallan silenciosamente en OpenClaw debido a una incompatibilidad en el formato de salida en flujo continuo.
Los modelos Qwen3.x en modo de transmisión envían su salida al campo 'reasoning' en lugar de 'content', lo que hace que OpenClaw pase silenciosamente a los modelos de respaldo. Un proxy que traduce los formatos de API e inyecta 'think: false' soluciona el problema, permitiendo la evaluación completa de llamadas a herramientas.

Guía: Implementación de OpenClaw con llama.cpp en la Mini PC GEEKOM IT15
Un recorrido técnico detalla cómo cambiar OpenClaw de Ollama a llama.cpp para ejecutar un modelo local Qwen3-8B con aceleración de GPU Intel Arc, cubriendo cambios de configuración, gestión manual del servidor y solución de problemas comunes.

Deja de preguntar qué modelo de IA usar: enruta tareas a los niveles Haiku, Soneto y Opus
Utiliza al menos tres modelos por tipo de tarea: nivel Haiku para leer/resumir, nivel Sonnet para escribir código, y nivel Opus solo para refactorizaciones de múltiples archivos y depuración. La configuración de un usuario envía el 40% a modelos baratos, 35% a intermedios, 25% a avanzados, con un costo de ~$30-40 al mes.