Executable Code Actions Elicit Better LLM Agents

TL;DR

提出基于可执行Python代码的LLM代理框架CodeAct,通过集成Python解释器显著提升多任务复杂场景下的成功率(最高提升20%),并构建开源模型实现自主调试与协作。

cs.CL 🟡 进阶级 2024-02-02 600 引用 72 次浏览
Xingyao Wang Yangyi Chen Lifan Yuan Yizhe Zhang Yunzhu Li Hao Peng Heng Ji
大规模语言模型 代码执行 多任务交互 工具调用 自我调试

核心发现

方法论

本文提出的CodeAct框架通过让LLM生成可执行的Python代码作为行动表达,结合Python解释器实现动态调整和多轮交互。具体方法包括:• 以Python代码替代传统的文本或JSON格式,增强控制流程和数据复用能力;• 利用预训练模型中丰富的代码知识,提升复杂任务的执行效率;• 设计多轮交互机制,使模型能根据环境反馈自主调试和优化行为。通过在API-Bank和新构建的M3ToolEval基准上对17个LLM模型进行评估,验证了CodeAct在成功率和交互效率方面的优越性。

关键结果

  • 在API调用任务中,CodeAct在17个模型中表现优异,成功率最高提升20%,尤其在复杂多工具任务中效果显著,明显优于JSON和文本格式的行动方案。
  • 在新构建的82任务M3ToolEval基准上,CodeAct实现了最高的成功率(最高达74.4%),同时平均交互轮次减少至7.7轮,显示出在多轮复杂任务中的高效性和自主调试能力。
  • 基于LLaMA2和Mistral的微调模型CodeActAgent,结合Python环境实现模型自主调试和复杂任务执行,验证了其在模型训练、数据可视化等实际应用中的潜力,表现出优异的任务完成率和自我修正能力。

研究意义

该研究突破了传统LLM行动空间受限的问题,通过引入可执行代码极大增强模型的表达能力和操作灵活性,为复杂任务的自动化处理提供了新路径。其在多轮交互、工具整合和自主调试方面的创新,推动了智能代理在机器人控制、科学实验、自动化决策等领域的应用落地,有望引领下一代智能系统的设计范式。

技术贡献

核心技术创新包括:• 提出CodeAct框架,将行动表达从文本/JSON转向Python代码,充分利用预训练模型中的编程知识;• 设计多轮交互机制,实现基于环境反馈的动态调整和自我调试;• 构建大规模指令调优数据集CodeActInstruct,提升模型在复杂任务中的适应能力。实验验证显示,CodeAct在成功率和交互效率方面均优于现有方法,特别是在多工具、多步骤任务中表现出显著优势。

新颖性

本研究首次系统性将可执行Python代码作为LLM行动表达,结合多轮交互和环境反馈机制,突破了以往依赖预定义工具或静态指令的限制。与现有基于文本或JSON的工具调用方法相比,CodeAct利用控制流和数据复用能力,实现了复杂任务的高效执行,展现出在多任务、多工具场景中的巨大潜力。

局限性

  • 尽管CodeAct在多轮交互中表现优异,但在极端复杂环境或极大规模任务中,模型仍可能受到计算资源限制和调试效率瓶颈的影响,未来需优化代码生成的效率和鲁棒性。
  • 目前主要在Python环境下验证,其他编程语言的适配和跨语言调用仍需探索,限制了其在异构系统中的应用范围。
  • 模型对环境反馈的依赖较大,若环境反馈不准确或延迟,可能影响整体性能,未来需增强模型对不确定信息的鲁棒性。

未来方向

未来将探索多语言支持,扩展CodeAct在不同编程环境中的适用性;结合强化学习优化代码生成策略,提升自主调试效率;开发更丰富的任务场景和应用案例,推动工业界和科研领域的落地应用。同时,结合硬件控制和传感器信息,推动物理世界中的自主智能代理发展。

AI 总览摘要

随着大规模语言模型(LLMs)在自然语言处理领域的突破,其在多任务、多工具环境中的应用潜力日益凸显。然而,传统的行动表达方式,如预定义的文本或JSON格式,受限于行动空间的狭窄和灵活性的不足,难以应对复杂的、多步骤的任务。为解决这一瓶颈,本文提出了基于可执行Python代码的行动框架——CodeAct。该框架通过让LLM生成Python代码,结合Python解释器实现动态调整和多轮交互,从而显著提升任务成功率和交互效率。

