LM Studioのパーサーのバグにより、Qwen3.5のツール呼び出しと推論機能が正常に動作しません

✍️ OpenClawRadar📅 公開日: March 2, 2026🔗 Source
LM Studioのパーサーのバグにより、Qwen3.5のツール呼び出しと推論機能が正常に動作しません
Ad

LM Studioのパーサー問題が推論モデルに影響

LM Studioのサーバーパーサーには、Qwen3.5やDeepSeek-R1などのモデルにおけるツール呼び出しと推論を妨げる複数のバグが含まれています。これらの問題により、実際にはパーサーに問題があるにもかかわらず、モデルが壊れているように見えることがあります。

バグの詳細

1. パーサーが<think>ブロック内でツール呼び出しパターンをスキャンする

推論モデルが<think>ブロック内でツール呼び出し構文について考えているとき、LM Studioのパーサーはその記述を実際のツール呼び出しの試みとして扱います。これにより、モデルがツール呼び出しについて推論し、パーサーが思考内のツール呼び出し形状のトークンを見つけ、解析が失敗し、エラーがモデルにフィードバックされるという再帰的なトラップが発生します。

モデルは文字通りツール呼び出しの問題をデバッグできません。なぜなら、問題を説明することが問題を再現してしまうからです。あるモデルは「ツール呼び出し構文についての私の思考が実際のツール呼出しマーカーとして解釈されるループに陥っています」と明示的に述べましたが、その文自体がパーサーをトリガーしました。

この問題は2025年2月にissue #453として最初に報告され、1年以上経った今も未解決です。

回避策: {%- set enable_thinking = false %}で推論を無効化します。これにより問題が即座に修正され、20回以上の連続したツール呼び出しが成功します。

2. 2つ目のMCPサーバーを登録すると、1つ目のツール呼び出し解析が壊れる

このバグは明確で決定論的です。temperature=0.0のlfm2-24b-a2bでのテスト結果:

  • KGサーバーのみ有効: モデルは正しくsearch_nodesを呼び出し、パーサーは<|tool_call_start|>トークンを認識し、ツールが実行され、結果が返されます。完璧に動作します。
  • webfetchサーバーを追加(呼び出さない場合でも): モデルは<|tool_call_start|>[web_search(...)]<|tool_call_end|>をチャット内の生テキストとして出力します。特殊トークンはもはや認識されず、ツールは実行されません。

2つ目のMCPサーバーを登録するだけで、パーサーが1つ目のサーバーのツール呼び出しを処理する方法が変わります。同じモデル、同じプロンプト、同じターゲットサーバーです。変更された変数は1つだけです。

回避策: 各タスクに必要なMCPサーバーのみを登録します。これはエージェントワークフローには非現実的です。

3. サーバー側のreasoning_content/content分割が、成功を報告する空の応答を生成する

これは、ツール呼び出しを使用しているかどうかに関わらず、API経由で推論モデルを使用するすべての人に影響します。/v1/chat/completions経由でQwen3.5-35b-a3bに推論に使用されるXMLタグをリストアップするよう求める単純なプロンプトを送信すると、サーバーは以下を返しました:

{
  "content": "",
  "reasoning_content": "[3099トークンの詳細な熟考]",
  "finish_reason": "stop"
}

モデルは膨大な作業(3099トークンの推論)を行いましたが、<think>内の熟考ループに捕らわれ、contentフィールドに出力を生成しませんでした。サーバーはfinish_reason: "stop"と空のcontentを返し、成功を報告しました。

これは以下を意味します:

  • finish_reason == "stop"をチェックするすべての評価ハーネスが、空の応答を静かに受け入れる
  • すべてのエージェントフレームワークが空の文字列を下流に伝播する
  • すべてのユーザーが空白の応答を見て、モデルが壊れていると結論付ける
  • 実際の推論はreasoning_contentに閉じ込められており、そのフィールドを明示的にチェックしない限り誰も見ることができない

これはサーバー側の問題であり、UIのバグではありません。生のAPI応答とLM Studioサーバーログを検査することで確認されています。reasoning_content/contentの分割は、応答がクライアントに到達する前に行われます。

Ad

バグの相互作用

これらは独立した問題ではありません。相互作用して、LM Studioにおけるツール呼び出しと推論の体系的な問題を引き起こします。

📖 全文を読む: r/LocalLLaMA

Ad

👀 See Also

リコール:Claude Code用の永続メモリMCPサーバー
Tools

リコール:Claude Code用の永続メモリMCPサーバー

Recallは、埋め込みを用いたセマンティック検索によってClaude Codeにセッションを超えた永続的なメモリを提供するオープンソースのMCPサーバーです。4つのライフサイクルフック(session-start、observe、pre-compact、session-end)を含みます。

OpenClawRadar
Claude Codeを活用したボットコンサルティング:詳細な分析
Tools

Claude Codeを活用したボットコンサルティング:詳細な分析

ボット開発におけるClaude Codeの統合を探求し、AIコンサルティンスを通じて機能性を向上させる取り組みについて、r/clawdbotの愛好家が共有した内容です。

OpenClawRadar
ヘッドレスモードでClaudeコードを使用したDIY OpenClaw代替案
Tools

ヘッドレスモードでClaudeコードを使用したDIY OpenClaw代替案

ある開発者が、タスク、スケジュール、メモのためのTelegramボットアクセス、Hammerspoon自動化、ローカルMarkdownファイルストレージを備えた、ヘッドレスモードでClaude Codeにプロンプトを送信するPythonサーバーを構築しました。

OpenClawRadar
OpenClawラッパーによる自動化の簡素化
Tools

OpenClawラッパーによる自動化の簡素化

OpenClaw Wrappersは、AIコーディングエージェントを効率的に管理する方法を提供します。具体的なコマンド例とコミュニティのフィードバックを通じて、これらのツールが既存のフレームワークにどのように簡単に統合されるかをご覧ください。

OpenClawRadar