用途:帮助开发者从大模型获得可靠的结构化输出(JSON、类型化对象),避免用正则修补、重试循环或静默损坏来掩盖问题。适用于用户解析模型 JSON 或类型化对象报错、用正则修复输出(尾逗号、智能引号、未转义换行)、比较 JSON 模式/结构化输出/函数调用/工具调用、以及结构化输出要喂给下游系统的场景。
主要能力:区分三种机制——函数调用/工具调用(模型输出工具参数,由提供方强制 schema,保证最强,适合表示“动作”);结构化输出/JSON schema 模式(提供方约束生成,适合表示“数据”,如抽取、转换、分类);文本中的自由 JSON(保证最弱,仅在前两者不可用时使用)。给出决策流程:先判断输出是动作还是数据;再确认提供方是否原生强制 schema(如 Anthropic 工具调用、OpenAI 结构化输出、Gemini 受控生成),能用就用;schema 尽量在 100 token 内可达,嵌套会快速退化,能扁平化就扁平化;封闭集合用枚举而非带约束描述的字符串;下游不容忍部分输出时严格校验、大声拒绝。
五条规则:schema 是提示的一部分,放在任务前并附一个具体示例;一个具体示例胜过五句描述;封闭集合用枚举;违反 schema 时大声拒绝(Pydantic/zod/JSON-schema 严格校验,不修复、不 try/except: pass);带反馈重试一次,把解析错误作为纠正消息,绝不静默吞掉。
应避免的反模式:正则修复模型输出;不校验直接解析 content;该用枚举处用自由文本;嵌套超过 3 层;仅靠描述约束格式;提示中无示例;已有原生 schema 模式却不用;在同一响应中混用自由文本与结构化字段。
限制:资料未提供具体安装命令、代码示例、价格或平台支持细节;相关参考文件与关联技能仅以名称列出,未展开内容。