OpenRouter 发布 Response Healing 插件,自动修复 LLM 结构化输出的 JSON 语法错误
Response Healing: Reduce JSON Defects by 80%+
OpenRouter 推出 Response Healing 功能,在推理时自动修复 LLM 返回的畸形 JSON,再交给应用。上线一周数据:Gemini 2.0 Flash 缺陷率下降 80%,Qwen3 235B 下降 99.8%,Devstral 2512、Mistral Small 3.2 等修复率超过 99%。
官方给出各主流模型修复前后的成功率数据和延迟开销,读者可据此评估是否在结构化输出场景启用该插件。
我们期望我们的 API 拥有 99.999% 的正常运行时间。我们绝不会容忍一个失败率 2% 的支付处理器。那么,为什么我们要接受那些在结构化输出请求中经常破坏 JSON 语法的 LLM 呢?
今天我们推出 Response Healing:OpenRouter 上的一项新功能,可在 LLM 返回的格式错误的 JSON 响应到达你的应用程序之前自动修复它们。
一周数据带来的两项突出改进:
- Gemini 2.0 Flash,我们最受欢迎的结构化输出模型,在过去一周内处理了超过 160 万次请求,其缺陷率下降了 80%。
- Qwen3 235B,目前最强大的开放权重模型之一,其缺陷率下降了 99.8%。
让你夜不能寐的数学
大多数开发者忽略的一点是:如果一个 LLM 的 JSON 缺陷率为 2%,而 Response Healing 将其降至 1%,你实现的不仅仅是 1% 的改进。你将你的缺陷、bug 和支持工单减半了。
在 OpenRouter 的规模下,我们每天在数十亿 token 中看到这种复合效应。结构化输出可靠性的一个“微小”改进,意味着凌晨 3 点的告警大幅减少、愤怒的用户大幅减少,以及调试你的 agent 为何突然停止工作的时间大幅减少。
这就是为什么我们比任何其他网关都更执着于这个问题。边缘处的可靠性才是真正生产系统成败的关键。
我们正在修复什么
LLM 在生成 JSON 时会犯出奇有创意的错误。常见问题包括最后一个元素后的尾随逗号、字符串中未转义的控制字符、缺失的闭合括号,以及各种破坏解析器的语法错误。
这是你请求的数据:{…}
这绝不应该让你宕机。
关于我们处理的故障模式的详细分解,请查看我们的 Response Healing 文档:
基准测试
我们分析了平台上数百万次结构化输出生成。我们是在推理时即时进行的,没有记录任何补全内容或存储结果。
以下是请求量最高的模型的结果:
| 模型 | 请求数 | 之前成功率 | 之后成功率 | 已解决缺陷 |
|---|---|---|---|---|
| Gemini 2.0 Flash | 1.62M | 99.61% | 99.92% | 80.0% |
| Gemini 2.5 Flash | 772k | 98.97% | 99.65% | 66.3% |
| Gemini 2.5 Flash Lite | 703k | 99.64% | 99.89% | 68.7% |
| GPT-4o Mini | 494k | 99.98% | 100.00% | 80.7% |
| Grok 4 Fast | 488k | 92.89% | 94.87% | 27.8% |
| Grok 4.1 Fast | 284k | 98.70% | 99.17% | 36.4% |
| Gemini 2.0 Flash Lite | 282k | 99.94% | 100.00% | 98.9% |
| Deepseek Chat v3.1 | 196k | 82.54% | 97.39% | 85.0% |
| GPT-4.1 | 155k | 98.22% | 98.40% | 10.4% |
| Qwen3 235B | 113k | 88.02% | 99.98% | 99.8% |
| GPT-oss-120b | 112k | 99.53% | 99.82% | 62.2% |
| Devstral 2512 | 104k | 96.59% | 99.99% | 99.6% |
| Gemini 2.5 Flash Lite Preview | 93k | 99.14% | 99.86% | 83.7% |
| Llama 3.1 8B Instruct | 79k | 99.68% | 99.91% | 72.4% |
| GPT-oss-20b | 58k | 99.01% | 99.36% | 34.8% |
| Mistral Small 3.2 24B | 57k | 98.82% | 99.99% | 99.3% |
| GPT-5 Nano | 52k | 99.96% | 99.96% | 8.7% |
| Ministral 3B | 52k | 99.99% | 100.00% | 100.0% |
自我们一周前软发布以来,一些值得注意的亮点:
mistralai/devstral-2512:开启该插件的客户,有效 JSON 率从 97% 提升至 99.99%,即缺陷减少 99.7%google/gemini-2.5-flash:成功率从 97.5% 提升至 99.88%。减少 95.2%meta-llama/llama-3.1-8b-instruct:成功率从 99.9% 提升至 100%。减少 100%- Qwen3-235B:有效率从 87.97% 提升至 99.98%,减少 99.85%
- Deepseek Chat V3.1:有效率从 83.16% 提升至 97.46%,减少 84.89%
- 多个模型——Ministral 3B、Devstral 2512、Mistral Small 3.2——实现了超过 99% 的近乎完美的修复率
- 即使是已经表现良好的模型也获得了显著提升:Gemini 2.0 Flash Lite 的有效率从 99.94% 提升至 100%
如何启用
Response Healing 是选择性启用的。你可以通过设置中新的插件部分进行配置:
openrouter.ai/settings/plugins
开启它后,每个结构化输出请求都会在返回你的应用之前,自动通过我们的修复层。
成本
该插件免费使用。在延迟方面,我们对所有生产数据中增加的 CPU 时间进行了分析:
| 类别 | 平均时间 | 每秒操作数 |
|---|---|---|
| 无模式修复 | 0.018ms | 54,700 |
| 统一 API | 0.019ms | 51,500 |
| 类型强制转换 | 0.041ms | 32,600 |
| 基础解析 | 0.133ms | 16,900 |
| 大负载(10KB) | 2.3ms | 437 |
实际上,插件之外的因素会主导任何真实世界的延迟。因此我们可以说,对于典型响应,修复增加的延迟不到 1ms,与 LLM 推理时间相比可以忽略不计。
这不能修复什么
明确一下范围:响应修复修复的是 JSON 语法错误,而不是模式遵循。如果模型返回的 JSON 有效,但不符合你期望的模式(字段名错误、缺少必需属性、类型错误),修复不会捕捉到这些问题。
目前它也只适用于非流式请求。如果你也有修复流式请求的需求,请联系我们并说明你的用例。
尽管如此,你仍应看到整体错误率显著下降。语法错误是最常见的失败模式之一,消除它们可以让你将错误处理集中在真正需要应用逻辑来解决的语义问题上。
那工具调用和模式遵循呢?工具调用很少有结构性 JSON 问题,但模式遵循在大多数模型中都存在许多缺陷。我们很快会评估模式遵循。
那 XML 呢?该插件也可以修复 XML 输出——如果你想使用,请联系我们。
自信发布
我们构建 OpenRouter,是为了让它成为你无需操心的基础设施层。响应修复是朝着这个目标迈出的又一步:结构化输出每次都能正常工作。
立即在 openrouter.ai/settings/plugins 启用它,并告诉我们你正在构建什么。
来源:OpenRouter:Announcements(RSS) · openrouter.ai