CodeAct Agent 是 OpenHands 的核心组件之一,其设计理念在于将所有 LLM 代理的行为统一归纳到一个“代码”操作空间中,从而实现更简洁、高效的执行方式。受 CodeAct 概念(参考论文与相关推文)的启发,该代理能够在与人类进行自然对话的同时,直接执行代码操作,从而在任务处理上既实现了自然语言交流,又兼顾了直接代码执行的能力。
在每轮交互中,该代理可选择以下两种主要模式之一:
-
对话模式
代理可与用户进行自然语言交流,用以询问澄清问题、进行确认或请求更多细节,帮助更好地理解任务需求或解决不明确之处。 -
代码执行模式
代理根据任务需求,直接通过执行代码来完成相应操作,具体包括:- 运行任何合法的 Linux bash 命令;
- 通过模拟 IPython 的交互式 Python 解释器(实际上通过 bash 命令来模拟)运行有效的 Python 代码。
总之,CodeAct Agent 使代理可以将语言指令“转化”为具体代码操作,从而在同一个系统中统一管理对话与代码执行。
内置工具与功能
为了实现上述双重能力,CodeAct Agent 集成了多个内置工具,每个工具承担特定任务:
-
execute_bash
该工具用于运行 Linux bash 命令,具备处理长时间运行命令的能力(自