真实面经题目 · 原创解析
Agent 工具调用训练中,如果一个 query 有多个可用工具,如何构造样本让模型学会工具选择偏好?
这道题考察的是 Agent 工具调用训练里的偏好学习,而不是简单判断某个工具能不能用。好答案要说明:当多个工具都可完成同一 query 时,训练样本不能只保留一个正确 tool call,而要把候选工具、选择理由、约束条件、反事实样本和评价指标都设计出来,让模型学会在成本、延迟、稳定性、精度、覆盖范围和任务阶段之间做取舍。
真实面经题目 · 原创解析
这道题考察的是 Agent 工具调用训练里的偏好学习,而不是简单判断某个工具能不能用。好答案要说明:当多个工具都可完成同一 query 时,训练样本不能只保留一个正确 tool call,而要把候选工具、选择理由、约束条件、反事实样本和评价指标都设计出来,让模型学会在成本、延迟、稳定性、精度、覆盖范围和任务阶段之间做取舍。
我会把这类数据构造成工具选择偏好样本,而不是普通单标签分类样本。首先为同一个 query 显式列出可用工具集合、每个工具的能力边界、调用成本、延迟、稳定性、返回精度、权限和副作用。然后给出当前场景下的首选工具、可接受备选工具、禁止工具,以及为什么这么选。例如粗召回阶段可以优先便宜、快、覆盖广的搜索工具;需要最终核验时再选慢但准确的深查询工具;如果用户只要大概趋势,就不该调用昂贵精确接口。训练格式上可以做成 pairwise preference、rank list 或带 rationale 的 tool-call SFT:同一 query 下保留正例、次优例和负例,并标注选择理由。还要加入反事实样本,比如把 query 的时效性、精度要求、权限、用户预算或 SLA 改掉,正确工具也随之变化。验证时不能只看工具名准确率,还要看偏好排序、无效调用率、成本节省、延迟、任务成功率、fallback 后恢复率和在线 A/B 的业务指标。
多个工具都能回答时,问题已经不是二分类的是否调用工具,而是多目标决策。训练目标要让模型知道当前任务更看重什么:速度、成本、准确性、覆盖率、稳定性、权限安全,还是减少副作用。没有选择目标,模型容易学成谁描述更像就选谁。
样本里最好显式放入候选工具集合,而不是只记录最终调用。每个候选工具要有能力说明、适用场景、输入要求、返回质量、成本、延迟、失败率和限制。这样模型学习的是在同一上下文下比较工具,而不是记住某类 query 固定对应某个工具。
标签可以分为最佳工具、可接受工具、次优工具和禁止工具。最佳工具对应当前约束下的最优解;可接受工具在首选不可用时可以 fallback;次优工具能做但代价或质量不合适;禁止工具可能越权、有副作用、参数不满足或会产生错误业务结果。
同一个 query 可以改写出多组反事实:用户要求实时、要求低成本、只要粗略结果、必须高精度、当前工具超时、用户没有权限、关键参数缺失。反事实样本的价值在于让模型看到选择偏好会随约束变化,而不是把 query 表面词和工具静态绑定。
很多 Agent 任务是分阶段的。早期探索阶段更适合便宜快速、覆盖广的粗召回工具;最终确认、落库或对外回答前,需要准确、稳定、可追溯的深查询工具。训练数据应把阶段状态放进输入,否则模型可能一上来就调用昂贵工具,或在最终答案阶段仍停留在粗结果。
偏好样本最好显式标注选择理由,例如更快、费用更低、返回字段更完整、成功率更高、适合模糊搜索、适合精确查询、无写入副作用。rationale 不是为了让模型输出长解释,而是把人类选择规则变成可学习的监督信号。
负例应包含真实容易混淆的工具,而不是明显不相关的工具。比如两个搜索工具、两个库存接口、一个粗召回和一个详情查询才有训练价值。过于简单的负例会让离线准确率很好看,但线上遇到相似工具时仍然误选。
评估指标不能只看工具名匹配。还要看偏好排序 NDCG 或 pairwise accuracy、参数正确率、无效调用率、平均成本、平均延迟、工具失败恢复率、最终任务成功率和用户满意度。对高风险工具,还要单独统计越权调用和误触发副作用。
如果目标是让模型学会多个工具之间的偏好,pairwise 或 listwise 更直接,因为它保留了候选间比较。SFT tool call 适合教会调用格式和基本映射。工程上可以组合:先用 SFT 学稳定调用格式,再用偏好数据或 reranker 学工具排序。
不要强行制造唯一正确答案。可以标成同一偏好层级,或把选择条件写清楚:默认选低成本工具,低置信度或需要高精度时选深查询工具。这样模型学到的是决策规则,而不是噪声标签。
训练集中要有工具不可用、超时、空返回和部分字段缺失样本,并标注 fallback 策略。模型应先判断是否可重试、是否有可接受备选工具、是否需要追问或降级,而不是无限调用首选工具。
训练时的 rationale 可以作为监督字段或内部 reasoning,不一定暴露给用户。关键是让模型在选择前具备可学习的规则信号,最终线上可以只输出结构化 tool choice 和必要的简短原因。
可以构造反事实评测:保持 query 基本不变,只改变预算、SLA、权限、工具可用性或精度要求,看工具选择是否随约束变化。若不变,说明模型更多在做表面匹配,而不是理解偏好。
看首选工具命中率不够,应同时看端到端任务成功率、平均工具成本、P95 延迟、工具失败率、fallback 成功率、人工纠正率和高风险误调用率。对业务系统还可以看转化、满意度或人工处理节省。