接入 Function Calling 后工具参数经常缺失时,如何检查工具 schema、提示约束和重试策略
进阶版来源:alibaba初级工程师Function Calling参数校验计算工具调用可观测性与问题定位工具调用失败处理
草稿
答案解析
我一般会从三个层面排查:工具 schema、本轮提示约束,以及失败后的重试和兜底策略。
工具 schema 先看是不是定义得足够明确。
Function Calling 参数缺失,很多时候不是模型“不会填”,而是 schema 给得太宽或者字段语义不清。重点检查这些点:
required 是否真的声明了必填字段,不能只在 description 里写“必须传”。 字段类型是否准确,比如数字不要写成 string,数组要明确 items 类型。 字段命名是否清晰,避免 data、info、value 这种泛化字段。 description 是否说明字段含义、来源和格式,例如时间字段要说明是 yyyy MM dd HH:mm:ss 还是时间戳。 枚举值要用 enum 限制,不要只靠自然语言描述。 对象嵌套不要太深,嵌套越复杂,越容易漏字段。 如果字段之间有依赖关系,要在描述里写清楚,比如“当 type=refund 时,refundReason 必填”。
比如订单查询工具,不建议只写:
```json { "
登录后查看完整内容