在技术实现上,CodeAct利用模型预训练中丰富的代码知识,将行动转化为控制流和数据复用的代码段,支持复杂逻辑的表达。通过多轮交互,模型可以根据环境反馈自主调试和优化行为,极大增强了自主性和适应性。实验中,作者在API-Bank和新构建的M3ToolEval基准上对17个不同的LLM模型进行了评估,结果显示,CodeAct在成功率方面最高提升20%,在复杂多工具任务中表现尤为优越。

此外,作者还构建了指令调优数据集CodeActInstruct,包含7000条多轮交互轨迹,用于微调模型,提升其在实际应用中的表现。基于此,开发了开源的CodeActAgent,结合Python环境实现模型自主调试和复杂任务执行,如模型训练和数据可视化,展现出强大的实际应用潜力。

这项工作不仅突破了传统行动空间的限制,也为智能代理在机器人控制、科学实验、自动化决策等领域的落地提供了新思路。未来,作者计划扩展多语言支持,结合强化学习优化代码生成策略,推动物理世界中的自主智能系统发展。整体而言,CodeAct为大规模语言模型赋能,开启了智能代理新时代。

深度分析

研究背景

近年来,随着GPT、PaLM等大规模预训练模型的崛起,LLMs在自然语言理解和生成方面取得了巨大突破。早期工作主要集中在文本生成和问答任务,随后逐步扩展到工具调用、环境控制等多模态、多任务场景。代表性研究包括Toolformer、LangChain等,它们通过提示工程或链式推理实现模型对API的调用,但仍受限于预定义的操作空间和缺乏动态调节能力。近年来,代码生成模型如Codex、PaLM-Coder的出现,为模型赋予了编程能力,极大丰富了行动表达的形式。尽管如此,现有方法多依赖静态指令或手工设计的工具集,难以应对复杂、多步骤的任务需求。本文的创新在于将行动表达转向可执行的Python代码,结合多轮交互和环境反馈,突破了这一限制,推动智能代理向更高层次的自主性迈进。

核心问题

传统的LLM行动表达方式如文本或JSON格式,虽然便于设计和解析,但在处理复杂任务时表现出明显不足。具体表现为:• 行动空间受限,难以实现工具的组合和控制流程的复用;• 缺乏动态调整能力,不能根据环境反馈实时修正行为;• 多轮交互时,信息传递效率低,导致任务完成率下降。这些限制严重制约了LLMs在机器人控制、科学实验、自动化决策等实际场景中的应用潜力。解决方案需要在行动表达的表达能力、交互机制和环境适应性方面做出突破。

核心创新

本文的核心创新在于:1)提出CodeAct框架,将行动表达从文本/JSON转向Python代码,充分利用预训练中的编程知识,增强控制流和数据复用能力;2)设计多轮交互机制,使模型能根据环境反馈自主调试和优化行为;3)构建大规模指令调优数据集CodeActInstruct,提升模型在复杂任务中的适应性。这些创新点共同实现了模型在多工具、多步骤任务中的高效执行和自主调节能力,显著优于现有的静态指令和工具调用方法。

方法详解

  • �� 以Python代码作为行动表达,模型生成代码片段,涵盖控制结构(如if、for)和变量存储;• 结合Python解释器执行代码,获取环境反馈(如错误信息、输出结果);• 设计多轮交互机制,模型根据反馈调整代码或生成新代码,实现动态调节;• 通过大规模指令调优数据集CodeActInstruct,微调模型以增强其代码生成和调试能力;• 在API-Bank和M3ToolEval上进行评估,比较不同模型和行动格式的性能表现。

实验设计

采用API-Bank作为基础测试平台,评估模型调用API的正确率,比较CodeAct、JSON和文本三种行动格式的表现。引入新构建的M3ToolEval,包含82个多步骤、多工具的复杂任务,测试模型在多轮交互中的成功率和交互轮次。实验中,评估模型在不同规模(7B到70B参数)下的表现,分析CodeAct在复杂任务中的优势。还通过微调模型(如LLaMA2、Mistral)构建CodeActAgent,验证其在模型训练、数据可视化等实际应用中的能力。所有实验均采用标准指标(成功率、交互轮次、误差等),确保结果的可靠性。

结果分析

实验结果显示,CodeAct在API调用任务中成功率最高提升20%,在复杂多工具任务中成功率达74.4%,平均交互轮次减少至7.7轮。微调后的CodeActAgent在模型训练和数据处理任务中表现出自主调试和高效执行能力,验证了其实际应用潜力。不同模型间的性能差异也揭示了模型预训练中代码知识的影响,强调了微调和数据集设计的重要性。整体而言,CodeAct显著优于传统文本/JSON方案,特别在多步骤、多工具场景中展现出巨大优势。

