Qwen 3.5 Tool Calling Fixes für agentische Anwendungen: Serverstatus und clientseitige Workarounds

Tool-Aufruf-Fehler in Qwen 3.5 Agentic Setups
Bei der Ausführung von Qwen 3.5-Modellen in agentenbasierten Umgebungen wie Coding-Agenten oder Funktionsaufruf-Schleifen können vier spezifische Fehler dazu führen, dass Tool-Aufrufe vollständig fehlschlagen.
Die vier Kernfehler
- XML-Tool-Aufrufe werden als Klartext ausgegeben: Qwen 3.5 gibt Tool-Aufrufe im XML-Format aus (z.B. <function=bash><parameter=command>ls</parameter></function>). Wenn Server dies nicht parsen können – insbesondere wenn Text dem XML vorausgeht oder Thinking aktiviert ist – kommt der Tool-Aufruf als Rohtext mit finish_reason: stop an, sodass Ihr Agent ihn nie ausführt.
- <think>-Tags gelangen in Text und vergiften den Kontext: llama.cpp erzwingt thinking=1 intern, unabhängig von enable_thinking: false, wodurch sich Tags über mehrere Runden ansammeln und Multi-Turn-Sitzungen zerstören.
- Falsche finish_reason: Server senden "stop", wenn Tool-Aufrufe vorhanden sind, wodurch Agenten dies als endgültige Antwort behandeln.
- Nicht standardmäßige finish_reason: Einige Server geben "eos_token", "" oder null zurück, was dazu führt, dass die meisten Frameworks beim unbekannten Wert abstürzen, bevor sie prüfen, ob Tool-Aufrufe existieren.
Serverstatus (April 2026)
Die Quelle bietet eine detaillierte Statustabelle für wichtige Inferenzserver:
- LM Studio 0.4.9: Beste lokale Option für XML-Parsing (in v0.4.7 behoben), verbesserte Think-Leak-Behandlung, meist korrekte finish_reason.
- vLLM 0.19.0: Funktioniert mit --tool-call-parser qwen3_coder Flag, Streaming-Fehler existieren, Think-Leak behoben, meist korrekte finish_reason.
- Ollama 0.20.2: Verbessert seit der Behebung des ungeschlossenen </think>-Fehlers, immer noch unzuverlässig beim XML-Parsing, manchmal falsche finish_reason.
- llama.cpp b8664: Parser existiert, scheitert aber bei aktiviertem Thinking, Think-Leak defekt, falsche finish_reason bei Parser-Fehlern.
Empfohlene Lösungen
Verwenden Sie Unsloth GGUFs anstelle von Standard-Qwen 3.5 Jinja-Vorlagen, die bekannte Probleme mit |items-Filter bei Tool-Argumenten haben. Unsloth liefert 21 Vorlagenkorrekturen mit.
Fügen Sie ein clientseitiges Sicherheitsnetz mit drei kleinen Funktionen hinzu, die das abfangen, was Server verpassen. Die Quelle bietet die erste Funktion:
import re, json, uuid
1. Parse Qwen XML tool calls from text content
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
Diese Funktion extrahiert Tool-Aufrufe aus Textinhalten, wenn Server das XML nicht richtig parsen können, und bietet einen Fallback-Mechanismus für agentenbasierte Workflows.
📖 Read the full source: r/LocalLLaMA
👀 Siehe auch

Flusskarten: Lernen des Integrals eines Diffusionsmodells für schnellere Stichproben
Sander Dieleman erklärt Flow Maps – neuronale Netze, die direkt das Integral der ODE eines Diffusionsmodells vorhersagen und so schnellere Stichproben, belohnungsbasiertes Lernen und Steuerbarkeit ermöglichen.

Umgang mit Gateway-Trennungen für effektive Automatisierung
Erforschen Sie praktische Lösungen zur Aufrechterhaltung des Betriebs von KI-Coding-Agenten bei Gateway-Trennungen. Zu den Tipps gehören die Überwachung mit Grafana, automatisierte Wiederverbindungs-Skripte und die Nutzung redundanter Pfade für mehr Zuverlässigkeit.

Aufbau eines vollständigen BI-Systems mit Claude Code und Metabase für unter 50 USD/Monat
Ein Reddit-Nutzer hat mit Claude Code, BigQuery und selbst gehostetem Metabase ein komplettes BI-System aufgebaut – und damit 15.000-$-Angebote von Experten durch 3 Tage Arbeit und 30 $ monatliche Cloud-Kosten ersetzt.

Praktischer Rahmen für die Auswahl zwischen Claudes Haiku-, Sonnet- und Opus-Modellen
Ein Entwickler testete Claudes drei Modelle an einer 400-Zeilen-Express.js-Refactoring-Aufgabe und stellte fest, dass der entscheidende Unterschied die Tiefe der Argumentation ist, nicht die Intelligenz. Haiku 4.5 bewältigte einfache Teile, verpasste jedoch die Reihenfolge der Middleware, Sonnet 4.6 erkannte das Reihenfolgeproblem und fügte TypeScript-Typen hinzu, während Opus 4.6 eine Sicherheitslücke in der Auth-Middleware identifizierte.