智能体强化学习
智能体强化学习用交互任务的反馈训练行动策略,学习对象是一段观察、行动和结果组成的轨迹。
理解与应用
智能体强化学习让模型在与环境的连续交互中学习如何行动。模型看到当前观察,选择查询、调用工具或回复,环境再返回新状态和奖励。优化的对象通常是一段任务的累计回报,而不是单独模仿一条标准回答。它适合可以反复运行、观察结果并提供反馈的任务环境。
例如训练报销查询助手时,环境给出“这笔报销为什么一直没到账”。一种轨迹先查状态,发现被退回,再读退回原因,最后要求更正发票;另一种轨迹在多份无关制度之间来回搜索。即使两条轨迹最后都答对,完成用时和无关调用也可能不同,奖励可以把这些差异带入学习。
训练过程需要采集轨迹、计算反馈、更新策略,再在未参与训练的任务上评估。最终获得成功奖励,不代表每个中间动作都必要;某次失败也可能只是测试服务超时,而非策略选错工具。把环境版本、工具返回值和终止原因记录下来,有助于区分这些情况。这种“哪些动作对结果有贡献”的难题就是信用分配的一部分。
强化学习始终围绕给定奖励优化。如果评分只看有没有出现“已解决”字样,模型可能学会声称解决,而不是完成查询。因此训练需要可信的结果校验,探索也应在受控环境中进行。权限限制由运行系统执行,不能因为越权动作偶尔能获得更高任务分数,就让训练绕过它。
动手试一试:一条查询轨迹怎样得到累计回报
前两步设置了调用成本,最后一步设置成功奖励;折扣因子使更远的奖励权重降低。代码只计算一条人工轨迹的回报,没有更新策略,也不能说明训练后会选择怎样的工具顺序。
将代码保存为 example.py,使用 Python 3.10+ 运行 python3 example.py。仅使用标准库,无需密钥,不会调用外部模型。
Python 代码
actions = ["查询报销状态", "读取退回原因", "正确解释所缺发票"]
rewards = [-0.1, -0.1, 1.0]
gamma = 0.9
returns = []
value = 0.0
for reward in reversed(rewards):
value = reward + gamma * value
returns.append(value)
returns.reverse()
for action, value in zip(actions, returns):
print(f"{action}:{value:.2f}")运行结果
查询报销状态:0.62 读取退回原因:0.80 正确解释所缺发票:1.00
常见误区
- 奖励增长不必然意味着真实任务完成得更好,也可能暴露了评分漏洞。
- 终局成功无法直接证明每次中间调用都有价值,需要进一步分析轨迹。
- 把真实交易或高权限系统直接作为探索环境,会把训练试错变成实际副作用。
前置与延伸
建议先读
相关概念
参考与版本
Apollo 原创讲解与教学示例。参考资料用于核对技术定义;核验日不代表资料的发布日期。
- Microsoft Agent Lightning ↗
核对官方实现将智能体运行轨迹与训练模块衔接的定位;不声称任意工具环境可直接无改造训练。 · 核验:2026-10-10
- Spinning Up:Key Concepts in RL ↗
核对状态/观测、策略、轨迹、奖励与回报的定义;标准库示例是离散算例。 · 核验:2026-10-10