大型语言模型(LLM)代理具有广泛的能力,例如调用工具和控制机器人,显示出在应对现实世界挑战方面的巨大潜力。LLM代理通常被提示生成JSON或以预定义格式的文本来执行操作,这通常受到受限制的行动空间(例如,预定义工具的范围)和受限制的灵活性(例如,无法组合多个工具)的限制。本文提出使用可执行的Python代码将LLM代理的行动整合到一个统一的行动空间(CodeAct)中。CodeAct与Python解释器集成,可以执行代码操作,并通过多轮交互动态修改先前的操作或发出新的操作以响应新的观察结果。我们对17个LLM在API-Bank和一个新的策划基准上进行了广泛的分析,结果表明CodeAct的表现优于广泛使用的替代方案(成功率高达20%)。CodeAct的良好表现激励我们构建一个开源的LLM代理,它通过执行可解释的代码与环境进行交互,并使用自然语言与用户进行协作。为此,我们收集了一个指令调整数据集CodeActInstruct,其中包括使用CodeAct进行的7k多轮交互。我们展示它可以与现有数据一起用于在面向代理的任务中改进模型,而不会影响其通用能力。CodeActAgent从Llama2和Mistral进行了微调,集成了Python解释器,并具有独特的定制功能,可以使用现有库执行复杂任务(例如,模型训练)并自主进行调试。
提问交流