Zod(模式校验库) 结构化输出
成熟的运行时模式校验库:用声明式 schema 对任意值做类型检查与解析。本教程要求先手写校验器以掌控校验语义(`required` 缺失报什么错、`null` 怎么处理、错误路径长什么样),复杂场景再引入库不迟。
它是什么
Zod 是成熟的运行时模式校验库:用声明式 schema 对任意值做类型检查与解析,TypeScript-first——z.object({ name: z.string() }) 定义 schema,.parse() 校验输入并同时推断出静态类型,.safeParse() 返回 {success, data | error} 判别联合而不是抛异常。零依赖、核心包很小,还能内置转成 JSON Schema。
本教程的立场
第 05 章要求先手写校验器,理由是校验的语义必须在你的掌控之中:required 缺失报什么错、null 怎么处理、错误路径长什么样——尤其当模型输出是唯一输入时,连「报错信息会不会泄露提示词」都要自己把关。等手写校验器不能满足复杂场景(嵌套、枚举、自定义 refine、与 TS 类型双向推导)时,再引入 zod 不迟——到那时你也读得懂它的报错。相关词条:validation。
与 JSON Schema 的关系
zod 内置 JSON Schema 转换能力,两者可以互为转换;很多结构化输出 SDK 的 schema 正是用 zod 定义、再转成 JSON Schema 发给模型(json-schema 词条、第 06 章的工具 schema 也走同一条路)。