Les bugs du parseur de LM Studio perturbent l'appel d'outils et le raisonnement de Qwen3.5

✍️ OpenClawRadar📅 Publié: March 2, 2026🔗 Source
Les bugs du parseur de LM Studio perturbent l'appel d'outils et le raisonnement de Qwen3.5
Ad

Problèmes de parseur LM Studio affectant les modèles de raisonnement

Le parseur serveur de LM Studio contient plusieurs bogues qui interfèrent avec les appels d'outils et le raisonnement dans des modèles comme Qwen3.5 et DeepSeek-R1. Ces problèmes peuvent faire paraître les modèles défectueux alors que le problème se situe en réalité dans le parseur.

Les bogues

1. Le parseur recherche des motifs d'appel d'outils à l'intérieur des blocs <think>

Lorsque les modèles de raisonnement réfléchissent à la syntaxe d'appel d'outils dans leurs blocs <think>, le parseur de LM Studio traite ces mentions en prose comme de véritables tentatives d'appel d'outils. Cela crée un piège récursif où le modèle raisonne sur les appels d'outils, le parseur trouve des jetons ressemblant à des appels d'outils dans la réflexion, l'analyse échoue, l'erreur est renvoyée au modèle, et le cycle se répète.

Le modèle ne peut littéralement pas déboguer un problème d'appel d'outil car décrire le problème le reproduit. Un modèle a explicitement déclaré "Je suis pris dans une boucle où mes réflexions sur la syntaxe d'appel d'outils sont interprétées comme de véritables marqueurs d'appel d'outils" — et cette phrase elle-même a déclenché le parseur.

Cela a été signalé pour la première fois dans le problème #453 en février 2025 et reste ouvert plus d'un an plus tard.

Solution de contournement : Désactivez le raisonnement avec {%- set enable_thinking = false %}. Cela résout instantanément le problème, permettant à 20+ appels d'outils consécutifs de réussir.

2. L'enregistrement d'un deuxième serveur MCP casse l'analyse des appels d'outils pour le premier

Ce bogue est clair et déterministe. Des tests avec lfm2-24b-a2b à température=0.0 montrent :

  • Seul le serveur KG actif : Le modèle appelle correctement search_nodes, le parseur reconnaît les jetons <|tool_call_start|>, l'outil s'exécute, les résultats sont renvoyés. Fonctionne parfaitement.
  • Ajoutez le serveur webfetch (sans même l'appeler) : Le modèle émet <|tool_call_start|>[web_search(...)]<|tool_call_end|> sous forme de texte brut dans le chat. Les jetons spéciaux ne sont plus reconnus. L'outil n'est jamais exécuté.

Le simple enregistrement d'un deuxième serveur MCP — sans l'appeler — modifie la façon dont le parseur gère les appels d'outils du premier serveur. Même modèle, même prompt, même serveur cible. Une seule variable modifiée.

Solution de contournement : N'enregistrez que le serveur MCP dont vous avez besoin pour chaque tâche. Ceci est peu pratique pour les workflows agentiques.

3. La séparation raisonnement_contenu/contenu côté serveur produit des réponses vides signalées comme réussies

Cela affecte tous ceux qui utilisent des modèles de raisonnement via l'API, qu'ils utilisent ou non des appels d'outils. Lors de l'envoi d'un simple prompt à Qwen3.5-35b-a3b via /v1/chat/completions lui demandant de lister les balises XML utilisées pour le raisonnement, le serveur a renvoyé :

{
  "content": "",
  "reasoning_content": "[3099 jetons de délibération détaillée]",
  "finish_reason": "stop"
}

Le modèle a effectué un travail important — 3099 jetons de raisonnement — mais s'est retrouvé pris dans une boucle de délibération à l'intérieur de <think> et n'a jamais produit de sortie dans le champ content. Le serveur a renvoyé finish_reason: "stop" avec un contenu vide, signalant un succès.

Cela signifie :

  • Toute évaluation vérifiant finish_reason == "stop" accepte silencieusement des réponses vides
  • Tout framework agentique propage des chaînes vides en aval
  • Tout utilisateur voit une réponse vide et conclut que le modèle est cassé
  • Le raisonnement réel est piégé dans reasoning_content — le modèle a effectué un travail réel que personne ne voit à moins de vérifier explicitement ce champ

Ceci est côté serveur, pas un bogue d'interface, confirmé par l'inspection de la réponse API brute et du journal serveur de LM Studio. La séparation reasoning_content/content se produit avant que la réponse n'atteigne un client.

Ad

Interaction des bogues

Il ne s'agit pas de problèmes indépendants. Ils interagissent pour créer des problèmes systémiques avec les appels d'outils et le raisonnement dans LM Studio.

📖 Lire la source complète : r/LocalLLaMA

Ad

👀 See Also

Fehu : Comptabilité en Partie Double en Ligne de Commande avec Intégration Claude AI MCP
Tools

Fehu : Comptabilité en Partie Double en Ligne de Commande avec Intégration Claude AI MCP

Fehu est un outil de comptabilité personnelle en ligne de commande léger qui se connecte à Claude AI via MCP, permettant l'enregistrement de transactions en langage naturel avec un système de comptabilité en partie double basé sur SQLite. Il propose des comptes hiérarchiques, un étiquetage automatique avec des hashtags, un moteur de calcul puissant et la prise en charge de plusieurs devises.

OpenClawRadar
FR: Crit : CLI binaire unique, priorité locale, pour examiner les plans d'agent et les diffs
Tools

FR: Crit : CLI binaire unique, priorité locale, pour examiner les plans d'agent et les diffs

Crit est un outil CLI en un seul binaire qui ouvre des fichiers ou des diffs dans un navigateur avec une interface inspirée de GitHub, permettant des boucles de rétroaction multi-tours avec des agents IA de codage — sans besoin de compte.

OpenClawRadar
Kit de Contexte : Outil Open Source pour la Configuration d'Assistants IA
Tools

Kit de Contexte : Outil Open Source pour la Configuration d'Assistants IA

Context-kit est un outil gratuit qui génère des fichiers de configuration et de la documentation sur les compétences pour les assistants de codage IA. Il prend en charge Claude Code, Cursor, Windsurf, GitHub Copilot et Gemini CLI.

OpenClawRadar
Claude-Control : Télécommande mobile pour les sessions de code Claude
Tools

Claude-Control : Télécommande mobile pour les sessions de code Claude

Claude-control est un outil open-source qui vous permet de gérer les sessions Claude Code depuis votre téléphone via HTTPS et WebSocket. Il exécute Claude Code dans un véritable PTY à l'intérieur de tmux, détecte les invites de permission et envoie des notifications push avec des boutons Autoriser/Refuser.

OpenClawRadar