LLM返回的JSON十次坏三次:60行容错解析器先兜住

掘金作者海螺_AIHCC 于 2026 年 11 月发布一篇工程实践文章,提出大模型返回的 JSON 常有格式问题,与其急着换模型,不如在模型输出与工具入参之间加一层约 60 行的容错解析器。

一句话看懂:掘金作者海螺_AIHCC 于 2026 年 11 月发布一篇工程实践文章,提出大模型返回的 JSON 常有格式问题,与其急着换模型,不如在模型输出与工具入参之间加一层约 60 行的容错解析器。

事件核心:发生了什么

文章把 Agent 调用工具时常见的坏 JSON 归为六类:markdown 代码围栏包裹、尾部多余逗号、单引号、Python 字面量(True/False/None)、键未加引号、以及前后夹带说明文字。作者给出的思路是先用标准 json.loads 解析,失败后再按“剥围栏、抠出花括号内容、转字面量、去多余逗号、补键引号、单引号转双引号”的顺序修复,再解析一次。代码纯用 Python 标准库 json 和 re,作者在 Python 3.12.2 本地实测六种坏 JSON 全部解析成功。

为什么重要

Agent 接入生产环境后,模型输出的稳定性直接决定工具调用能否跑通。这类问题多数不是模型“不会写 JSON”,而是训练语料带来的表达习惯,属于格式脏而非内容错。一层集中解析可以避免每个工具函数各自防一遍,减少崩溃和日志排查成本。文章也强调,容错解析管不了答非所问或编造值,后者仍需参数校验与幻觉检测。

对用户/开发者/创作者的影响

开发者可以把这层放在模型输出和工具入参之间,让下游工具始终拿到干净的 dict。文章提醒不要一上来就用正则全局修复,规范输出可能被误伤,例如值中本就含 True 一词。作者称教学版对含撇号的单引号和深层嵌套处理有限,生产环境建议使用 json5 或 json-repair 等专业库。目前公开信息显示,这只是个人工程经验分享,并非官方产品或基准评测。

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

值得关注的后续

一是这类容错层是否会被主流 Agent 框架或 SDK 内置;二是 json-repair、json5 等库在深层嵌套与复杂引号场景下的实际表现;三是文章提到的 schema 校验环节能否与容错解析形成完整的入参防线。

来源:juejin

celebrityanime
celebrityanime
文章: 33494

发表回复

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