现实的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
    • 生成相关代码
    • 调用代码运行器执行