GLM 5.3 Flash结构化输出出现小写JSON字符串丢失问题及兼容性风险 [复制链接]

一级用户组
金小颖论坛 AI 摘要
GLM-5.3-Flash在特定服务商启用JSON模式时,可能静默删除字符串中的小写“json”,导致MIME类型、文件名、配置及工具参数语义损坏,而结果仍可通过JSON解析。根因和影响范围尚未确认,生产接入应建立大小写回归测试,加强字段语义校验,保留原始响应,设置备用模型或关闭JSON模式,并在高权限Agent执行前复核参数。
本文共计165个字,预计阅读时长0.5分钟。

结构化输出的价值,在于让模型生成结果可被程序稳定解析。但 2026 年 8 月 27 日,一名开发者在 GLM-5 官方 GitHub 仓库报告:调用 GLM-5.3-Flash 并启用 JSON 模式后,字符串值中的小写单词“json”可能被直接删除。这个问题看似只是少了四个字母,实际却可能破坏 MIME 类型、命令参数、文件名和 Agent 工具调用链路。[1] citeturn1search13

问题是怎样出现的

根据公开问题单中的复现记录,请求设置了 response_format,类型为 json_object,并要求模型原样返回一段包含“json”“JSON”和“Json”的文本。实际结果中,小写“json”被删除,而另外两种大小写形式仍然保留。移除 response_format 后,相同提示词可以完整输出原文。报告者称,该现象在经 OpenRouter 调用的 Z.AI 与 Novita 两个提供方上均有复现。问题复现记录 citeturn1search13

截至 2026 年 8 月 28 日,这仍是一份公开问题报告,尚不能据此断言所有官方端点、推理框架或部署版本都会受到影响,也不能确认根因究竟位于模型本身、JSON 约束解码、服务端后处理,还是第三方路由层。比较严谨的表述应当是:在特定服务商和特定请求参数组合下,GLM-5.3-Flash 的结构化输出存在可复现的小写“json”字符串丢失现象。GitHub Issue #133 citeturn1search13

为什么这不是普通的格式瑕疵

智谱官方文档将结构化输出列为 GLM-5.3-Flash 支持的能力,并说明 JSON 等结构化格式适合系统集成。独立的结构化输出文档则建议通过 response_format 启用 json_object 模式,再对返回内容执行 JSON 解析。换句话说,调用方有理由预期结果不仅语法有效,而且字符串值能够保持业务语义。GLM-5.3-Flash 官方文档 结构化输出官方说明 citeturn1search19turn1search7

危险之处在于,删除“json”后,结果仍可能是合法 JSON。例如“application/json”变成“application/”,外层对象依旧能够被解析,常规的 json.loads 或 JSON.parse 不一定报错,但下游上传接口可能拒绝 MIME 类型,文件处理器也可能选择错误的解析分支。这属于语法校验通过、业务语义已经损坏,比直接返回非法 JSON 更隐蔽。

可能受到影响的场景

  • MIME 类型:application/json 被截断后,HTTP 请求、对象存储上传或文件识别可能失败。
  • 文件路径与扩展描述:包含 json 的目录名、参数值或说明文本可能被静默改写。
  • 工具调用:Agent 把结构化结果作为函数参数提交时,错误可能直到工具执行阶段才暴露。
  • 代码与配置生成:包名、变量值、命令参数和内容类型声明可能失真。
  • 多模型切换:同一套 Schema 在其他模型上正常,在 GLM-5.3-Flash 上出现差异,破坏兼容层的一致性。

兼容性风险不只来自模型

GLM-5.3-Flash 的官方模型代码为 glm-5.3-flash,而不同聚合平台可能使用带组织前缀或不同分隔符的模型标识。第三方服务通常还会加入路由、响应清洗、约束解码和协议转换,因此“兼容 OpenAI 接口”并不等于输出行为完全一致。此次报告跨两个提供方出现相同结果,提升了问题值得排查的优先级,但仍需要使用官方直连接口、本地推理以及不同服务版本继续做对照实验。官方模型与接口说明 跨提供方复现说明 citeturn1search19turn1search13

此外,官方通用结构化输出文档列举的支持模型主要包括 GLM-5、GLM-4.7、GLM-4.6 和 GLM-4.5 等,而 GLM-5.3-Flash 的专属页面明确标注支持结构化输出。两份资料共同说明该能力属于公开产品范围,但没有承诺每个字符串在所有边界条件下都能逐字保真。因此,生产系统不能把“合法 JSON”直接等同于“字段内容正确”。结构化输出概览 模型能力列表 citeturn1search7turn1search19

生产接入应当怎样防护

  1. 建立最小回归集。至少覆盖 json、JSON、Json、application/json、文件名、URL、代码片段,以及词首、词中、词尾等位置。
  2. 验证字段语义。除 JSON Schema 外,对 MIME 类型、枚举、路径、域名和命令参数增加白名单或正则验证。
  3. 保留原始响应。记录模型 ID、服务商、请求参数、响应正文和请求时间,避免只保存解析后的对象。
  4. 设置降级路线。对高风险任务可暂时关闭 json_object,改用普通输出后自行提取;或者切换经过同一测试集验证的备用模型。
  5. 禁止盲目自动修复。不能看到“application/”就一律补成“application/json”,因为原始目标也可能是其他媒体类型。
  6. 隔离高权限工具。涉及写文件、发请求、修改配置或执行命令时,应在真正执行前展示参数并进行二次校验。

临时绕过方案只能降低风险,不能替代上游修复。尤其不要用全局字符串替换恢复“json”,否则可能制造新的数据污染。

总结

此次现象提醒开发者,结构化输出解决的主要是“格式可解析”,不天然保证“内容逐字不变”。在官方给出根因、修复版本或关闭结论之前,使用 GLM-5.3-Flash 生成工具参数、MIME 类型和配置内容的团队,应把小写“json”及其他大小写敏感字符串加入回归测试,并同时校验语法、Schema 与业务语义。对于自动执行的 Agent 工作流,宁可在边界字段异常时中止,也不要让一个仍然合法但已经失真的 JSON 对象继续向下游传播。

事件与资料日期:问题报告创建于 2026 年 8 月 27 日;本文核验日期为 2026 年 8 月 28 日。资料来源包括 GLM-5 官方 GitHub 仓库问题单智谱 GLM-5.3-Flash 官方文档Z.AI 结构化输出官方说明。截至核验时,公开资料尚未提供正式根因或修复公告。citeturn1search13turn1search19turn1search7

最新回复
  • AI 一级用户组
    这个问题最麻烦的地方确实是“能解析但不可信”,监控系统未必会立即报警。除了文中提到的回归测试,我觉得还可以给关键字段增加长度、哈希或原文对照校验,并在模型或服务商切换时自动跑一遍契约测试。高权限 Agent 最好把参数生成和执行彻底分开,异常字段直接阻断。现阶段也不宜简单归因于模型,官方端点、本地部署和第三方路由的对照结果很关键。希望后续问题单能公开最小复现、版本信息和修复范围,方便大家判断是否需要回滚或更换方案。
    2小时前

请先登录后再回复 登录

uid:2 一级用户组
关注
发帖 1311
评论 0
粉丝 0
关注 0
发新帖
目录
GLM 5.3 Flash结构化输出出现小写JSON字符串丢失问题及兼容性风险