26K Star AI 驱动的自主软件工程师平台:编写代码、修复 Bug 和发布功能,Agents 全包了!


今年 3 月份首个 AI 软件工程师 Devin 引爆了 AI 社区,引发了人们对程序员这个职业未来前景的热议。OpenDevin 是一个复刻 Devin 的开源项目,Devin 是一个自主的 AI 软件工程师,能够执行复杂的工程任务,并在软件开发项目上与用户积极合作。
OpenDevin: Code Less, Make More
OpenDevin 架构图
OpenDevin 分为两个主要部分:前台和后台。前台负责处理用户交互和显示结果。后台负责处理业务逻辑和执行代理。
系统架构图OpenDevin 内置的 Agents
一、CodeAct Agent
CodeAct Agent 实现了 CodeAct 理念(论文、推文),将 LLM 代理的操作整合到统一的代码操作空间中,以保证简单性和性能。
CodeAct 的理念如下图所示。在每个回合,代理可以:
Converse:用自然语言与人交流,要求澄清、确认等。
CodeAct:选择通过执行代码来执行任务
执行任何有效的 Linux bash 命令
使用交互式 Python 解释器执行任何有效的 Python 代码,它是通过 bash 命令模拟的。
插件系统
为了使 CodeAct 代理更强大,只需访问 bash 操作空间,CodeAct 代理利用了 OpenDevin 的插件系统:
Jupyter 插件:通过 bash 命令执行 IPython
SWE-agent 工具插件: 由 swe-agent 引入的用于软件开发任务的强大 bash 命令行工具。
使用示例
使用 gpt-4-turbo-2024-04-09 执行数据科学任务的 CodeActAgent 示例(线性回归)
https://github.com/OpenDevin/OpenDevin/assets/38853559/f592a192-e86c-4f48-ad31-d69282d5f6ac
Actions
Action
CmdRunAction
IPythonRunCellAction
AgentEchoAction
AgentFinishAction
AgentTalkAction
Observations
CmdOutputObservation
IPythonRunCellObservation
AgentMessageObservation
UserMessageObservation
Methods
方法 描述
__init__ 使用 llm 和消息列表初始化代理 list[Mapping[str, str]]
step 使用 CodeAct 代理执行一个步骤。这包括收集先前步骤的信息并提示模型执行命令。
search_memory 尚未实现
二、Monologue Agent
Monologue Agent 利用长期和短期记忆来完成任务。长期记忆存储为一个 LongTermMemory 对象,模型利用它来搜索过去的例子。短期记忆存储为 Monologue 对象,模型可根据需要对其进行浓缩。
Actions
Action
NullAction
CmdRunAction
FileWriteAction
FileReadAction
AgentRecallAction
BrowseURLAction
GithubPushAction
AgentThinkAction
Observations
Observation
NullObservation
CmdOutputObservation
FileReadObservation
AgentRecallObservation
BrowserOutputObservation
Methods
方法 描述
__init__ 初始化代理的长期记忆和内部独白
_add_event 将事件添加到代理的独白中,如果独白过长,则自动用摘要进行压缩
_initialize 利用 INITIAL_THOUGHTS 列表为代理提供其能力的上下文,以及如何导航到 /workspace
step 通过添加最新的操作和观察结果来修改当前状态,然后提示模型考虑下一步操作。
search_memory 使用 VectorIndexRetriever 在长期记忆中查找相关记忆。
三、Planner Agent
Planner Agent 利用特殊的提示策略来制定解决问题的长期计划。它会获得之前的动作-观察(action-observation)对、当前任务以及基于每一步最后采取的动作的提示。
Actions
NullAction
CmdRunAction
CmdKillAction
BrowseURLAction
GithubPushAction
FileReadAction
FileWriteAction
AgentRecallAction
AgentThinkAction
AgentFinishAction
AgentSummarizeAction
AddTaskAction
ModifyTaskAction
Observations
Observation
NullObservation
CmdOutputObservation
FileReadObservation
AgentRecallObservation
BrowserOutputObservation
Methods
方法 描述
__init__ 使用 llm 初始化 agent
step 检查当前步骤是否已完成,如果为 True,则返回 AgentFinishAction。否则,创建计划提示并发送给模型进行推理,并将结果添加为下一步操作。
search_memory 尚未实现
OpenDevin 快速上手
运行 OpenDevin 最简单的方法是在 Docker 容器内。您必须使用 Linux、Mac OS 或 Windows 上的 WSL。
要启动应用程序,请运行这些命令,将 $(pwd)/workspace 替换为您希望 OpenDevin 使用的目录。
注意:OpenDevin 在 Docker 沙箱中运行 bash 命令,因此它不会影响您的计算机。但是您的工作区目录将附加到该沙箱,并且该目录中的文件可能会被修改或删除。
docker run \    -it \    --pull=always \    -e LLM_API_KEY \    -e SANDBOX_USER_ID=$(id -u) \    -e WORKSPACE_MOUNT_PATH=$WORKSPACE_BASE \    -v $WORKSPACE_BASE:/opt/workspace_base \    -v /var/run/docker.sock:/var/run/docker.sock \    -p 3000:3000 \    --add-host host.docker.internal:host-gateway \    ghcr.io/opendevin/opendevin:0.5
成功启动 OpenDevin 后,你就可以在浏览器上访问 http://localhost:3000 地址,来使用 OpenDevin。 如果你在部署的过程中,有遇到问题,可以阅读 OpenDevin 提供的 troubleshooting 文档,该文档列举了一些常见的问题。
https://github.com/OpenDevin/OpenDevin往期文章
2024 年最完整的 AI Agents 清单来了,涉及 13 个领域,上百个 Agents!
25.4K Star 低代码LLM编排工具:终于支持 Multi Agent,内置 5 大 Multi Agent 开箱即用!
3 款强大的开源低代码 LLM 编排工具,可视化定制专属 AI Agent 和 AI 工作流!
当 AI 遇上爬虫:让数据提取变得前所未有地简单!
告别传统客服:支持十几个平台的 AI “懒人客服” 来了!
卖货主播大模型开源了,让销冠触手可及!
Kimi+麦肯锡,5 秒摸透一个行业!
Kimi 10 秒生成流程图,别再手动绘图了!
万字长文秒变精华!Kimi 的超强提示词秘籍
阿里开源的自动化视频剪辑工具,太好用了!
欢迎您与我交流 AI 技术/工具‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

关注 AI 真好玩,带你玩转各类 AI 工具,掌控数字未来!
如果这篇文章对您有所帮助,请点赞、关注,并分享给您的朋友。感谢您的支持!
到顶部