Function Calling:当 Schema 比 Prompt 更重要

Function Calling:当 Schema 比 Prompt 更重要

Function calling 第一次跑通的时候看起来像免费午餐。模型选了正确的工具、填了正确的参数,剩下的交给应用代码。等你上线之后,边角案例就来了:参数被凭空幻觉出来、函数被调用时类型合法但值毫无意义、或者明明该调用某个函数时模型却拒绝调用任何一个。

可靠性真正来自哪里

Schema 做的事情比 prompt 多。紧致的 enum 胜过自由形式字符串。带有描述性名字的必填字段,胜过模型可以跳过的可选字段。最常见的可靠性 bug 是函数定义里参数描述模糊——模型填进类型符合但意图不符合的看起来合理的值。把参数描述当作 prompt 的一部分对待,因为它就是。

什么时候该自己加一道检查

对于不可逆操作,不要相信模型的第一选择。一个确认步骤——哪怕只是简单的”这是你想做的吗?”——能抓住模型选了正确函数但参数错误的情况。对多工具任务,记录模型的工具选择理由;你花在读这些日志上的时间,是你能做的最便宜的调试。

Function calling 把失效模式从”错的文本”换成”错的动作”。这是另一类 bug,光靠 prompt 调优修不了。

相关文章