DEV Community

Zhaopeng Xuan
Zhaopeng Xuan

Posted on

S1 - agent0 curriculum agent / AgentEvolver Self-question/CuES在测试用例生成时的比较

方面 Agent0 Curriculum Agent AgentEvolver Self-Question CuES
环境信息依赖 系统角色定义:需要人工定义一个系统角色,例如“你是一个数学专家, 出数学相关的题目” 环境配置信息:需要人工定义一个环境的profile,例如包含环境里的entities, 并且需要参考环境中的seed_task作为示例task(并不直接执行seed_task) 环境的概念池: 需要从环境中的seed tasks中提取概念
环境锚定策略 n/a 在生成探索prompt时,使用env_profile作为环境的描述。 并且使用环境中的种子问题作为在探索时的示例问题: 例如“用户可能会问: [种子问题]” 在生成探索prompt时,环境内自带的system prompt将会被用于环境的描述
task合成路径 直接通过被训练的基座模型前向传播,生成包括task和预测的final anwser 4阶段:
- 探索阶段:根据env_profile来引导生成不同的trajectories
- 合成阶段: 根据env_profile和trajectories来反推出sythetic tasks(包含query, confidence, ground_truth/action_sequence)
- 过滤阶段:过滤掉重复的任务/没有预测答案的任务, 最后无法执行或执行失败的任务
- 改写ground_truth阶段:在过滤时,如果任务成功执行,则通过真实执行的traj改写合成任务的ground_truth
4阶段:
- 探索阶段:根据concept pool和人工探索方向来为每一步生成3元组合(s, a, o)
- 合成阶段:根据同一个env_id下生成的多个[(s1,a1,o1),(s2,a2,o2)]三元组合反推出sytehtic tasks(包含 query, description, confidence, ground_truth/action_sequence)
- 过滤阶段: 过滤掉无法执行或执行失败的任务
- 扩展阶段:将成功执行的sythetic task的query进行相同语意下的难易度改写,扩展合成task的数量
引导信号 根据被测agent的反馈,计算4种reward的信号:
- reward of unconsistency
- reward of correct format
- reward of tool_usage
- penalty of repetit questions
使用GRPO更新curriculum agent的权重(policy)来引导他创建出新的task
循环往复,不断根据reward提升task的生成能力
使用高温LLM在规定的env_profile的指引下进行探索, 在探索时期,通过prompt控制广度探索和深度探索

在生成阶段通过trajectory, 之前找到的新task, 还有env_profile来引导
通过conept pool和人工提供的探索方向,引导在规定的范围内探索,通过exploration_memory优先探索之前未探索的

在生成阶段,通过env_description(沙盒的system prompt) 和exploration_memory还有triplets来引导生成

在扩展阶段,根据prompt进行相同语义不同难度的改写
合成的task的
难易程度控制 通过self-consistency的阈值来控制 通过在prompt中的exploration principals来控制,从广度到深度的扩展 通过对成功执行的sythetic task的query进行相同语义不同难度的改写
任务演化逻辑 Adversirial RL自学习, 通过GRPO计算advantage, 进行反向传播 静态生成,通过不断生成的trajectory作为上下文,来提供经验来学习 静态生成后,通过exploration memory和triplets作为上下文,来提供自我学习,然后动态通过query改写的方法提供不同难度的任务(任务语义不变)
有效测试的定义 让被测agent感到模糊的测试用例 物理上可执行且符合难易程度的ground_truth 用例 物理上可执行且符合难易程度的ground_truth 用例

Top comments (0)