30 秒看懂
在这期 2024 年 3 月的教程中,Matthew Berman 演示 OpenDevin——一个受 Cognition 的 Devin 启发的开源项目——并讲解当时使用 Python、Docker、模型 API 和独立网页前端的本地设置。他的计算器示例和后来的 hello-world 任务既展示进展,也暴露了问题;画面中的一条智能体消息称,它无法通过 HTTP 直接测试计算器界面。该项目后来更名为 OpenHands,因此安装说明反映的是历史情况。视频简介披露 Berman 是 CrewAI 的投资者。
- 1开放的编程智能体项目Berman 介绍 OpenDevin,这是一个受 Devin 演示启发的社区项目,提供代码和工具界面。
- 2计算器示例智能体处理 Python 计算器和 HTML 界面;显示的日志说明通过 HTTP 服务器测试界面时存在限制。
- 3早期安装Berman 克隆代码仓库,创建 Python 环境并准备 Docker。
- 4凭据与依赖他配置模型密钥和工作区,然后解释自己遇到的 Rust 和 orjson 问题。
- 5启动与测试他启动后端和前端服务器,随后发现规划器和浏览器存在问题。
- 6其他模型他讨论服务商设置和与 OpenAI 兼容的本地端点。
要点建议
- OpenDevin 是一个受 Devin 启发的独立开源项目,后来更名为 OpenHands。
- 早期界面将智能体对话与终端、规划器、编辑器和浏览器视图结合在一起。
- Berman 的小型计算器演示只是一个例子,不能证明任意应用都能凭一条提示词可靠构建。
- 他在 2024 年的设置使用 Python 3.10、Docker、API 凭据以及独立的后端和前端进程;当前安装步骤可能不同。
- 他遇到了依赖和后端启动问题,并在测试中发现规划器和浏览器不够可靠。
- Berman 说可以配置与 OpenAI 兼容的本地模型端点,但具体取决于使用的版本和模型。
按章节阅读整理后的全文
OpenDevin 与计算器演示
Berman 介绍这个开源项目及其界面。一个简单计算器示例展示了生成的代码,也暴露了测试限制。
2024 年 3 月,在 Cognition 的 Devin 演示引起关注后,Matthew Berman 介绍了 OpenDevin。他喜欢 Devin 将对话、终端、浏览器和编辑器结合起来的方式,并将 OpenDevin 介绍为受这一界面启发的独立开源项目,而非同一产品或其源代码。
该项目后来更名为 OpenHands,设置方式也在视频录制后不断演变。Berman 的视频简介还披露他是 CrewAI 的投资者。这份演示记录了非常早期的开发版本,以及他遇到的限制。

Berman 让智能体编写一个简单的 Python 计算器。工作区同时显示对话以及终端、规划器、代码编辑器和浏览器标签。他使用 LangChain 智能体和 GPT-4 模型;界面还列出了 CodeAct 选项,他说自己尚未测试过。
智能体检查文件、处理计算器并运行命令。Berman 接着要求创建 HTML 界面,并展示一个他称可以工作的基本计算器。屏幕上的智能体日志也说,它无法通过 HTTP 服务器直接测试该界面,而是检查了代码,因此这个例子不能证明完成了完全自主的端到端验证。

Berman 在本地运行界面,同时使用托管的 GPT-4 模型,并表示可以配置其他兼容模型。他强调,视频录制时项目刚出现几天,功能仍有不少问题,尽管他对开发速度印象深刻。
他提到项目早期在 GitHub 上受到的关注,以及另一个受 Devin 启发的项目 Devika;他此前没能让后者运行起来。随后他开始安装 OpenDevin,并提醒自己遇到的部分问题涉及 Python 包和环境。
准备环境
历史安装流程包括克隆仓库、创建 Python 环境,以及配置 Docker 和模型访问。Berman 描述了特定环境下的依赖问题。
他在 Visual Studio Code 中打开终端、克隆仓库并打开文件夹,然后创建并激活一个名为 od、使用 Python 3.10 的 Conda 环境。这些说明针对演示中的早期版本,并非经过测试的当前项目安装流程。

他使用 docker ps 检查 Docker 是否已安装并运行,必要时安装 Docker Desktop,然后拉取项目的沙箱镜像。他重视容器化执行环境,但仅使用 Docker 并不能保证智能体生成的任意代码都是安全的。
在托管模型的例子中,Berman 创建 OpenAI API 密钥并将其导出为环境变量;他说会撤销演示用密钥。他指出,终端重启后必须重新设置 shell 导出的变量,也提到可以使用本地环境文件作为替代。凭据应保持私密,不应在教程中重现。
他设置工作区目录,并使用当前环境的解释器安装 Python 依赖。为诊断自己电脑上的依赖问题,他检查正在使用哪个 Python。命令和路径反映的是他在 2024 年的特定设置。
Berman 解释说,自己此前因 orjson 依赖需要安装 Rust,并在安装后重启了终端。随后他删除并重新安装 orjson,使用只允许二进制包的 pip 选项,这在他的 Apple Silicon 电脑上解决了问题。他提醒其他机器可能遇到不同错误。
启动和测试应用
他启动后端和前端进程,并尝试一个 hello-world 任务。在他的例子中终端和编辑器可用,但规划器和浏览器存在问题。
他使用 Uvicorn 在 localhost 的 3000 端口启动后端。程序似乎卡住,之后再次尝试才成功启动;他不知道原因。虽然他把 Ctrl-Z 描述为强制退出,但 shell 中通常的行为是暂停前台进程,而不是终止它。
他在另一个终端检查工作目录和环境,进入前端文件夹,用 npm 安装 Node 包,并在 3001 端口启动前端。他打开本地页面,选择 GPT-4,提交一个简单的 hello-world 网站任务。

在他的例子中,智能体创建了 HTML 文件并启动服务器。Berman 发现规划器似乎不可靠,浏览器视图也存在问题;后端日志显示发生错误并退出。他认为这些现象说明这个早期项目很有潜力,但仍存在缺陷。
其他模型与展望
Berman 介绍服务商凭据和兼容的本地端点,鼓励用户尝试。自视频发布以来,功能和设置细节已有变化。
他介绍如何更改模型服务商设置,包括为 Claude 配置 API 密钥和模型名称,或为本地运行的 OpenAI 兼容端点设置基础 URL。他提到 LM Studio 和 Ollama 可以作为本地服务器。兼容性、模型质量和配置取决于项目版本和端点。
Berman 说 Devin 精致的界面令他印象深刻,OpenDevin 的早期进展也令人鼓舞。他邀请用户尝试并报告问题,但他的计算器和 hello-world 例子范围有限,不能证明系统可以可靠、自主地开发任意应用。
同频道的其他文章
34:21EN → 简体中文
0:26EN → 简体中文
0:36EN → 简体中文
0:21EN → 简体中文
25:50EN → 简体中文
32:20EN → 简体中文