Chat UI Error: ‘type’ must be ‘output_text’ after second message in conversation

这个报错通常出现在 n8n Chat UI 的 第二轮对话 :当上一轮 AI 回复中包含 artifact-create 等非纯文本内容块时,后台在组装历史记录时把它当成标准输出块交给前端校验,导致前端校验失败并提示 Chat UI Error: 'type' must be 'output_tex

快速结论:这个报错通常出现在 n8n Chat UI 的第二轮对话:当上一轮 AI 回复中包含 artifact-create 等非纯文本内容块时,后台在组装历史记录时把它当成标准输出块交给前端校验,导致前端校验失败并提示 Chat UI Error: 'type' must be 'output_text' after second message in conversation。优先排查上一轮 AI 回复是否生成了 artifact(文档/产物)块,以及当前 n8n 版本是否仍存在该历史解析逻辑。

适用环境:n8n 自托管(Docker);已在 Issue 中确认的版本包括 2.7.5、2.9.4、2.11.2;Node.js 22.22.0;数据库 SQLite;LLM 后端为 llama.cpp(Qwen3 VL 模型,经 AI Agent 节点以 OpenAI 兼容方式接入);运行环境为 Debian LXC(Proxmox)中的 Docker。其他系统与依赖版本在 Issue 中未明确。

最快修复方案:暂无确认的一步修复方案。Issue 已转为内部 Linear 工单(GHC-6869)跟踪,但公开讨论中未给出已验证的补丁或配置修改。

注意事项:Issue 原报告者仅通过抓取网络会话数据定位到 artifact-create 内容块,这属于基于现象的分析,官方尚未确认根因。升级 n8n 前请先备份数据库与工作流;在本地复现环境中验证通过后再升级生产实例。

问题场景

在 n8n 中使用新的 Chat UI 功能,并配置一个 Workflow Agent 接入自托管 LLM 后端(如 llama.cpp、Ollama),通过 AI Agent 节点调用。首轮对话正常;发送第二条消息时,Agent 尝试处理第二轮并加载历史对话,前端立即出现红色错误覆盖层和 “Unknown error: Execution failed” 提示。原报告者的首轮回复中,模型生成了 Markdown 教程类内容,被后端解析为 text、artifact-create、text 三个内容块。

报错原文

Chat UI Error: 'type' must be 'output_text' after second message in conversation
Unknown error: Execution failed

原因分析

可能原因是:Chat UI 在第二轮加载历史消息并重建请求时,遇到了上一轮 AI 消息中的 "type": "artifact-create" 内容块。历史解析逻辑可能只接受标准文本/输出块(期望 output_text 类型),无法处理 artifact 块,从而触发前端 schema 校验失败。Issue 中同时提到,该模型输出经 n8n 解析后产生 artifact 块,这提示问题与“模型返回内容被解析为多类型内容块”有关,而非单纯的模型后端兼容性问题。该分析来自报告者抓取会话数据的推断,官方未给出最终结论。

环境排查

  • 确认 n8n 版本:已知受影响版本为 2.7.5、2.9.4、2.11.2;先确认当前实例版本并查看是否有修复版本可升级。
  • 确认 Node.js 版本(Issue 中为 22.22.0)与部署方式(Docker 镜像、Docker in LXC)。
  • 确认数据库类型(Issue 中为 SQLite)及是否可在升级前备份。
  • 确认 Chat UI 所用 Agent 的 LLM 后端(llama.cpp / Ollama 等)及模型是否支持并会触发工具调用类输出。
  • 确认 AI Agent 节点连接的模型/provider 配置是否走 OpenAI 兼容接口。
  • 检查出错会话的上一轮 AI 回复是否包含 artifact 或非纯文本内容块。
  • 确认是否同时挂载了工具(如 wikipedia tool)与 OpenAI 节点指向本地容器;有用户报告在这种组合下出现同样问题,但未证实与工具本身直接相关。

解决步骤

  1. 先确认触发条件:在 Chat UI 中开启新会话,首轮只让模型做纯文本回答(不触发文档/artifact 生成),再发第二条消息,观察是否仍报错。若仅在有 artifact 的第一轮后报错,说明与历史内容块解析相关。
  2. 如可操作,从浏览器开发者工具的网络请求中查看会话数据,定位上一轮 AI 消息的 content 数组是否包含 {"type": "artifact-create", ...} 块。
  3. 记录当前 n8n 版本,查询 n8n 发布说明或更新记录中是否有与 Chat UI 历史消息、artifact 内容块相关的修复。若有可升级版本,先在测试实例升级验证。
  4. 升级前备份 SQLite 数据库与工作流导出;升级后重试“首轮生成 artifact、第二轮追问”的流程。
  5. 若暂无修复版本,可优先尝试的临时规避方法是:在新会话中让模型以纯文本回复、不生成 artifact 类内容,避免历史中出现非标准内容块;每次出现 artifact 后新建会话。此方法未在 Issue 中被验证为官方修复。
  6. 若问题持续,按 Issue 要求向维护者提供第二轮消息对应的 Agent 原始响应或执行数据,便于确认是否为响应格式问题。

验证方法

在与原环境一致的 n8n 版本和 llama.cpp/Ollama 后端下,重新创建会话:第一轮发送会生成 artifact 的请求,确认首轮正常;随后发送第二条消息,观察 Chat UI 不再出现 'type' must be 'output_text' 错误覆盖层,且 Agent 能正常返回第二轮回复。同时检查会话数据中历史消息内容块能被正常解析。

参考来源

n8n-io/n8n #25852

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 32441

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注