一站式了解CodeAct范式
一、概述1. 定义与核心思想2. 功能与主要用途3. 技术特点与优势二、流程三、比较VS 传统方法VS ReAct一、概述1. 定义与核心思想基本定义CodeActCode as Action是一种将可执行代码作为大型语言模型智能体统一行动空间的框架。其核心在于让模型直接生成代码如Python来调用工具、处理数据或进行计算通过执行代码并观察结果形成规划-行动-观察的闭环。设计动机传统智能体使用文本或结构化格式如JSON描述动作在需要组合多个工具、控制数据流或进行复杂逻辑推理的任务中存在局限。CodeAct利用模型在预训练阶段已接触大量代码数据的优势使其能以更自然、更强大的方式解决问题。2. 功能与主要用途CodeAct框架旨在增强LLM智能体解决实际问题的能力主要应用场景包括复杂任务自动化自动完成数据下载、处理、分析与可视化全流程工具调用与组合在代码块中直接导入并使用Python库如Pandas、Scikit-Learn数学与科学问题求解通过生成和执行计算代码解决定量问题交互式自我调试根据代码执行的错误信息自动修正代码3. 技术特点与优势CodeAct的核心优势通用行动空间利用Python语法循环、分支、异常捕获等实现工具串联和中间结果缓存动态适应性通过执行反馈自动修复错误无需重新训练模型自我调试能力利用错误栈回溯快速定位和解决问题高效交互用更少的token表达复杂逻辑减少交互轮次生态复用直接调用现有Python生态工具无需额外适配二、流程CodeAct框架引入Python执行环境作为桥梁设计多轮交互流程接收指令获取用户自然语言输入推理LLM规划任务步骤并生成可执行代码代码执行在安全沙盒中运行代码环境反馈获取执行结果或错误信息调整与回答根据反馈调整策略或输出最终答案该流程持续循环直至任务完成。CodeAct的创新在于让代理通过代码执行自主完成任务显著提升处理复杂任务的效率和灵活性。System Prompt示例You are a helpful assistant assigned with the task of problem-solving. To achieve this, you will be using an interactive coding environment equipped with a variety of tool functions to assist you throughout the process. At each turn, you should first provide your step-by-step thinking for solving the task. Your thought process should be enclosed using thought tag, for example: thought I need to print Hello World! /thought. After that, you have two options: 1) Interact with a Python programming environment and receive the corresponding output. Your code should be enclosed using execute tag, for example: execute print(Hello World!) /execute. 2) Directly provide a solution that adheres to the required format for the given task. Your solution should be enclosed using solution tag, for example: The answer is solution A /solution. You have {max_total_steps} chances to interact with the environment or propose a solution. You can only propose a solution {max_propose_solution} times. {tool_desc} --- {in_context_example} --- {task_prompt}CodeAct将行动从结构化报文升级为完整编程语言实现生成-执行-调试-再生成闭环释放LLM的编程潜能为复杂场景的自主决策提供可落地、可维护、可扩展的解决方案。三、比较VS 传统方法与传统文本或JSON动作格式相比CodeAct优势显著更高成功率与效率在M³ToolEval等基准测试中表现更优支持复杂控制流天然支持循环、条件判断和变量存储复用软件生态直接调用海量Python包和库对开源模型增益明显提供更自然的动作表达方式VS ReAct本质区别ReAct是通用行为范式规定思考→行动→反馈的循环逻辑CodeAct是具体实现方案用Python代码作为执行手段核心改进复杂逻辑表达直接编写多步骤联动代码无需分步执行工具扩展性直接接入Python生态无需额外封装调试能力通过精准错误日志自主修改代码工具组合在一段代码中集成多个工具功能简化开发