应用场景

  • �� 机器人控制:利用CodeAct生成控制指令,实现自主导航和任务执行;• 科学实验:自动调试实验流程,优化参数配置;• 自动化决策:在金融、医疗等领域实现复杂决策支持。未来,结合硬件传感器和实时反馈,推动自主机器人和智能系统的发展。

通俗解读 非专业人士也能看懂

想象你在厨房做菜,传统的方法就像按照菜谱一步步操作,每次只能用一种调料或工具,不能灵活组合。而现在,假如你能写一段小程序,告诉厨房机器人用“这个调料”和“那个工具”来做菜,还能根据味道调整用料,甚至自己修正错误。这个程序就像Python代码一样,能控制厨房里的每个动作,让机器人变得更聪明、更灵活。这样一来,不管做多复杂的菜,机器人都能自己调配、调整,甚至帮你改菜谱。这个想法,就是把复杂任务变成一段段可执行的代码,让AI像厨师一样自主操作,效率和效果都大大提升。

简单解释 像给14岁少年讲一样

你知道吗?以前的智能机器人就像是听话的助手,只能按照固定的菜谱做事,遇到新菜或者出错就不知道怎么办。而现在,科学家们想让它们变得更聪明,就像给它们写一段小程序,让它们自己决定用什么工具、怎么做菜,还能根据味道调整。比如,它可以用Python写的代码,告诉机器人“先用勺子搅拌,然后尝试加点盐,如果味道不好就自己再调试”。这样一来,机器人就像个聪明的厨师,能自己修正错误,做出更好吃的菜。这项研究就是让AI学会用代码自己操作,从而变得更聪明、更自主,能帮我们完成更复杂的任务,比如控制机器人、做科学实验,甚至帮忙规划旅行。

原文摘要

Large Language Model (LLM) agents, capable of performing a broad range of actions, such as invoking tools and controlling robots, show great potential in tackling real-world challenges. LLM agents are typically prompted to produce actions by generating JSON or text in a pre-defined format, which is usually limited by constrained action space (e.g., the scope of pre-defined tools) and restricted flexibility (e.g., inability to compose multiple tools). This work proposes to use executable Python code to consolidate LLM agents' actions into a unified action space (CodeAct). Integrated with a Python interpreter, CodeAct can execute code actions and dynamically revise prior actions or emit new actions upon new observations through multi-turn interactions. Our extensive analysis of 17 LLMs on API-Bank and a newly curated benchmark shows that CodeAct outperforms widely used alternatives (up to 20% higher success rate). The encouraging performance of CodeAct motivates us to build an open-source LLM agent that interacts with environments by executing interpretable code and collaborates with users using natural language. To this end, we collect an instruction-tuning dataset CodeActInstruct that consists of 7k multi-turn interactions using CodeAct. We show that it can be used with existing data to improve models in agent-oriented tasks without compromising their general capability. CodeActAgent, finetuned from Llama2 and Mistral, is integrated with Python interpreter and uniquely tailored to perform sophisticated tasks (e.g., model training) using existing libraries and autonomously self-debug.

cs.CL cs.AI

参考文献 (20)

TaskWeaver: A Code-First Agent Framework

Bo Qiao, Liqun Li, Xu Zhang 等

2023 100 引用 ⭐ 高影响力 查看解读 →

Measuring Coding Challenge Competence With APPS

Dan Hendrycks, Steven Basart, Saurav Kadavath 等

2021 1247 引用 ⭐ 高影响力 查看解读 →

Mistral 7B

Albert Qiaochu Jiang, Alexandre Sablayrolles, Arthur Mensch 等

2023 3815 引用 ⭐ 高影响力 查看解读 →

Llama 2: Open Foundation and Fine-Tuned Chat Models

Hugo Touvron, Louis Martin, Kevin R. Stone 等

2023 18008 引用 ⭐ 高影响力 查看解读 →

MINT: Evaluating LLMs in Multi-turn Interaction with Tools and Language Feedback

Xingyao Wang, Zihan Wang, Jiateng Liu 等

2023 357 引用 ⭐ 高影响力 查看解读 →

ToolLLM: Facilitating Large Language Models to Master 16000+ Real-world APIs

Yujia Qin, Shi Liang, Yining Ye 等

2023 2087 引用 ⭐ 高影响力 查看解读 →

Describe, Explain, Plan and Select: Interactive Planning with Large Language Models Enables Open-World Multi-Task Agents

Zihao Wang, Shaofei Cai, Anji Liu 等

2023 511 引用 查看解读 →

WebShop: Towards Scalable Real-World Web Interaction with Grounded Language Agents

