概述
背景
Agent 开发者通常基于开源模型,通过 SFT(监督微调)、RFT(强化微调) 等微调手段,在特定场景下平衡 Agent 成本、性能与效果。该插件帮助 Agent 开发者便捷、持续地利用在线真实交互数据优化模型与 Agent,打通从生产环境到训练系统的全链路数据闭环,通过在线训练,实现**“Agent 越用越聪明”**。在线训练
在线训练(Online Training)是一种直接在生产环境或接近生产环境的实时系统中,利用真实用户交互数据持续优化智能体(Agent)行为的训练范式。与传统的离线训练(Offline Training)——即先收集历史日志、构建静态数据集、再在隔离环境中训练模型——不同,在线训练强调与真实工具链和用户行为的深度耦合,实现“边运行、边学习、边优化”的闭环。核心特点
1. 复用线上真实工具链 Agent 在训练中可直接调用线上已部署的真实工具(如 API、数据库、业务系统等),无需为训练专门搭建模拟环境或编写 mock 工具。 优势:避免因 mock 工具与线上实际行为不一致导致的”训练-部署偏差”(Reality Gap);大幅降低集成成本,提升训练数据的真实性与有效性。 2. 支持增量学习,快速冷启动 不依赖完整的历史数据集,Agent 可从少量甚至单次真实交互开始学习,适合新上线 Agent 或长尾场景,显著降低启动门槛。约束
默认仅安全支持只读工具 因训练过程可能涉及多次尝试或重放(replay),若直接调用写操作工具(如”下单""扣款""发消息”),可能导致重复执行,引发业务风险。因此,写操作需通过沙箱机制、幂等设计或人工审核等方式额外保障安全性。用户需要自行保证 Agent 使用的工具的安全性。 多轮交互场景需显式建模 当前主流训练框架原生支持用户与 Agent 的单轮交互(用户提问 → Agent 响应)。该轮交互中,Agent 可以和 LLM 有多次交互。 对于多轮对话或复杂任务流(如订机票 → 选座位 → 支付),需开发者额外设计状态管理、用户行为模拟或轨迹采样策略。架构
该方案使用Trinity-RFT作为训练后端进行训练。Trinity-RFT 是一个通用、灵活、用户友好的大语言模型(LLM)强化微调(RFT)框架。 Github地址:https://github.com/agentscope-ai/Trinity-RFT 版本要求:v0.4.0及以上 在线训练模式将 Agent 运行 (Agent Runner)、推理服务 (Explorer) 、训练服务 (Trainer) 三个部分解耦开来:- Agent Runner 负责运行用户的 Agent 应用,处理用户请求,并通过 restful API 与 Explorer 进行交互。该部分由用户自行实现、部署和管理,Trinity-RFT 不对该部分做任何约束。
- Explorer 作为推理服务,处理来自 Agent Runner 的请求,记录可训练数据(Experience),并将数据存储在数据库中。 Explorer 提供以下 Restful 接口供 Agent Runner 调用:
- chat: 兼容标准的 openai chat completions 接口,处理用户的对话请求。
- feedback: 接收用户对 Agent 回答的反馈信息。
- commit: 告知 Explorer 向 Trainer 提交数据。
- Trainer 作为训练服务,从数据库中获取新的训练数据,对模型进行训练,并将更新后的模型检查点存储在共享文件系统中,供 Explorer 使用。
核心功能
本方案通过 AgentScope Java 原生支持端到端在线训练,旨在打通从生产环境到模型优化的全链路闭环,实现以下目标:- 利用线上真实交互数据:Agent 开发者可直接基于生产环境中 Agent 的真实请求调用与工具状态,使用线上的数据进行训练
- 极简使用体验:Agent 开发者仅需提供关键训练配置(如:RL 中的奖励函数),即可自动完成执行、数据收集、训练全流程
- 统一训练接口,覆盖主流优化方法:原生支持监督微调(SFT)、知识蒸馏,以及适用于特定任务的强化学习算法(如PPO),无需切换框架或依赖其他生态
快速开始
Maven 依赖
定义请求筛选逻辑
请求筛选逻辑用于筛选出需要用于训练的请求。内置策略:
SamplingRateStrategy - 随机采样。所有线上请求按照百分比进行筛选。自定义策略
您可以参考SamplingRateStrategy或者ExplicitMarkingStrategy实现TrainingSelectionStrategy接口,并在shouldSelect方法中根据您的业务需求自定义您的请求筛选逻辑。定义奖励函数
您可以实现RewardCalculator接口,并在calculate方法中根据您的业务需求自定义您的奖励计算逻辑。一般而言,奖励为0-1之间的小数。启动训练后端
安装 Trinity
在安装之前,请确保您的系统满足以下要求,推荐使用源码安装:- Python:版本 3.10 至 3.12(含)
- CUDA:版本 >= 12.8
- GPU:至少 2 块 GPU