从智能体Trace中回流数据集
从已运行的Agent调用链日志(Trace)中提取数据是优化模型“实战能力”的最佳途径。但这也是开发者最容易踩坑的环节。
核心风险与避坑说明
- 如果您是因为Agent当前表现不佳才进行模型优化,这意味着Trace中记录的原始回复大概率是包含错误、格式混乱或带有废话的。
- 强化学习要求数据集中的答案字段必须是100%的绝对正例。如果直接将错误的Trace原始输出作为答案送入训练,会导致模型“把错误当真理”,引发灾难性的能力崩塌。请务必在回流数据后执行步骤二:剔除劣质数据、重构答案。
正确的数据回流与重构流程
步骤一:回流Trace数据形成初始数据集
步骤二:剔除劣质数据,重构答案。
重构答案是构建数据集的核心步骤,需要由业务人员对数据集进行校验,对错误答案进行更正。同时真实的Trace数据中可能存在大量高度重复的提问。回流时需进行聚类去重,确保有限的数据集容量能覆盖尽可能多的句式和场景。
步骤一:回流Trace数据形成初始数据集
当您的智能体通过API调用时,平台的“观测”模块会通过Trace(调用链)记录每一次交互产生的数据。在平台左侧导航栏中选择“观测与优化 > 观测”,在“调用链分析”页面可查看详细的数据。
在筛选数据时,您会看到四种Span类型:
- Root Span:代表从用户发起提问,到智能体给出最终回答的端到端完整生命周期中各个节点的数据。
- Model Span:代表调用了模型的节点所产生的数据。
- ALL Span:包含当前Trace下的所有埋点记录汇总(包括Root、Model、以及底层的工具请求、知识检索等中间过程)。
- Tool Span:工具调用节点,适合排查工具执行情况及错误原因。
建议使用Root Span进行数据回流,因为Root Span记录了从用户提问到最终回答的端到端数据,与数据集的input/reference_output字段直接对应。
在执行回流数据集操作时,平台会提供众多的可选字段,您只需要勾选input和output字段回流至数据集即可。
- 登录AgentArts智能体平台。
- 在左侧导航栏中选择“观测与优化 > 评估”,进入“评测集”页签。单击“创建评测集”。 图2 创建评测集
- 填写评测集名称和描述,配置列使用默认设置,不改动。填写完成后,单击“确定”创建评测集。
评测集创建完成后会跳转至添加数据页面,由于本操作使用Trace数据回流方式,不使用手动添加,跳出该页面,返回AgentArts平台首页。
- 返回AgentArts平台首页,在左侧导航栏中选择“观测与优化 > 观测”,进入“调用链分析”页面。筛选出需要回流数据的单智能体或者工作流(优化功能只支持对单智能体、工作流进行优化)。
- 筛选完成数据后,勾选需要回流的数据,单击“添加至评测集”。 图3 添加至评测集
- 选择目标评测集,并选择将input、output字段添加至评测集中。配置完成后,依次单击页面右下方“校验并预览”、“开始导入”,将Trace数据添加至评测集。
操作完成后,返回“调用链分析”页面,继续添加其他数据至数据集。
如果导入失败,请检查Trace数据是否为通过API调用产生的(当前仅支持API调用产生的Trace数据),以及选择的字段是否为input和output。图4 添加至评测集
步骤二:剔除劣质数据,重构答案
请务必逐条校验并更正回流的每一条数据,确保reference_output为100%正确的标准答案。跳过此步骤直接训练可能导致模型能力退化。
校验与重构要点:
在编辑数据前,请按以下要点逐条校验:
- 逐条校验reference_output字段:检查Trace回流的output是否为正确答案。如果output包含错误信息、格式混乱或多余废话,必须手动更正为100%正确的标准答案。更正后的reference_output应与您的奖惩机制配置一致。例如意图分类场景下应仅保留纯净的标签文字,删除所有解释性内容。
- 校验input字段:确认问题表述清晰、与真实业务场景一致。
- 删除无效数据:删除Agent运行失败的数据、与业务无关的数据、高度重复的数据。如果存在高度重复的提问,请仅保留表述差异最大的那条,确保有限的数据集容量覆盖尽可能多的句式和场景。
- 将多轮数据修改为单轮:如果某条数据下存在多行数据或多个对话,需修改为单轮。可以保留第一条对话的input作为问题,将其对应的正确答案填入reference_output字段,删除其余对话轮次。
操作步骤:
- 返回AgentArts平台首页,在左侧导航栏中选择“观测与优化 > 评估”,在“评测集”页面单击数据集名称,进入详情页。 图5 查看数据集详情
- 在数据列表中,列表中的每一行代表1条数据。单击操作列的“编辑”,可以修改数据内容。
由于模型优化训练需要单轮数据集,如果在数据列表中某条数据下存在多行数据,或编辑数据时发现有多个对话,即表示该条数据是多轮对话数据,需要修改为单轮。
修改方法:可以保留第一条对话的input作为问题,将其对应的正确答案填入reference_output字段,删除其余对话轮次。
图6 非单轮数据样例
图7 非单轮数据样例
- 数据集修改完成后,单击“提交版本”。 提交版本成功后,数据集状态将变为“已提交”,此时该数据集才可被训练任务引用。图8 提交版本
