快速结论:该报错是 llama-server 在使用 Muse Glimmer 模型进行工具调用(tool calls)时,模型偶尔生成不符合 peg-native 格式的输出导致的解析失败,约每 5 次工具调用出现 1 次,属于间歇性错误而非必然崩溃。优先排查工具名称的命名方式,因为 Issue 中用户通过更改工具命名约定后问题意外消失。
适用环境:Windows x86_64、llama.cpp 0.1.0-dev(build 10405, commit e79e4bf66)、CUDA 13.3 后端、Ryzen 7600 + RTX 3090、Muse-Glimmer-30B-UD-Q5_K_M.gguf 模型。
最快修复方案:暂无确认的一步修复方案。Issue 中用户通过更改工具命名约定(tool naming convention)后问题意外解决,但原因不明,且该操作并非针对性修复,建议作为可优先尝试的权宜之计。
注意事项:该方案为偶然发现,未经过系统性验证,可能只是巧合或与模型行为有关。用户改动工具命名后不再触发报错,但无法确定是否为根本性修复。如果问题再次出现,需重新排查。
问题场景
在 Windows 系统上使用 llama-server 运行 Muse Glimmer 30B 模型(Q5_K_M 量化)时,通过 chat completion 接口执行工具调用(tool calls)触发错误。启动命令包含 --jinja、--fit off、--flash-attn on、--cache-type-k q8_0、--cache-type-v q8_0 等参数,上下文长度设置为 131072,GPU 层数为 999。报错以 HTTP 500 形式返回,内容为“The model produced output that does not match the expected peg-native format”,且错误具有间歇性,平均每 5 次工具调用出现 1 次。
报错原文
Eval bug: Muse Glimmer "The model produced output that does not match the expected peg-native format" when running tool calls
http error 500
"The model produced output that does not match the expected peg-native format"
common_chat_peg_parse: unparsed peg-native output: ...
原因分析
可能原因:llama-server 使用 peg-native 格式解析模型输出的工具调用 XML。当 Muse Glimmer 模型在生成工具调用内容时,偶尔会产生不符合预期格式的输出(例如 XML 结构不完整、标签不匹配或包含多余字符),导致解析器无法识别并返回错误。由于错误是间歇性的,且与工具命名方式存在潜在关联,推测模型对特定工具名称的生成稳定性可能不足,或者工具名称的命名方式影响了模型输出格式的一致性问题。值得注意的是,Issue 中用户通过更改工具命名约定后问题消失,但这属于偶然发现,尚未有明确的机制解释。
环境排查
- llama.cpp 版本:0.1.0-dev(build 10405, commit e79e4bf66),确保与 CUDA 13.3 后端兼容。
- 操作系统:Windows x86_64,确认系统环境变量和路径设置正确。
- CUDA 版本:13.3,确认显卡驱动和 CUDA 运行时匹配。
- GPU:RTX 3090,检查显存使用情况,避免上下文长度 131072 导致显存溢出。
- 模型文件:Muse-Glimmer-30B-UD-Q5_K_M.gguf,确认文件完整性未损坏。
- 启动参数:检查
--jinja、--fit off、--flash-attn on等选项是否正确启用,以及--cache-type-k/q8_0是否正常加载。
解决步骤
- 复现问题并抓取日志:使用
-lv 5参数启动 llama-server,尝试复现错误。日志会输出大量详细信息,重点关注common_chat_peg_parse: unparsed peg-native output:后面的原始 XML 输出。 - 检查工具命名:检查当前工具调用的命名方式。Issue 中用户通过更改工具命名约定后问题消失,可优先尝试修改工具名称(例如避免使用过于复杂、包含特殊字符或与模型训练分布偏差较大的命名),观察是否还会触发报错。
- 调整上下文化和批处理参数:如果问题持续存在,尝试降低
--ctx-size(例如 65536)或调整--batch-size、--ubatch-size,排除上下文过长导致模型生成质量下降的可能。 - 切换后端或量化方式:如果条件允许,尝试改用 CPU 后端(去掉
--n-gpu-layers 999)或更换其他量化的 GGUF 文件,判断是否为 GPU 推理或量化精度导致的输出格式异常。 - 回归到稳定版本:如果上述步骤均无效,尝试回退到较早的 llama.cpp 构建版本(如 build 10400 之前),确认是否为新版本引入的回归问题。
验证方法
完成上述调整后,重复执行多次工具调用(至少 20 次以上),确认不再出现 HTTP 500 错误。同时观察返回的工具调用 XML 是否结构完整、格式正确。若使用 -lv 5 日志,检查 common_chat_peg_parse 是否不再输出 unparsed 提示。如果问题已消失,则表明当前调整有效;否则,需要在 Issue 中提供新的日志片段以便进一步排查。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


![[SYCL] Misc. bug: test-backend-ops -b SYCL0 assertion: ggml_sycl_op_concat dst: q4_0](https://www.chat-gpts.plus/wp-content/uploads/2026/08/26936-11981dc2-768x403.jpg)