首页/AI/提示词工程速查/JSON 输出模式与围栏约定
任务型写法50 条

JSON 输出模式与围栏约定

要求只输出 JSON 时要显式声明:无 Markdown 围栏、无解释文字、转义规则;解析端仍要兼容可能的围栏包裹。

提示词工程速查AI更新于 2026-10-13

JSON 输出模式要约定什么

要求模型「只输出 JSON」时,需要把三层约定写清:外层不许有代码围栏与解释文字、字符串内的转义规则、缺失字段的表示方法。任何一层没约定,解析端就要额外容错。有些平台提供 JSON 模式或结构化输出能力,会在解码阶段约束输出格式,比纯提示更可靠;但即使启用了这类能力,解析端仍应保留容错路径,因为输出截断、模型能力差异、参数写错都会破坏格式。

三层约定

外层只输出一个 JSON 对象,不加代码块围栏、不加前后缀文字
转义字符串内的引号与换行必须转义,不要出现真实换行
取值布尔用小写 true/false;缺失字段统一用 null 或按约定省略
平台能力支持 JSON 模式或结构化输出的接口优先启用,由平台做格式约束
解析容错提示禁止围栏,但解析端仍要剥掉可能出现的代码块包裹

典型使用场景

  • 字段抽取入库:输出直接进解析器,不经过人工整理
  • 批量流水线:同一模板每天跑大量请求,需要稳定的解析成功率
  • 多步流程中间产物:上一步的 JSON 作为下一步的输入契约
  • 工具调用参数:把模型输出当函数参数使用,类型必须严格
  • 需要重试的接口:解析失败要能明确区分格式问题与业务问题

输出约定条款

输出约定条款
输出要求:
- 只输出一个 JSON 对象,不要用代码块围栏,不要任何前后缀文字
- 字符串内换行使用 \n 转义,不使用真实换行      # 真实换行会让解析失败
- 布尔值用 true/false 小写;缺失字段用 null
- 不要输出注释与解释文字
输出:

解析端要处理的四种情况

情况表现处理方式
被围栏包裹输出以三反引号开始先剥离围栏再解析
附带解释JSON 前后各有一段说明截取最外层花括号区间
输出截断JSON 不完整、末尾缺括号识别为截断并重试,不要当业务错误
字段缺失必填字段未出现按 schema 校验后走兜底或重试
解析失败要保留原始输出到日志:只看报错信息无法判断是模型格式问题还是提示版本改坏了。

易错点

  • 只写「输出 JSON」时模型常带代码块围栏与解释句;解析端两步都要容错
  • 长输出截断时 JSON 不完整;结合结束原因判断重试而不是盲目重发
  • 字符串里出现真实换行或未转义的引号,解析直接失败却查不出原因
  • 布尔与空值写法不约定,true/True/是 混用导致下游判断分支走错
  • 启用了结构化输出能力就放弃程序侧校验,模型返回空对象时无人发现

数据来源与参考

  • OpenAI API 文档:JSON 模式(JSON mode)与结构化输出说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