跳到正文

Agent 工具调用训练数据怎么构建?

正负样本、成功失败轨迹及 SFT、偏好训练、在线 RL 的数据边界

原题:在使用强化学习训练Agent调用工具的过程中,如何构建和优化训练数据?请说明正负样本、成功/失败轨迹的数据配比策略及其对训练稳定性与效果的影响。

RLHF与对齐 · 阶跃星辰真题

回答与解析

训练工具调用Agent时,数据单位不是孤立问答,而是完整轨迹。每一步要记录可见观测、模型动作、工具名与参数、权限检查、工具真实返回、错误类型、重试、最终结果和终止原因。缺少真实工具反馈,只保留一段看似合理的思考文本,会让模型学不到环境状态变化。

正轨迹应覆盖不同任务路径和边界条件,不只是最短成功案例;负轨迹要按可修复失败分类,例如工具选择错、参数错、权限不足、结果解析错、无效重试、超时和提前终止。对负样本可提供正确恢复动作或成对偏好,让模型学会发现并修复错误,而不是只学会把失败拒绝掉。

正负比例没有通用常数。早期策略成功率低时,原始rollout可能充满重复失败,需要保留有信息的失败并补充示范;策略变强后,又要增加难例、分布外和安全失败覆盖。采样应根据当前成功率、失败类型覆盖、奖励方差和关键风险动态调整,而不是固定某个成功与失败比。

还要区分训练阶段。行为克隆或SFT使用筛选后的动作示范,偏好训练使用可比较的轨迹对,在线RL则从当前或近当前策略与真实环境交互获得数据。把在线RL简化成监督样本配比会忽略策略分布、重要性偏差和环境反馈。离线轨迹也应记录生成策略版本。

奖励可以结合任务成功、工具验证器、成本和安全约束,但代理信号必须防止作弊。代码工具要用隐藏测试,检索任务要检查引用是否支持结论,带副作用操作要在沙箱或审批下执行。不能只用格式正确或工具调用次数作为成功。

评测时我会在未见任务和真实工具环境中报告最终成功率、恢复率、无效调用、成本、延迟与约束违例,并按失败类型看覆盖。训练数据版本、环境版本和策略版本都要可追溯。比例只是实现参数,真正目标是让数据持续覆盖当前策略最有价值且风险最高的决策边界。

口语版讲法(约4分钟)

  • 定义轨迹schema
  • 按失败类型构造负样本
  • 说明比例依策略分布变化
  • 区分监督与在线RL数据
  • 建立离线与真实环境验收

训练工具调用Agent时,数据单位不是孤立问答,而是完整轨迹。每一步要记录可见观测、模型动作、工具名与参数、权限检查、工具真实返回、错误类型、重试、最终结果和终止原因。缺少真实工具反馈,只保留一段看似合理的思考文本,会让模型学不到环境状态变化。

正轨迹应覆盖不同任务路径和边界条件,不只是最短成功案例;负轨迹要按可修复失败分类,例如工具选择错、参数错、权限不足、结果解析错、无效重试、超时和提前终止。对负样本可提供正确恢复动作或成对偏好,让模型学会发现并修复错误,而不是只学会把失败拒绝掉。

正负比例没有通用常数。早期策略成功率低时,原始rollout可能充满重复失败,需要保留有信息的失败并补充示范;策略变强后,又要增加难例、分布外和安全失败覆盖。采样应根据当前成功率、失败类型覆盖、奖励方差和关键风险动态调整,而不是固定某个成功与失败比。

还要区分训练阶段。行为克隆或SFT使用筛选后的动作示范,偏好训练使用可比较的轨迹对,在线RL则从当前或近当前策略与真实环境交互获得数据。把在线RL简化成监督样本配比会忽略策略分布、重要性偏差和环境反馈。离线轨迹也应记录生成策略版本。

奖励可以结合任务成功、工具验证器、成本和安全约束,但代理信号必须防止作弊。代码工具要用隐藏测试,检索任务要检查引用是否支持结论,带副作用操作要在沙箱或审批下执行。不能只用格式正确或工具调用次数作为成功。

评测时我会在未见任务和真实工具环境中报告最终成功率、恢复率、无效调用、成本、延迟与约束违例,并按失败类型看覆盖。训练数据版本、环境版本和策略版本都要可追溯。比例只是实现参数,真正目标是让数据持续覆盖当前策略最有价值且风险最高的决策边界。

构造负轨迹时还要避免泄露答案。若直接把正确动作附在模型可见上下文里,训练指标会虚高。可以从真实失败中抽取状态,提供经审核的恢复目标,并确保评测环境隐藏后续结果。对于不可逆工具,失败数据应来自模拟器或脱敏回放,不能为了采样让线上系统承担风险。

关键一句:为什么在线RL数据质量不能化约为固定正负轨迹比例。

核验来源

  1. D4RL: Datasets for Deep Data-Driven Reinforcement Learning
  2. WebGPT: Browser-assisted question-answering with human feedback
  3. Toolformer: Language Models Can Teach Themselves to Use Tools

面试官还可能这样问

  1. 问法 1 · 场景切入

    假设你在做一个智能客服Agent,需要调用天气API、订单查询和退款工具。用户说‘帮我查订单’然后又说‘退款’,Agent先查了订单但工具参数传错了,最后失败。这种失败样本你怎么收集和利用来改进训练数据?

  2. 问法 2 · 层层追问

    RL训练Agent调用工具时,数据从哪里来?……正负样本怎么定义?……那正负样本比例怎么配?配多了负样本会怎样?

  3. 问法 3 · 直球架构

    在RL训练工具调用Agent时,请说明训练数据的构建方案,包括正负样本来源、成功/失败轨迹的配比策略,以及这些配比对训练稳定性和效果的具体影响。

同模块相关题目