大语言模型(LLM)智能体能够执行广泛的操作,如调用工具和控制机器人,在解决现实世界挑战方面展现出巨大潜力。LLM 智能体通常被提示以预定义格式生成 JSON 或文本形式的动作,但这种方式往往受限于受限的动作空间(例如,预定义工具的范围)和受限的灵活性(例如,无法组合多个工具)。
本工作提出使用可执行的 Python 代码将 LLM 智能体的动作整合到统一的动作空间(CodeAct)中。与 Python 解释器集成后,CodeAct 能够执行代码动作,并通过多轮交互在新观察出现时动态修订先前动作或发出新动作。
研究团队在 API-Bank 和一个新构建的基准上对 17 个 LLM 进行了广泛分析,结果显示 CodeAct 显著优于广泛使用的替代方案(成功率最高提升 20%)。基于 CodeAct 的优异表现,团队构建了一个开源 LLM 智能体,通过与执行可解释代码的环境交互,并使用自然语言与用户协作。为此,他们收集了一个指令微调数据集 CodeActInstruct,包含 7k 次多轮交互。实验表明,该数据集可与现有数据结合使用,在面向智能体的任务中提升模型性能,同时不损害其通用能力。
最终发布的 CodeActAgent 基于 Llama2 和 Mistral 微调而成,集成了 Python 解释器,专为使用现有库执行复杂任务(如模型训练)和自主自我调试而定制。