Corrections de l'Appel d'Outils Qwen 3.5 pour un Usage Agentique : État du Serveur et Solutions Côté Client

Bogues d'appel d'outils dans les configurations agentiques de Qwen 3.5
Lors de l'exécution des modèles Qwen 3.5 dans des environnements agentiques comme les agents de codage ou les boucles d'appel de fonction, quatre bogues spécifiques peuvent provoquer l'échec complet de l'appel d'outils.
Les quatre bogues principaux
- Les appels d'outils XML fuient en texte brut : Qwen 3.5 émet les appels d'outils au format XML (par exemple, <function=bash><parameter=command>ls</parameter></function>). Lorsque les serveurs échouent à analyser cela—surtout lorsque du texte précède le XML ou que la réflexion est activée—l'appel d'outil arrive sous forme de texte brut avec finish_reason: stop, donc votre agent ne l'exécute jamais.
- Les balises <think> fuient dans le texte et empoisonnent le contexte : llama.cpp force thinking=1 en interne, quel que soit enable_thinking: false, ce qui fait que les balises s'accumulent sur plusieurs tours et détruisent les sessions multi-tours.
- Mauvaise finish_reason : Les serveurs envoient "stop" lorsque des appels d'outils sont présents, ce qui amène les agents à le traiter comme une réponse finale.
- finish_reason non standard : Certains serveurs renvoient "eos_token", "", ou null, ce qui fait planter la plupart des frameworks sur la valeur inconnue avant de vérifier si des appels d'outils existent.
État des serveurs (avril 2026)
La source fournit un tableau détaillé de l'état des principaux serveurs d'inférence :
- LM Studio 0.4.9 : Meilleure option locale pour l'analyse XML (corrigée dans la v0.4.7), gestion améliorée des fuites de réflexion, finish_reason généralement correcte.
- vLLM 0.19.0 : Fonctionne avec le drapeau --tool-call-parser qwen3_coder, des bogues de streaming existent, fuite de réflexion corrigée, finish_reason généralement correcte.
- Ollama 0.20.2 : Amélioré depuis la correction du bogue </think> non fermé, toujours instable sur l'analyse XML, parfois mauvaise finish_reason.
- llama.cpp b8664 : L'analyseur existe mais échoue avec la réflexion activée, fuite de réflexion cassée, mauvaise finish_reason lorsque l'analyseur échoue.
Solutions recommandées
Utilisez les GGUFs Unsloth au lieu des modèles Jinja standard de Qwen 3.5, qui ont des problèmes connus avec le filtre |items échouant sur les arguments d'outils. Unsloth est livré avec 21 correctifs de modèles.
Ajoutez un filet de sécurité côté client avec trois petites fonctions qui attrapent ce que les serveurs manquent. La source fournit la première fonction :
import re, json, uuid
1. Analyser les appels d'outils XML de Qwen à partir du contenu texte
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
Cette fonction extrait les appels d'outils du contenu texte lorsque les serveurs échouent à analyser correctement le XML, fournissant un mécanisme de secours pour les flux de travail agentiques.
📖 Lire la source complète : r/LocalLLaMA
👀 See Also

Leçons pratiques d'ingénierie de prompts tirées de l'utilisation de Claude Code
Un chef de projet partage des techniques spécifiques qui ont amélioré les résultats de Claude Code : l'incitation en deux phases, les prompts à objectif unique et des définitions de rôles très spécifiques.

Comment 40 révisions de prompts ont transformé les résumés de Claude AI en un produit : une étude de cas de plateforme de tutorat (19 000 $ de revenu mensuel récurrent)
Une plateforme de tutorat avec 19 000 $ de MRR a itéré 40+ fois sur leur prompt de résumé de session généré par Claude en 12 mois. Le parcours, d'une version vague à une version personnalisée, montre comment l'ingénierie des prompts transforme une fonctionnalité en produit.

Concevoir des contraintes pour la fiabilité des agents IA de qualité production
Un post Reddit détaille une approche basée sur des contraintes pour utiliser Claude dans des opérations complexes sur des bases de code, mettant l'accent sur l'énumération explicite des modes d'échec, l'exécution par phases avec des points de contrôle et des règles anti-raccourcis pour atteindre zéro build cassé lors de la suppression de 140 fichiers.

Anthropic lance une plateforme d'apprentissage gratuite et officielle pour l'IA Claude.
Anthropic a lancé une plateforme d'apprentissage gratuite avec des cours structurés couvrant les bases de Claude, l'intégration d'API, les compétences d'agent et des parcours spécialisés pour différents groupes d'utilisateurs.