Shunyu Yao, Howard Chen, John Yang 等

2022 1306 引用 查看解读 →

Code as Policies: Language Model Programs for Embodied Control

Jacky Liang, Wenlong Huang, F. Xia 等

2022 1777 引用 查看解读 →

Scaling Instruction-Finetuned Language Models

Hyung Won Chung, Le Hou, S. Longpre 等

2022 4382 引用 查看解读 →

Code4Struct: Code Generation for Few-Shot Event Structure Prediction

Xingyao Wang, Sha Li, Heng Ji

2022 128 引用 查看解读 →

PAL: Program-aided Language Models

Luyu Gao, Aman Madaan, Shuyan Zhou 等

2022 813 引用 查看解读 →

ViperGPT: Visual Inference via Python Execution for Reasoning

D'idac Sur'is, Sachit Menon, Carl Vondrick

2023 852 引用 查看解读 →

ReAct: Synergizing Reasoning and Acting in Language Models

Shunyu Yao, Jeffrey Zhao, Dian Yu 等

2022 10452 引用 查看解读 →

Self-Consistency Improves Chain of Thought Reasoning in Language Models

Xuezhi Wang, Jason Wei, Dale Schuurmans 等

2022 7499 引用 查看解读 →

ScienceWorld: Is your Agent Smarter than a 5th Grader?

Ruoyao Wang, Peter Alexander Jansen, Marc-Alexandre Côté 等

2022 300 引用 查看解读 →

Training language models to follow instructions with human feedback

Long Ouyang, Jeff Wu, Xu Jiang 等

2022 23541 引用 查看解读 →

Chain of Thought Prompting Elicits Reasoning in Large Language Models

Jason Wei, Xuezhi Wang, Dale Schuurmans 等

2022 21261 引用 查看解读 →

CoAuthor: Designing a Human-AI Collaborative Writing Dataset for Exploring Language Model Capabilities

Mina Lee, Percy Liang, Qian Yang

2022 565 引用 查看解读 →

WebGPT: Browser-assisted question-answering with human feedback

Reiichiro Nakano, Jacob Hilton, S. Balaji 等

2021 2024 引用 查看解读 →

被引用 (20)

The Path to Self-Evolving Clinical Systems: Scaling Medical Agents from Assistance to Autonomy

2026 ⭐ 高影响力 查看解读 →

Evo-Bench: Can Language Models Improve Agent Harness?

2026 ⭐ 高影响力 查看解读 →

Self-Evolving Coding Agents

2026 ⭐ 高影响力 查看解读 →

DiDPO: Diff-in-Diff Policy Optimization for Coding Agent Training

2026 ⭐ 高影响力 查看解读 →

A Systematic Evaluation of Trajectory Data Curation for LoRA Fine-Tuning of Code Agents

2026 ⭐ 高影响力 查看解读 →

HiRA: Decoupling Planning and Execution with Hierarchical Reasoning in Deep Search

2026

Multi-Agent LLM Collaboration for Unit Test Generation via Human-Testing-Inspired Workflows

Eluna: An Agentic LLM System for Automating Warehouse Operations with Reasoning and Task Execution

2026 1 引用 查看解读 →

Harness VLA: Steering Frozen VLAs into Reliable Manipulation Primitives via Memory-Guided Agents

2026 5 引用 查看解读 →

From Atomic Actions to Standard Operating Procedures: Iterative Tool Optimization for Self-Evolving LLM Agents

2026 1 引用 查看解读 →

Agentic Service-Oriented Computing: A Manifesto for the Next Frontier of Service-Oriented Computing

Large Language Models for Quantum Software Engineering: Opportunities and Challenges in Modeling, Generation, Testing, and Repair

2026

TRACE: Turn-level Reward Assignment via Credit Estimation for Long-Horizon Agents

2026 3 引用 查看解读 →

MM-ToolSandBox: A Unified Framework for Evaluating Visual Tool-Calling Agents

RoboHarness: Memory-Driven Orchestration of Heterogeneous Robot Policies for Long-Horizon Planning

NVIDIA-labs OO Agents: Native Python Object-Oriented Agents

LLM-Supervised Point Cloud Processing: From Unsupervised 3D Scene-Graph Generation to Interactive Scene Manipulation

2026

OpenForgeRL: Train Harness-native Agents in Any Environment

2026 2 引用 查看解读 →

Agent Team Work Zone: An Automated, Persistent Workspace for Long-Lived Claude Code Agent Teams

2026 1 引用 查看解读 →

StateAct: Program State, before Pixels, for Long-Horizon Computer-Use Agents