先这样答
优化之前先分类:把一段时间的失败调用全部拉出来,归成几类。不同错误类型的根因不同,治理手段完全不同,混在一起调提示词是白费劲。
第一类:选错工具。该调 A 调成了 B。根因通常是工具描述写得含糊或者职责重叠——两个工具描述长得差不多,模型只能猜。治理手段:重写描述(第一句话就说清「什么时候该用我」,边界写明「什么情况不该用」);职责重叠的工具直接合并;工具太多时加一层筛选,先按场景检索出相关的十几个工具再进提示词,别把几百个工具一股脑塞进去。
第二类:参数填错。类型不对、必填缺失、格式不符合枚举、把默认值编造出来。治理手段:Schema 设计做减法——参数越少越好,能用枚举就用枚举,嵌套结构能压平就压平;应用侧强制校验,校验不过把错误信息原样回传让模型重填,这个「校验-重试回路」能吃掉大部分参数错误。
第三类:时机错误。不该调的时候调了,或者该调的时候直接编答案。这类要靠流程约束:系统提示里写清楚必须先调工具核实再回答的场景清单;对「看起来像知识问答」的高危场景,把工具调用做成强制步骤而不是可选建议。
改完每一轮,都要在同一套评测集上回归,分类账和评测集是这对问题的两只手。
面试官会怎么追问
- 工具描述有什么写作要点? 一句话定位 + 适用场景 + 明确不适用场景 + 参数含义和示例;避免营销词,模型不认形容词,认具体的边界条件。
- 重试会不会引起死循环? 校验重试要有上限(两三次),超过就升级处理(换提示策略或转人工),重试回路也要有预算。
- 怎么评估工具调用的准确率? 建评测集:每个用例标注期望的工具序列和参数要点,比对了「选没选对、填没填对、顺序对不对」三个维度。
回答的坑
- 一上来就「换更强的模型」。模型升级是最后的手段,前面还有描述、Schema、筛选、校验四层可做。
- 说不出错误分类。没有分类账就没有优化,这是判断真做过调优的关键。
同系列的题
—— 本题完 ——