DeepSeek工具调用启用strict后请求被拒绝,应先检查工具定义的JSON Schema。严格模式约束模型生成的函数参数结构,服务端也会校验传入的定义。把普通工具示例里的开关改成true,未必就能直接使用。
确认Beta入口和每个函数的设置
该模式使用Beta接口入口,客户端的base_url设为https://api.deepseek.com/beta;在tools中,每个function对象内都应设置strict: true。不要只给其中一个函数加开关,再假定整个工具列表自动继承。
建议先保留一个只读测试函数,跑通后再逐个增加工具。常规工具调用流程可在DeepSeek开发教程中对照,避免同时修改入口、模型和整套工具定义。
对象的必填字段要完整
每一层对象的全部属性都需要列入required,并将additionalProperties设为false。嵌套对象也要逐层检查,只修复最外层,内部对象仍可能导致校验失败。
例如查询天气的工具只有location字段,就让required明确包含location,并禁止额外属性。复制通用Schema时,还要移除不受支持的约束;字符串长度和数组数量等规则不能想当然地套用。
结构合规后仍需检查权限
strict不负责确认城市是否真实,也不会授予数据库或支付权限。执行前应在应用侧检查参数值、工具白名单及当前用户权限。修改订单等操作还应增加确认步骤。复用其他AI接口的工具定义时,建议先保留最小字段集,每次只增加一条约束,记录具体被拒绝的定义。
原创文章,作者:eastbtc,如若转载,请注明出处:https://www.eastbtc.com/ai/deepseek/29495.html