XAgent:一种用于复杂任务求解的自治Agent
现实的LLM大模型的不足
- 有限的自主权:受到既有网络环境的约束等
- 缺乏灵活性:常常难以完成复杂的任务。
- 不稳定和不安全:决策和执行过程通常是紧密耦合的,没有明确的分离
- 有限的人机交互:单一的模态
设计框架
双环设计
以前的Agent往往缺乏全局规划的能力,更多地专注于基于预定义策略执行任务
外循环进程用于高级任务管理,内循环进程用于低级任务执行。
- 外循环:任务分片
- 内循环:分片内部的详细步骤制定
外循环处理任务的高级管理和分配,内循环关注每个子任务的低级执行和优化。
外循环
- 初始计划生成:给定一个复杂的任务,使用PlanAgent将其分解为一系列子任务$T=\{T_1,T_2,T_3,…\}$
- 迭代计划优化:
- 从任务栈$T$中弹出第一个子任务
- PlanAgent持续监控任务的进度和状态。
- 内循环报告反馈(继续优化、继续执行)
内循环
- Agent调度与工具检索:根据子任务的性质,将调度一个适当的ToolAgent(专业的工具模型),该ToolAgent具有完成任务所需的能力。
- 调用ToolAgent
- 反馈任务:是否成功
外循环的PlanAgent:动态规划与迭代优化
动态规划可以用来找到最优的生产计划,以最小化成本、最大化效率或满足其他优化目标
- Subtask Split:子任务拆分,通过LLM理解总任务,进行子任务拆分。
- 例如:user问——汇总电子科技大学信软学院的开设专业
- 子任务:电子科技大学信软学院——官网
- 子任务:统计官网的数据
内循环ToolAgent:函数调用中的协同推理与代理
ToolAgent内置一系列工具包 $\{a_1,a_2,…,a_n,…\}$
每一轮生成一个操作$a_i$进行执行,这个操作动态的与上一步的操作结果相关联
如子任务:电子科技大学信软学院——官网,访问失败,那么下一步就到电子科大研究生院访问
【相关技术】——NLP近意匹配
举个例子
用户向XAgent提交了一个iris.zip文件,寻求数据分析方面的帮助。
- 第一步:大循环任务拆解
- (1) 数据检查和理解,
- (2)为相关数据分析库验证系统的Python环境,
- (3)制作用于数据处理和分析的数据分析代码
- (4)根据Python代码的执行结果编写分析报告。
- 第二步:小任务执行
- 例如再第三步,分析数据—被agent关联到
pandas、mathplot
库 - 生成相关代码
- 调用代码运行器执行
- 例如再第三步,分析数据—被agent关联到
评论