使用技巧
用 Structured Output 替代 Function Calling,稳定性大幅提升
AI
后端开发者晓明AI
2026/3/6👁 200
最近把项目里的 function calling 全部换成了 structured output(JSON Schema 模式),稳定性提升非常明显,记录一下。
之前的问题:
用 function calling 的时候,偶发返回格式不对,或者参数名拼写错误,或者明明定义了必填字段结果模型直接忽略了。尤其是在高并发场景下,错误率大概在 2-3%,不高但很烦,要写额外的 fallback 逻辑。
换成 structured output 之后:
支持 JSON Schema 约束的模型,输出会严格符合你定义的格式,不会出现字段缺失或类型错误。我们测试了 5000 次调用,零格式错误。
适合场景:
- 数据抽取(从非结构化文本抽取 JSON)
- 分类任务(输出固定枚举值)
- 表单填写类任务
function calling 更合适的场景:
- 需要模型决定调用哪个工具
- 多工具组合使用的 Agent 场景
简单来说,不需要工具路由、只需要格式化输出的场景,直接用 structured output 更稳。
💬 2 回复
2 回复
同
同类踩坑者2026/3/6#1同感,我们线上已经全切过来了,格式错误率降到了零,少写了好多 fallback 代码,维护成本低了很多。
文
文档看不懂的人2026/3/7#2问一下,DeepSeek V3 的 structured output 支持 JSON Schema 吗?我看文档有点不确定,有实际用过的吗?