快速结论:在 Open WebUI dev(0.13.1 版本 PR 阶段)启用原生函数调用后,Pipe 函数读取 body["messages"][-1]["content"] 时拿到的可能不再是用户问题,而是注入在用户消息之后的隐藏知识列表或技能列表。只要用户至少有一个技能,这个问题就会稳定触发,排查时优先确认最后一条消息的内容是否为 <available_skills> 或 <attached_knowledge> 块。
适用环境:Issue 中确认的是 Open WebUI dev 分支(对应 0.13.1 的 PR #33662),并且是相对 0.13.0 行为的回归;触发条件是启用了原生函数调用(native function calling),并使用了读取最后一条消息的 Pipe 函数。Issue 未提供操作系统、Python、CUDA、显卡等环境信息。
最快修复方案:暂无确认的一步修复方案。Issue 在 2026-11-06 关闭,但讨论串中没有给出已验证的修复或配置改动。
注意事项:不要直接按“换版本”去操作,Issue 没有说明回退到 0.13.0 或升级到某个修复版本可以解决。由于没有已验证方案,任何绕过手段都属于推测性尝试;另外该问题与 #33807(空列表变体)属于同一回归家族,修好其中一个时最好同时验证另一个场景。
问题场景
用户在一个新打开的对话里,选择自己编写的 Pipe 函数作为模型。这个 Pipe 的约定是把最后一条消息当作“用户最近的提问”来处理,即读取 body["messages"][-1]["content"]。同时账号下至少创建了一个技能(skill),或者在 Pipe 模型上挂载了知识库。
在 0.13.0 中,技能列表和知识列表会进入 system message,所以最后一条消息仍然是用户问题。进入 dev(0.13.1 PR 阶段)后,启用原生函数调用时,这些列表会以隐藏的 tool rounds 形式追加在用户消息之后,于是 Pipe 读到的“最后一条消息”变成了 Open WebUI 自己注入的上下文。
报错原文
issue: [regression] [dev] pipes read the knowledge or skill list as the user's question
复现时 Pipe 实际返回的内容类似 <available_skills> 列表;挂载知识库时返回 <attached_knowledge> 列表,而不是用户发送的“When does the pier office open?”。
原因分析
最可能的原因是消息顺序发生了回归:原生函数调用把知识列表和技能列表作为隐藏的 tool 轮次追加到消息数组末尾,而不是像 0.13.0 那样放进 system message。因此依赖 messages[-1] 定位用户输入的 Pipe 逻辑,取到的是 Open WebUI 注入的上下文,而非用户问题。
受影响面较大:只要用户拥有至少一个技能,全部技能都会被列出,Pipe 就会对技能列表作出回答。Issue 讨论中关联的 #33807 报告的是同一类顺序问题,并额外提到空列表也会被当成提示内容的变体,说明根因可能出在消息组装阶段,而不在 Pipe 本身。
环境排查
- 确认 Open WebUI 版本是否为 dev 分支(对应 0.13.1 的 PR #33662 阶段),并与 0.13.0 的行为做对比。
- 确认是否启用了原生函数调用(native function calling)。
- 确认账号下是否存在至少一个技能;如涉及知识库,确认 Pipe 模型是否挂载了知识库。
- 确认 Pipe 函数是否以
body["messages"][-1]["content"]获取用户问题。 - Issue 未涉及 Python、CUDA、PyTorch、显卡或具体节点版本,无需作为排查前提。
解决步骤
- 先复现并确认现象:创建一个内容任意的技能,添加一个返回
body["messages"][-1]["content"]的 Pipe 并选为模型,在新对话中发送一个问题。 - 检查 Pipe 的返回值。若返回的是
<available_skills>或<attached_knowledge>列表而非问题原文,即可确认命中此回归。 - 对比 0.13.0 的行为,确认这是 dev 分支上的消息顺序变化,而不是 Pipe 代码本身出错。
- 可优先尝试:在 Pipe 中改为从消息数组中向前查找最后一条真正的用户消息,而不是固定取
messages[-1],避免把隐藏的 tool/上下文轮次误当作提问。该做法属于推测性的绕过手段,Issue 中并未验证。 - 跟踪 #33809 与关联的 #33807 的后续进展,等待上游修复消息组装顺序后再回归验证。
验证方法
在拥有至少一个技能、并挂载了知识库的条件下,用 Pipe 发送“When does the pier office open?”之类的问题。如果 Pipe 返回的是问题本身、与 0.13.0 行为一致,且不再返回 <available_skills> 或 <attached_knowledge> 列表,则问题已解决。同时建议用无技能、无知识的对话复测一次,确认没有引入新的空列表回归(参考 #33807)。
参考来源
open-webui/open-webui #33807(关联的同族回归,空列表变体)
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。

![[Bug]: GLM-5.2 MTP accepts 0% of drafts on MI355X (gfx950); disabling expert parallelism hits hipErrorIllegalAddress](https://www.chat-gpts.plus/wp-content/uploads/2026/11/52833-24d1036b-768x403.jpg)
