强制结构化输出而不削弱模型推理
- William Jacob
- 输出 , 可靠性
- 04 May, 2026
JSON 模式和 Schema 约束看起来像免费午餐,直到它们不是。当模型第一次为一个复杂嵌套 Schema 输出合法 JSON,诱惑就来了:把所有东西都塞进结构化输出。等到第二次它输出结构合法但语义为空的字段,你才会看到这个权衡。
为什么约束有时反而有害
把模型逼进一个紧绷的 Schema,会切掉它的推理空间。如果你的 Schema 要求一段单段摘要加一个二元分类,那么模型会在还没思考完摘要前就提交了分类。字段顺序很重要。required 和 optional 的划分很重要。长度为 0 的 required 数组是最常见的隐性失败——模型通过给你”什么也没有”来满足 Schema。
同时保留两者的模式
两次调用比听起来要简单:一次自由形式推理,一次受约束的提取,把推理转成 JSON。你多花一次模型调用,但停止了和模型在单次调用里的较劲。对于较简单的任务,有序字段——先推理,最后才是决策——已经能完成大部分两次调用要做的事。
你最终上线的 Schema,几乎从来不是你最初草绘的那一版。