📄 论文总结
CodeAct:将可执行代码作为语言模型代理的统一动作框架
CodeAct: A Unified Framework for LLM Agents with Executable Code as Actions
1️⃣ 一句话总结
本文提出了CodeAct框架,通过使用可执行的Python代码作为LLM代理的统一动作空间,显著提升了代理在复杂任务中的成功率和灵活性,并发布了配套的指令调优数据集和开源模型。
2️⃣ 论文创新点
1. 代码动作框架
- 创新点是什么:使用可执行的Python代码作为LLM代理的统一动作空间,替代传统的文本或JSON格式
- 与已有方法的区别/改进:解决了传统动作空间受限和灵活性不足的问题,直接利用编程语言的控制流和数据流特性
- 为什么有意义:显著提升代理在复杂任务中的成功率和灵活性,减少动作数量达30%
2. 动态动作调整
- 创新点是什么:通过Python解释器执行代码并根据执行结果动态修订后续动作
- 与已有方法的区别/改进:克服了传统方法无法基于环境反馈调整动作的局限性
- 为什么有意义:使代理能够进行自我调试和适应环境变化
3. CodeActInstruct数据集
- 创新点是什么:包含7k条高质量多轮交互轨迹的指令调优数据集,专门为代码动作代理设计
- 与已有方法的区别/改进:专注于代理与计算环境和物理世界的交互,提供专门的多轮交互数据
- 为什么有意义:可用于提升模型在代理导向任务中的性能而不影响通用能力
3️⃣ 主要结果与价值
实验结果亮点
- 在API Bank基准测试中优于现有方法,成功率提升高达20%
- 在M^3 ToolEval复杂任务基准上,12/17模型的成功率最高,12/17模型的平均交互轮次最低
- GPT-4-1106-preview使用CodeAct相比次优格式有20.7%的绝对提升和2.1轮的平均减少
- CodeActAgent在多个代理任务上超越所有评估的开源LLMs,甚至接近70B模型的性能水平
实际应用价值
- 提供开源CodeActAgent模型和数据集,促进社区发展
- 支持直接使用现有软件包作为工具,减少开发负担
- 在保持或提升通用LLM任务性能的同时,显著提升代理能力
- 为开源LLM社区指明了提升实用性的改进方向
4️⃣ 术语表
- CodeAct:使用可执行Python代码作为LLM代理动作的统一框架,通过代码执行与环境交互
- Python interpreter:集成到框架中的Python解释器,用于执行代码动作和提供反馈
- CodeActInstruct:包含7k条多轮交互轨迹的指令调优数据集,用于训练CodeAct代理
- M^3 ToolEval:评估LLMs在复杂任务中工具使用能力的基准,包含82个人工策划实例,需要多工具多轮调用协调
- MINT:多轮交互任务评估框架,用于生成交互轨迹并确定其正确性,应用于多轮代理任务评估