LM Studio 파서 버그로 인해 Qwen3.5 도구 호출 및 추론 기능이 중단됩니다

추론 모델에 영향을 미치는 LM Studio 파서 문제
LM Studio의 서버 파서에는 Qwen3.5 및 DeepSeek-R1과 같은 모델의 도구 호출 및 추론을 방해하는 여러 버그가 포함되어 있습니다. 이러한 문제는 실제로 파서에 문제가 있음에도 모델이 고장난 것처럼 보이게 할 수 있습니다.
버그 설명
1. 파서가 <think> 블록 내부에서 도구 호출 패턴을 스캔함
추론 모델이 <think> 블록 내에서 도구 호출 구문에 대해 생각할 때, LM Studio의 파서는 해당 서술적 언급을 실제 도구 호출 시도로 처리합니다. 이로 인해 모델이 도구 호출에 대해 추론하고, 파서가 생각 속에서 도구 호출 형태의 토큰을 발견하며, 파싱이 실패하고, 오류가 모델에 다시 전달되는 순환적 함정이 생성됩니다.
모델은 도구 호출 문제를 설명하는 것 자체가 문제를 재현하기 때문에 문제를 디버깅할 수 없습니다. 한 모델은 "도구 호출 구문에 대한 제 생각이 실제 도구 호출 마커로 해석되는 루프에 빠졌습니다"라고 명시적으로 말했는데, 이 문장 자체가 파서를 트리거했습니다.
이 문제는 2025년 2월에 이슈 #453으로 처음 보고되었으며, 1년 이상이 지난 지금도 해결되지 않았습니다.
임시 해결책: {%- set enable_thinking = false %}로 추론을 비활성화하세요. 이렇게 하면 문제가 즉시 해결되어 20회 이상의 연속적인 도구 호출이 성공합니다.
2. 두 번째 MCP 서버 등록 시 첫 번째 서버의 도구 호출 파싱이 중단됨
이 버그는 명확하고 결정적입니다. temperature=0.0에서 lfm2-24b-a2b로 테스트한 결과:
- KG 서버만 활성화: 모델이
search_nodes를 올바르게 호출하고, 파서가<|tool_call_start|>토큰을 인식하며, 도구가 실행되고 결과가 반환됩니다. 완벽하게 작동합니다. - webfetch 서버 추가 (호출하지 않음): 모델이 채팅에서
<|tool_call_start|>[web_search(...)]<|tool_call_end|>를 원시 텍스트로 출력합니다. 특수 토큰이 더 이상 인식되지 않습니다. 도구는 실행되지 않습니다.
두 번째 MCP 서버를 등록하는 것만으로도 — 호출하지 않더라도 — 파서가 첫 번째 서버의 도구 호출을 처리하는 방식이 변경됩니다. 동일한 모델, 동일한 프롬프트, 동일한 대상 서버입니다. 단일 변수만 변경되었습니다.
임시 해결책: 각 작업에 필요한 MCP 서버만 등록하세요. 이는 에이전트 워크플로우에는 비현실적입니다.
3. 서버 측 reasoning_content/content 분할로 인해 성공을 보고하는 빈 응답 생성
이는 도구 호출 사용 여부와 관계없이 API를 통해 추론 모델을 사용하는 모든 사람에게 영향을 미칩니다. Qwen3.5-35b-a3b에 /v1/chat/completions를 통해 추론에 사용되는 XML 태그를 나열하라는 간단한 프롬프트를 보낼 때, 서버는 다음을 반환했습니다:
{
"content": "",
"reasoning_content": "[3099 tokens of detailed deliberation]",
"finish_reason": "stop"
}
모델은 광범위한 작업 — 3099 토큰의 추론 — 을 수행했지만, <think> 내부의 심의 루프에 갇혀 content 필드에 출력을 생성하지 못했습니다. 서버는 빈 content와 함께 finish_reason: "stop"을 반환하여 성공을 보고했습니다.
이는 다음을 의미합니다:
finish_reason == "stop"을 확인하는 모든 평가 도구가 빈 응답을 자동으로 수락함- 모든 에이전트 프레임워크가 빈 문자열을 다운스트림으로 전파함
- 모든 사용자가 빈 응답을 보고 모델이 고장났다고 결론짓음
- 실제 추론은
reasoning_content에 갇혀 있음 — 해당 필드를 명시적으로 확인하지 않으면 아무도 볼 수 없는 실제 작업을 모델이 수행함
이는 서버 측 문제이며 UI 버그가 아닙니다. 원시 API 응답과 LM Studio 서버 로그를 검사하여 확인되었습니다. reasoning_content/content 분할은 응답이 클라이언트에 도달하기 전에 발생합니다.
버그 상호작용
이들은 독립적인 문제가 아닙니다. LM Studio에서 도구 호출 및 추론에 대한 체계적인 문제를 생성하기 위해 상호작용합니다.
📖 전체 소스 읽기: r/LocalLLaMA
👀 See Also
AI 에이전트를 위한 로컬 우선 마크다운 메모리 서버 조사: Mem0, Hindsight, Zep, 그리고 신규 Engram
한 사용자가 에이전트 메모리를 편집 가능한 파일로 저장하는 약 20개의 로컬 에이전트 메모리 시스템을 테스트했습니다. Engram(Obsidian68 제작)이 완전 로컬, Markdown 저장, 스마트 중복 제거, 중요도 감쇠, 독립 서버 등 모든 요구 사항을 충족한 유일한 시스템이었습니다.

WCY 형식은 LLM 토큰 오버헤드를 50-71% 감소시키고 구조적인 '모름' 표시자를 추가합니다.
WCY(Watch-Compute-Yield)는 JSON 토큰 오버헤드를 50-71% 줄이고, 추론 중 불확실성을 나타내기 위한 구조적 '?' 마커를 도입한 라인 지향 형식입니다. 이 형식은 파인튜닝이 필요 없으며, 단 세 번의 퓨샷 예시만으로 충분합니다.
앤트 그룹의 AntLing-3.0-flash, OpenRouter 통해 OpenClaw 진입 – 256K 컨텍스트, 8월 3일까지 무료
안트 그룹의 AntLing-3.0-flash가 OpenRouter를 통해 OpenClaw에서 이제 사용 가능합니다. 클라이언트 업데이트는 필요 없으며, openclaw models set openrouter/inclusionai/ling-3.0-flash로 설정하면 됩니다. 256K 컨텍스트와 장기 툴 호출에 대한 RL 학습을 지원합니다. 8월 3일까지 무료(API 전용, 가중치 제공 안 함).

DIY OpenClaw 대안: 헤드리스 모드에서 Claude 코드 사용하기
한 개발자가 헤드리스 모드의 Claude Code에 프롬프트를 전송하는 Python 서버를 구축했습니다. 이 시스템은 Telegram 봇 접근, Hammerspoon 자동화, 그리고 작업, 일정, 메모를 위한 로컬 마크다운 파일 저장 기능을 갖추고 있습니다.