Zod
Zod是一个面向TypeScript和JavaScript的运行时数据校验库,允许开发者以声明式方式定义数据结构的模式(Schema),并在运行时对数据进行类型验证和解析。其核心特性包括:自动推断TypeScript静态类型、支持复杂嵌套结构的校验规则,以及提供清晰的错误提示信息。广泛用于API数据校验、表单验证及环境变量解析等场景。
核心事实
时间轴 (近 90 天)
AI SDK 原生支持 Zod,valibot 适配包为偏好 Valibot 的开发者提供另一种选择
Zod 整个库作为整体引入,压缩后体积约 12-14KB
当 Zod 生成的递归 Schema 触发冗余 allOf 包装时,OpenAI API 会拒绝请求或返回不符合预期的结构
本次更新的核心修复是重写使用 allOf 包装器的递归 Zod 模式,提交记录为 4e94782
Zod 在将递归类型转换为 JSON Schema 时会生成带有 allOf 包装器的结构,例如 { "allOf": [{ "$ref": "#/$defs/Node" }] } 而非直接使用 $ref
在 AI SDK 中,开发者通过 Zod 定义结构化输出或工具调用的参数模式,SDK 再将其转换为 OpenAI 能理解的 JSON Schema 格式
AI SDK 生态中存在与 @ai-sdk/valibot 类似的适配包 @ai-sdk/zod,两者提供相同的对外接口
Zod 将所有校验逻辑打包在一个对象中,而 Valibot 采用函数式、按需导入的模块化设计,每种校验类型都是独立函数
Valibot 在某些场景下压缩包体积可控制在 1KB 以内,而 Zod 完整引入约需 14KB
AI SDK 原生支持 Zod 进行 schema 校验
还有 16 条时间轴事件
全部知识事实 (20)
Zod是一个TypeScript优先的模式声明与验证库,开发者只需用Zod定义一次schema,便可同时获得TypeScript类型推断和运行时数据校验两项能力
80%已验证Valibot 是一个轻量级的 TypeScript 数据校验库,与 Zod 类似,但打包体积更小且采用模块化设计
75%已验证Vercel AI SDK对Zod提供原生支持,开发者可以通过generateObject()和streamObject()等函数传入Zod Schema来获取类型安全的结构化AI输出
75%已验证Zod能够将开发者友好的Schema定义自动转换为JSON Schema
65%待验证Stagehand的Extract功能使用Zod Schema来校验大模型返回的数据结构,确保输出格式严格匹配预定义结构
95%待验证tRPC使用Zod作为API输入输出的校验层
90%待验证LangChain.js深度集成了Zod用于结构化输出的解析
85%待验证TypeScript + Zod的组合构建了从编译期到运行时的完整类型安全链路,这在处理AI不确定性输出时尤为关键
80%待验证Zod 是 TypeScript 生态中流行的运行时类型验证库,在 AI SDK 中用于定义工具调用参数类型和实现结构化输出
70%待验证Zod是一个TypeScript优先的Schema声明与数据验证库,由Colin McDonnell于2020年创建
60%待验证Vercel AI SDK使用Zod定义工具调用(Tool Calling)的参数schema
60%待验证Zod 整个库作为整体引入,压缩后体积约 12-14KB
50%待验证AI SDK 原生支持 Zod,valibot 适配包为偏好 Valibot 的开发者提供另一种选择
50%待验证当 Zod 生成的递归 Schema 触发冗余 allOf 包装时,OpenAI API 会拒绝请求或返回不符合预期的结构
50%待验证本次更新的核心修复是重写使用 allOf 包装器的递归 Zod 模式,提交记录为 4e94782
50%待验证在 AI SDK 中,开发者通过 Zod 定义结构化输出或工具调用的参数模式,SDK 再将其转换为 OpenAI 能理解的 JSON Schema 格式
50%待验证Zod 在将递归类型转换为 JSON Schema 时会生成带有 allOf 包装器的结构,例如 { "allOf": [{ "$ref": "#/$defs/Node" }] } 而非直接使用 $ref
50%待验证AI SDK 生态中存在与 @ai-sdk/valibot 类似的适配包 @ai-sdk/zod,两者提供相同的对外接口
50%待验证AI SDK 原生支持 Zod 进行 schema 校验
50%待验证Zod 将所有校验逻辑打包在一个对象中,而 Valibot 采用函数式、按需导入的模块化设计,每种校验类型都是独立函数
50%