面试官你好,这道题问的是[[Agent]]的规划能力怎么训练,我觉得它背后真正在问的是:怎么让大模型从“知道该干什么”进化到“能一步一步把事干成”,而且还要应对中途各种意外。规划能力其实有不同层次,最基础的是单步规划,就是当前状态选个工具调用,这个相对简单。再往上走是短程多步,比如3到10步的任务分解执行,很多时候靠[[ReAct]]这类框架就能搞定。最难的是长程复杂规划,开放式问题,走一步看一步,得动态调整策略。这三种场景训练方法不一样,但实际落地时往往是混着用的。
先说[[SFT]]阶段怎么搞。核心就一条:数据质量比数量重要。我见过不少团队拼命堆合成数据,结果模型学了一堆“完美示范”,碰到真实错误就懵了。所以我会优先做两件事:一是收集少量但高质量的人工标注轨迹,尤其是专家在真实API上走完的完整思考-行动-观察循环,这个特别贵但特别值;二是用强模型比如GPT-4做[[蒸馏]],生成带推理过程的解决方案,但一定要人工审核一遍,把那些“看着对但实际走不通”的路径筛掉。数据格式我一般用ReAct结构,强制模型输出Thought→Action→Observation,这样推理链是显式的,后面调优也方便。
接下来是RL阶段,这个更关键。优化策略有两个方向:结果奖励和过程奖励。结果奖励最直观,任务成功就给正分,适合[[PPO]]训练,但问题是中间步骤走歪了也可能蒙对结果,模型学到的是“结果好就行”,过程不一定合理。过程奖励就需要训练一个PRM,每一步评判规划合理性,成本高但效果好。实际项目中我会两者结合:先用结果奖励做一轮粗调,再用过程奖励精修。另外[[DPO]]也挺好用,直接对比好规划与坏规划的轨迹对,训练效率高,特别适合我们这种数据量有限的情况。
测试时扩展这块,最近特别火。比如[[Tree-of-Thoughts]],同时维护多个候选路径,到关键节点就投票或评估选最优,适合那种“一步错步步错”的场景。还有MCTS加LLM,在复杂决策里探索动作空间,像下棋一样算几步,但计算开销很大。我一般只在长程任务里才用,日常短任务用[[Self-Refine]]让模型自己迭代修正就够了。
这里有个落地风险必须提:千万别一开始就上复杂规划。有个常见失败场景是,模型在简单任务上还没走稳,就让它做多步推理,结果错误累积,一步错后面全错。所以我会用课程学习,从单工具调用开始,逐步过渡到多步任务。还有一个容易被忽视的点是工具描述,清晰的工具文档比模型容量更重要,很多失败是因为模型没理解工具边界,不是规划能力差。上线后我还会特别关注实时反馈机制,比如自动验证器发现规划不合理就回退,或者让用户反馈来在线迭代。
其实还有一个延伸方向,就是怎么让规划过程可解释。比如用[[Self-Consistency]]做多轮采样,选最一致的路径,或者用[[Chain-of-Thought]]把每一步的推理理由暴露出来,这样即使任务失败了,也能定位是哪一步出的问题。
所以整体来看,我更倾向于把规划能力训练看作一个系统工程,数据、奖励、搜索策略缺一不可,而且一定要跟业务场景匹配。比如客服退款这种场景,短程多步规划就够用,重点在错误恢复;而企业SOP合规这种长程任务,才需要上MCTS。评估的时候我主要看任务成功率、步骤合理性,还有平均步数和API成本,不能只看一个指标。