揭秘Manus背后的黑科技:CodeAct

近年来,随着大语言模型(LLM)在自然语言处理(NLP)领域的迅猛发展,如何让这些模型更智能、灵活地与环境互动,已成为技术发展的关键挑战之一。Manus团队近期披露了他们的技术创新——CodeAct,代表了一种全新的框架,通过将Python代码引入LLM Agent的操作空间,成功提升了Agent的能力,尤其在复杂任务的执行和多轮交互的效率上取得了显著突破。

使用CodeAct的原因:

  1. 编程不是目的,而是解决通用问题的普适手段:
    编程的最终目标是有效地解决问题,而非仅仅编写代码。CodeAct通过将可执行代码作为工具,赋予LLM Agent更强的适应性,能够动态应对不断变化的任务需求。
  2. LLM在编程方面的优势:
    大语言模型特别擅长编程,尤其是在处理与其训练分布高度相似的任务时。通过让Agent执行与其预训练数据相关的任务,CodeAct能够更好地调动模型的潜力。
  3. 减少上下文长度、组合复杂操作:
    CodeAct通过使用可执行的Python代码,而非传统的JSON或文本格式,大幅度减少了LLM处理的上下文长度。这种方式不仅更紧凑高效,还能将多个复杂操作组合在一起,提高任务的执行效率。

1. 引言

大语言模型的迅猛发展使得其在处理文本方面表现得异常强大,然而将LLM应用于更为复杂的任务(如API调用、内存管理和机器人控制)时,其面临的挑战也日益增多。现有的LLM Agent多通过生成结构化文本(如JSON)来指令执行操作,这种方式在灵活性和扩展性上存在明显短板。

CodeAct的出现,提供了一种创新的解决方案。它通过引入Python代码执行机制,为LLM Agent提供了一个更加通用和动态的行动框架。CodeAct能够在多轮交互过程中通过动态生成和执行Python代码,不仅提升了Agent的灵活性,还能够自动调整执行策略以应对任务中的变化和不确定性。实验结果表明,CodeAct在多个基准测试中取得了显著优势,成功率相比传统方法提升了20%。


2. CodeAct使LLM成为更强的Agent

2.1 什么是CodeAct?

CodeAct是一种通过Python代码执行来扩展LLM Agent能力的多轮交互框架。其核心思想是将Agent与环境的所有互动都转化为Python代码的生成与执行,使得Agent在每次交互中不仅能理解输入,还能动态执行操作并根据反馈进行调整。

在这个框架中,Agent、用户和环境是主要的三方角色。Agent通过与用户或环境的交互接收输入,并生成相应的Python代码进行执行。每次执行之后,Agent会根据代码执行的结果来调整其后续行动。

2.2 CodeAct作为强大的工具使用框架

通过对CodeAct、传统JSON格式和文本格式的对比实验,结果显示CodeAct在多个LLM模型中表现优异。尤其是在开源模型上,CodeAct的优势更加明显,因为这些模型在训练过程中接触过大量的代码数据,因此能够更加高效地理解和执行Python代码。

2.3 CodeAct:用更少的交互完成更多任务

为了进一步验证CodeAct在复杂任务中的表现,研究者开发了一个新的基准测试——M3ToolEval,涵盖了82个复杂任务,要求Agent进行多轮交互和多工具调用。实验结果表明,使用CodeAct后,任务成功率大幅提升,尤其在像GPT-4这样的LLM模型中,任务成功率提高了20.7%,并且平均交互轮次减少了2.1次。

2.4 CodeAct:受益于多轮交互和现有软件包

CodeAct的另一个优势是它能够与现有的Python库和工具集成,执行复杂的任务。例如,CodeAct可以借助Pandas进行数据处理,使用Scikit-Learn进行机器学习建模,或利用Matplotlib进行数据可视化。更为重要的是,CodeAct能够通过多轮交互中的反馈信息进行自我调试,显著提升任务的完成效率和精确度。


3. 赋能开源LLM Agent更好地使用CodeAct

3.1 CodeActInstruct:Agent与环境的交互

为了帮助开源LLM Agent更好地使用CodeAct框架,Manus团队还收集并发布了一个名为CodeActInstruct的指令微调数据集。该数据集包含超过7000条高质量的Agent与环境交互轨迹,涉及信息检索、软件包使用、外部内存访问和机器人规划等领域。通过微调开源模型,CodeActInstruct显著提升了Agent在复杂任务中的自我改进能力。

3.2 CodeActAgent:通过微调提升Agent能力

基于LLaMA-2Mistral-7B等开源模型,Manus团队进一步通过微调CodeActInstruct和通用对话数据,成功构建了CodeActAgent。实验表明,CodeActAgent在使用CodeAct格式时,任务成功率大幅提升。此外,CodeActAgent在传统文本行动格式下也表现出了卓越的泛化能力,展示了它对不同任务的适应性。


4. 相关工作

4.1 LLM Agent中的行动模块

现有的LLM Agent通常包括四个主要组件:定制化配置、长期记忆、推理与规划算法和行动模块。行动模块负责与外部实体(如人类或工具)的互动。在此基础上,CodeAct通过统一的Python代码执行框架,显著提升了LLM Agent的操作空间和灵活性,使其能够更有效地应对复杂任务。

4.2 提升LLM Agent的两种方法

提升LLM Agent能力的两种主要方法包括:提示工程指令微调。提示工程通过设计优化的提示策略提升模型推理能力,而指令微调则通过微调训练数据来增强模型在特定任务中的表现。CodeActInstruct数据集通过收集大量的多轮交互轨迹,提升了LLM Agent在多轮交互中的自我优化和任务处理能力。


5. 结论

CodeAct框架为LLM Agent带来了革命性的提升。通过将所有的行动都转化为可执行的Python代码,CodeAct不仅提高了Agent在多轮交互中的任务成功率,还使得Agent能够动态调整行动,并利用现有的Python工具包进行复杂任务的执行。通过收集CodeActInstruct数据集,并结合开源模型进行微调,Manus团队成功构建了CodeActAgent,展示了其在多个任务中的优异表现。CodeAct无疑为未来的LLM Agent应用提供了更强大的技术支持。


通过CodeAct,Manus不仅将LLM Agent的能力提升到新的高度,还为开源模型的进一步发展提供了坚实的基础。在多轮交互和复杂任务的背景下,CodeAct的创新性和实用性都证明了它的广泛前景,预计将为AI领域的进一步发展注入更多动力。