该Agent实现了CodeAct的思想(论文,推特),将LLM agents的行为合并到一个统一的代码动作空间中,以实现_简化_和_性能_(详情见论文)。
概念理念如下图所示。在每个回合,Agent可以:
bash命令Python代码。这是通过bash命令模拟的,详细信息请参见插件系统。为了使CodeAct agent在仅能访问bash动作空间时更强大,CodeAct agent利用了OpenDevin的插件系统:
https://github.com/OpenDevin/OpenDevin/assets/38853559/f592a192-e86c-4f48-ad31-d69282d5f6ac
CodeActAgent使用gpt-4-turbo-2024-04-09执行数据科学任务(线性回归)的示例
Action,
CmdRunAction,
IPythonRunCellAction,
AgentEchoAction,
AgentFinishAction,
AgentTalkAction
CmdOutputObservation,
IPythonRunCellObservation,
AgentMessageObservation,
UserMessageObservation
| 方法 | 描述 |
|---|---|
__init__ |
使用llm和一系列信息list[Mapping[str, str]]初始化Agent |
step |
使用CodeAct Agent执行一步操作,包括收集前一步的信息并提示模型执行命令。 |
search_memory |
尚未实现 |
[] 支持Web浏览 [] 完成CodeAct agent提交Github PR的工作流程
Monologue Agent利用长短期记忆来完成任务。 长期记忆存储为LongTermMemory对象,模型使用它来搜索过去的示例。 短期记忆存储为Monologue对象,模型可以根据需要进行压缩。
Action,
NullAction,
CmdRunAction,
FileWriteAction,
FileReadAction,
AgentRecallAction,
BrowseURLAction,
GithubPushAction,
AgentThinkAction
Observation,
NullObservation,
CmdOutputObservation,
FileReadObservation,
AgentRecallObservation,
BrowserOutputObservation
| 方法 | 描述 |
|---|---|
__init__ |
使用长期记忆和内部独白初始化Agent |
_add_event |
将事件附加到Agent的独白中,如独白过长自动与摘要一起压缩 |
_initialize |
使用INITIAL_THOUGHTS列表为agent提供其能力的上下文以及如何导航/workspace |
step |
通过添加最近的动作和观测修改当前状态,然后提示模型考虑其接下来的动作。 |
search_memory |
使用VectorIndexRetriever在长期记忆中查找相关记忆。 |
Planner agent利用特殊的提示策略为解决问题创建长期计划。 在每一步中,Agent会获得其先前的动作-观测对、当前任务以及基于上一次操作提供的提示。
NullAction,
CmdRunAction,
CmdKillAction,
BrowseURLAction,
GithubPushAction,
FileReadAction,
FileWriteAction,
AgentRecallAction,
AgentThinkAction,
AgentFinishAction,
AgentSummarizeAction,
AddTaskAction,
ModifyTaskAction
Observation,
NullObservation,
CmdOutputObservation,
FileReadObservation,
AgentRecallObservation,
BrowserOutputObservation
| 方法 | 描述 |
|---|---|
__init__ |
使用llm初始化Agent |
step |
检查当前步骤是否完成,如果是则返回AgentFinishAction。否则,创建计划提示并发送给模型进行推理,将结果作为下一步动作。 |
search_memory |
尚未实现 |