最近在一个需要提升转化率的短会话场景进行调研,技术路线规划是从 Agentic SFT 过渡到 Agentic RL。目前,SFT 阶段的工作已构思得比较完善,并取得了一些阶段性成果。本文将分享一些实践中的思考与发现,希望能引发更多讨论。
01 Agentic SFT 到底要学什么
Agentic SFT 的目标,远不止让模型“会回答问题”。它要求模型在多轮交互中同时掌握四项核心能力:
- 持续理解用户目标并维护跨轮状态:能够跟踪对话历史,理解用户的真实意图演变。
- 在合适的时机决定是否调用工具:具备判断力,知道何时需要借助外部工具,何时仅通过对话就能推进。
- 正确地产生参数、解释结果并承接下一轮:能规范地调用工具、解析返回结果,并基于此生成自然的后续回应。
- 在长程任务中保持“进度感”:清楚当前任务进展到了哪一步,接下来还需要做什么。
相关研究为此提供了理论支撑。Review-Instruct 指出,传统的单轮 SFT 会限制模型在多轮对话中的上下文连贯性;CoALM 进一步说明,一个真正的智能体需要同时具备多轮对话管理能力和工具使用能力,单独优化任何一边都是不够的。
PARL-MT 则补充了关键一点:仅有局部正确的工具调用还不够,模型还必须具备进度感知能力,才能在多轮任务中保持全局一致性。
因此,Agentic SFT 的本质,是将训练的基本单元从“单轮问答”升级为“带状态推进的多轮智能体轨迹”。
02 什么样的轨迹值得学
我们可以将 Agentic SFT 的数据样本定义为一个统一的结构:
样本 = 任务目标 + 工具集合/环境约束 + 多轮对话历史 + 每轮 agent 行为轨迹 + 工具执行结果 + 终局状态/成功标记
在这个定义下,高质量数据的生产可以分为三个层次:
1. 种子任务层
这一层需要定义的是用户意图、场景约束、候选工具以及成功条件。通常从原子任务出发,再通过启发式规则组合成复合任务,从而天然覆盖“多步骤、多工具、多约束”的复杂场景。对于业务智能体,这一层对应着真实的用户意图分布、工具接口、业务规则和典型任务链路。
2. 轨迹生成层
这一层生成的不是单轮的标准答案,而是完整的多轮交互轨迹。目前有两条技术路线值得借鉴:
- Review-Instruct 的 Ask–Respond–Review 路线:先生成对话,再通过“评审者”的反馈反复提升对话的难度、多样性和连贯性。其价值在于将“能否自然地将对话延续下去”纳入了数据生成过程。
- BUTTON/MAGNET 的环境交互式合成路线:让模拟用户、助手和工具在一个可执行的环境中互动,获取真实的工具输出结果,并基于此继续下一轮交互。这条路线更适合智能体训练,因为它显式地保留了“工具结果如何影响下一轮行为”这一关键信息。
3. 进度建模层
许多方法简单地将多轮数据重构为独立的单轮样本,这忽略了任务级的规划和历史总结。有研究专门引入了进度感知生成,让数据中明确包含“过去做了什么、现在处于哪一步、下一步该做什么”的信息,这对于训练模型的长程规划能力至关重要。
03 如何把控数据质量
Agentic SFT 的数据质量控制,不能只停留在文本质量的过滤,还必须进行轨迹质量的过滤:
- 结构合法性:检查工具名是否存在、参数是否符合接口定义、返回值能否被后续轮次正确引用。应将函数调用的正确性转化为可执行、可自动化检查的问题。
- 多轮连贯性:判断当前轮次的回应是否真正依赖于上文。如果删除历史对话后当前回答依然成立,那这就是一个“伪多轮”样本。研究表明,保留真实跨轮依赖的多轮数据,其训练效果远优于改写成独立单轮的数据。
- 任务推进性:评估每一轮交互是否在切实推动任务向前发展,而不是原地打转或重复询问。可以设定规则:每一轮必须新增状态信息、缩小问题解空间、触发必要工具或生成可复用的中间结论。
- 工具必要性:判断当前轮次是否真的有必要调用工具。要避免数据过度鼓励“逢问必调”的行为,一个好的智能体必须学会判断何时该调用工具,何时该先通过对话进行澄清。
04 如何监督训练样本
Agentic SFT 的监督学习目标,应该是“决策过程中的关键节点”,而不仅仅是最后一句自然语言回复。具体包括:
- 动作:教导模型在何时调用何种工具。
- 基于观察的回应:教导模型如何理解和利用工具返回的结果。
- 摘要/进度状态:教导模型如何压缩历史信息并规划下一步。
需要注意的是,并非所有“思维链”内容都适合原样作为监督信号。更稳健的做法通常是监督那些可操作、可验证的中间状态,例如槽位/状态值、工具调用理由、下一步计划、回合摘要等,而不是强依赖于冗长的自由文本推理链。这样做既能使训练更稳定,也更容易与具体的业务规则对齐。
05 训练策略
1. 冷启动模型
SFT 常被视为一种“记忆”过程。我们首先使用高质量、多轮、可执行的任务轨迹数据对模型进行冷启动,使其获得基础的多轮对话和工具调用能力。Review-Instruct、BUTTON、CoALM 等方法都属于这一阶段的代表。
2. 课程化混训
借鉴课程学习的思想,训练应从短链路、低歧义、单工具的简单样本开始,逐步过渡到长链路、多约束、多工具、多轮追问的复杂样本。这种由简入繁的方式有助于模型更稳健地学习复杂的智能体行为空间。
3. 面向长程任务的增强
最后,需要针对历史信息压缩、进度感知和长程依赖等能力进行专项增强训练。研究表明,单纯增加对话轮数并不等于模型学会了长程规划;必须显式地教导模型如何总结历史、衔接后续步骤、理解跨轮的工具依赖关系。
06 Agentic 效果评估
当前,关于智能体评估正在形成一些共识:
第一层共识:评测必须基于多轮上下文。 不能再把多轮问题拆分成独立的单轮样本来评估。这样做会丢失任务进度感、历史总结能力和长程依赖,无法真实反映多轮智能体的能力。
第二层共识:评测需覆盖工具使用的完整生命周期。 不能只看“是否调对了工具”,还要评估从发现工具、选择工具、执行工具到基于结果回应用户的完整链路。评测集应设计为覆盖智能体与工具交互的各个阶段。
第三层共识:评测应尽量在可执行或半可执行环境中进行。 多轮评测集不应只是“静态问答题”,而应让模型在一个能持续交互、状态可变的环境中被测试,以暴露其在动态场景中的真实问题。
第四层共识:评测需兼顾对话能力与智能体能力。 评测集如果只侧重任务导向对话或只侧重函数调用,都会导致能力评估出现偏差。一个优秀的智能体必须同时擅长多轮对话管理和工具使用。
如何设计多轮评估集?
核心在于:固定任务目标、状态转移规则、工具集和成功条件,而允许用户话语在一定范围内变化。
- 固定的部分:任务最终目标、可用工具集、每一轮的状态转移逻辑、任务完成/失败的定义、每一轮正确的下一步动作。
- 可变的部分:用户表达同一信息的具体方式(口语化、省略、代词指代),以及是否引入如中途修改需求、预算等轻微扰动。
这种设计既能保证评测的可复现性和可判分性,又能通过语言多样性避免模型仅仅记忆固定话术。对于工具调用正确性、参数填充、状态追踪等可验证维度,应优先使用结构化或可执行的硬指标;对于回复自然度、用户体验等软性维度,则可辅以LLM-as-a-judge进行评估。
实践案例分享
在一次具体的销售场景智能体项目中,我们进行了如下实践:
数据集:使用大模型对线上真实对话数据进行单侧改写与截断(约2万个会话),以拟合线上用户嘈杂、多样的真实意图分布。此外,补充了约4千条通用对话数据,并复用了约2千条标准的函数调用数据。
SFT训练:基于swift库进行全量、轻度的SFT,训练约1个epoch,并划分验证集进行监控。
基础模型选择:初期使用Qwen-8B进行训练,模型已能学到不错的交互范式。后切换至Qwen-32B,结果令人惊喜——在挖掘用户需求、引导留资、对话类人感等多个维度上,其表现显著超过了经过专家Prompt精心调校的豆包模型。
测评与迭代:我们采用了硬指标(函数调用格式、依赖正确性)和软指标(需求承接、留资推进、安全性)相结合的评估方式。在跑完整体指标后,一个关键发现是:在同一情境下,模型可能存在多种都合理的行为路径。例如,面对价格敏感的用户,既可以先抛出通用优惠,也可以先引导用户澄清具体需求再给出精准方案。
基于此,我们反向分析了一批类似案例,有针对性地补充了多路径策略数据并重新训练,旨在覆盖销售领域中可行的策略空间。这为后续基于真实用户偏好反馈进入RL阶段创造了条件。
本文关于Agentic SFT的探讨源于个人在特定业务场景下的探索与实践,其中涉及的数据集与训练细节因公司要求无法公开。此次分享的重点在于梳理技术文档中常被忽略的系统性思路与关键陷阱,希望能为同行提供一些有价值的参考。未来工作将转向多模态方向,期待在云栈社区与大家继续交流。