严格模式
严格模式确保模型在输出 Function 调用时严格遵循 Function 的 JSON Schema 的格式要求。
严格模式确保模型在输出 Function 调用时严格遵循 Function 的 JSON Schema 的格式要求。启用后,SDK 会自动:
- 将请求发送到 DeepSeek Beta 端点(
https://api.deepseek.com/beta) - 在所有工具定义中向 API 传递
strict: true - 强制要求所有 object 属性为 required,并设置
additionalProperties: false
服务端会对传入的 Function 的 JSON Schema 进行校验,如不符合规范或遇到不支持的 JSON Schema 类型,将返回错误信息。
有两种方式启用严格模式:
模型级严格模式(推荐)
在模型上设置 strict: true,全局启用严格模式:
使用模型级严格模式时,请求中的所有工具都会自动设置 strict: true,无需在每个工具上单独设置。SDK 还会通过 model.enableBeta() 自动切换到 Beta 端点。
你也可以手动触发 Beta 端点切换:
工具级严格模式
在单个工具上设置 strict: true。同一请求中的所有工具必须具有相同的 strict 值——不允许混用严格和非严格工具:
当任何工具设置了 strict: true 时,SDK 会自动检测并在发送请求前切换到 Beta 端点。
类型安全
TypeScript 通过专用类型在编译时强制一致性:
StrictTool[]— 所有工具必须设置strict: trueNonStrictTool[]— 所有工具的strict为false或未定义ConsistentTools=StrictTool[] | NonStrictTool[]—generateText和智能体方法使用的联合类型
同时运行时也会通过 validateToolConsistency() 进行验证作为兜底,如果混用严格和非严格工具会抛出错误。
支持的 JSON Schema 类型
严格模式支持部分 JSON Schema 类型。使用不支持的类型会导致服务端错误:
| 类型 | 说明 |
|---|---|
object | 所有属性必须为 required;additionalProperties 必须为 false |
string | 支持 pattern、format(email、hostname、ipv4、ipv6、uuid);不支持 minLength/maxLength |
number / integer | 支持 minimum、maximum、exclusiveMinimum、exclusiveMaximum、multipleOf、const、default |
boolean | 完全支持 |
array | 不支持 minItems/maxItems |
enum | 完全支持 |
anyOf | 完全支持,用于联合类型 |
$ref / $def | 支持,用于模块化 Schema 和递归结构 |
严格模式是 Beta 功能。当任何工具设置了 strict: true 时,SDK 会自动切换到 Beta 端点。服务端会校验 JSON Schema——如果包含不支持的类型或不符合严格模式要求,将返回错误。支持的 JSON Schema 类型完整列表请参阅 DeepSeek API 文档。

