# 数据集格式
在模型优化过程中，数据集扮演的角色与传统的大模型指令微调（SFT）有着本质的差别。在这里，数据集承担着"触发"与"校验"的双重核心作用：
1. 触发智能体（通过input）：作为实际的输入指令传递给智能体环境，触发模型开始思考和作答。
2. 提供裁判基准（通过reference_output）：向系统的"奖励计算中心"提供高质量参考答案，在规则奖励场景下需与模型输出精确匹配，在生成式奖励场景下作为裁判模型打分的参考基准。
![](https://support.huaweicloud.com/ops-agentarts/public_sys-resources/note_3.0-zh-cn.png)
- **模型优化所需的数据集为单轮数据集。**即使优化目标是插件、MCP工具能力下的多步工具调用，训练数据仍采用单轮数据集。这里的"多步工具调用"指的是Agent在处理一次用户输入时，可能与插件、MCP发生多次交互；这些中间轨迹由平台在训练过程中在线生成，无需您在数据集中手工编写多轮调用过程。
- 您完全不需要提供任何中间的推理过程，只需提供input和reference_output，模型优化算法在训练时确实会审视Agent的中间过程数据（比如是否正确调用了工具、是否生成了完整的思维链），但这些过程数据是模型在接收到question后，**在平台环境中自主动态生成的（试错轨迹）**，而不是由您在数据集中提前写好的。您只管出题和给最终答案，探索解题步骤的工作交由算法自动完成。
 
#### 数据集格式与示例
数据集采用标准的JSONL格式，数据集可以在Agentarts平台上直接创建，可以通过Trace数据回流成数据集，或手动创建。数据集中每行代表一条独立的测试用例，必须包含以下两个核心字段：
- input（输入）：Agent接收到的用户提问。
- reference_output（期望输出/基准答案）：您期望该Agent**最终给出的高质量参考答案**。
如何判断我的业务属于哪类场景？关键看模型最终输出的形态：
- 输出是自然语言文本（无固定格式） → 场景一（开放式问答）
- 输出是一个数值（需数学计算得出） → 场景二（数值类输出）
- 输出是预设的文字标签（如"故障报修"） → 场景三（意图分类）
- 输出是预设的数字ID或状态码（如"2"） → 场景四（数字ID类输出）
场景三和场景四的区别仅在于输出是文字还是数字，奖惩配置方式相同（精确匹配奖励）。场景二与场景四的区别在于：场景二的数值需要模型计算得出，推荐使用数学准确性奖励；场景四的数字是预定义的编码，推荐使用精确匹配奖励。
为了让您更好地理解，以下列举了四种最常见业务场景下的数据集构造示例：
**场景一：开放式问答/客服聊天（文本类输出）**
- 特点：输出是一段自然语言，没有绝对唯一的答案格式，重点在于语义正确和逻辑清晰。
- 数据示例：
  ```
  {"input": "你们的退换货政策是什么？", "reference_output": "我们支持自签收之日起7天内无理由退货，15天内非人为损坏换货。请保留原包装及购买凭证。"}
  {"input": "忘记密码怎么办？", "reference_output": "您可以在登录页面单击“忘记密码”，通过绑定的手机号或邮箱获取验证码来重置密码。"}
  ```
  
- 备注：在配置强化学习奖惩机制时，此类数据集通常配合"生成式奖励"使用，reference_output将作为裁判大模型打分的参考基准。详见[开放式问答场景](https://support.huaweicloud.com/ops-agentarts/agentarts_14_0118.html)。
**场景二：数据计算/工具参数提取（数值类输出）**
- 特点：模型需要进行复杂的思考，但最终落脚点是一个明确的数值。
- 数据示例：
  ```
  {"input": "请帮我计算底面半径为3，高为4的圆柱体体积（保留两位小数，π取3.14）", "reference_output": "113.04"}
  {"input": "将二进制数 1011 转换为十进制", "reference_output": "11"}
  ```
  
- 备注：示例中reference_output写明最终数值。训练时，系统可通过正则提取模型长篇大论中的数值进行比对。详见[工具调用/数学计算场景](https://support.huaweicloud.com/ops-agentarts/agentarts_14_0117.html)。
**场景三：意图分类与路由（标签类输出）**
- 特点：使用工作流中的意图识别节点。系统输入用户的自然语言诉求，要求模型从预设的分类列表中挑选出一个最匹配的文字标签输出。
- 数据示例：
  ```
  {"input": "我家里的宽带从今天早上开始就完全连不上了，光猫一直闪红灯。", "reference_output": "故障报修"}
  {"input": "请问你们的尊享版套餐每个月包含多少流量？", "reference_output": "业务咨询"}
  {"input": "你们这什么破服务，网速太慢了，我要立刻取消订阅！", "reference_output": "投诉退订"}
  ```
  
- 备注：这类场景对输出格式要求较为严格。训练时可以通过配置正则表达式进行"精确匹配奖励"，要求模型输出结果与reference_output的文字100%吻合。详见[意图识别/分类场景](https://support.huaweicloud.com/ops-agentarts/agentarts_14_0116.html)。
**场景四：状态判断与分支控制（数字ID类输出）**
- 特点：在某些工作流中，下游程序（如API触发器）只认机器代码或状态码。这就要求模型根据输入，严格输出对应的状态码或数字ID。
- 数据示例：
  ```
  {"input": "我的手机卡突然没信号了，重启了好几次也没用，是不是欠费停机了？", "reference_output": "2"}
  {"input": "我想把现在这个套餐流量升级一下，现在的每个月都不够用。", "reference_output": "3"}
  ```
  
- 备注：在此类场景下，模型输出的数字将决定工作流的下一步走向。配置模型优化任务时同样建议使用正则进行"精确匹配奖励"，确保输出的纯净度。数字ID类输出的奖惩配置与意图分类场景类似，同样使用精确匹配奖励，详见[意图识别/分类场景](https://support.huaweicloud.com/ops-agentarts/agentarts_14_0116.html)。
关于如何构造高质量的数据集，请参考[高质量数据集标准](https://support.huaweicloud.com/ops-agentarts/agentarts_14_0101.html)。
