狂揽60k star,AI编程开发的“新王者”诞生?
OpenHands是一款开源的AI开发助手,能够自动化完成代码修改、网页交互、信息检索等软件开发任务。核心功能包括:1.通过自然语言解析自动修改代码;2.使用Headless浏览器实现网页自动化测试;3.集成StackOverflow查询解决开发问题;4.支持Git、Docker等多种开发工具链。通过Docker部署后,开发者只需输入自然语言指令,OpenHands就能生成并运行代码,显著提升开发
OpenHands(前身为OpenDevin)是一个由AI驱动的开源软件开发代理平台,旨在通过自动化软件开发任务来提高开发效率。
该项目由All-Hands-AI团队开发,在GitHub上已获得超过60k star,成为当前最受关注的开源AI开发工具之一。
简介
OpenHands 智能体可以完成人类开发者能做的所有事情:修改代码、运行命令、浏览网页、调用 API,甚至还能从 StackOverflow 复制代码片段。

核心功能
1. 代码自动修改与优化
OpenHands最强大的能力之一是能够理解和修改现有代码。它通过以下流程实现代码自动化修改:
-
• 自然语言解析: 开发者用自然语言描述修改需求,如"将
UserService.ts中的fetch改成axios,并加上3次重试逻辑" -
• AST分析: 使用插件对目标文件进行静态分析,构建调用路径图
-
• 上下文补全: 自动检索StackOverflow等资源获取相关代码示例
-
• 补丁生成: 调用LLM生成代码
diff/patch -
• 安全执行: 自动备份原文件后应用修改,支持回滚
这种能力特别适合重复性代码修改、库/框架迁移和代码优化等场景。
2. 网页交互与自动化测试
OpenHands内置了完整的网页自动化能力:
-
• DOM解析: 使用headless浏览器(
Puppeteer)提取DOM树,通过文本匹配、属性筛选和XPath/CSS Selector定位元素 -
• 行为模拟: 支持点击、填写、拖动、滚动和提交表单等操作
-
• 状态验证: 通过DOM变更监听和回调结果检测确保操作正确性
这使得OpenHands能够自动完成Web应用的测试用例,或执行如数据抓取等重复性网页操作任务。
3. 智能信息检索与集成
OpenHands原生集成了StackOverflow的实时查询接口,实现了:
-
• 智能检索: 当检测到开发需求中的不确定性表述时,自动查询相关解决方案
-
• 上下文适配: 判断检索到的代码片段是否匹配当前项目风格和技术栈
-
• 安全集成: 将适配后的代码精准插入项目,并记录来源以便审计
这一功能显著降低了开发者的学习成本和信息获取门槛。
4. 多工具链协同
OpenHands通过插件系统整合了各类开发工具:
-
• 版本控制(Git)
-
• 包管理器(npm/pip等)
-
• 测试框架
-
• 构建工具
-
• 容器化工具(Docker)
这种协同能力使其能够处理从代码修改到构建部署的完整开发流程。
部署使用
安装与配置
1. 环境要求:
操作系统: 支持Linux、Mac OS以及Windows(通过WSL运行)。
软件依赖: 核心依赖为Docker环境,推荐使用Docker 26.0及以上版本。确保本地已安装Git,用于获取项目代码。
2. 安装步骤:
安装Docker Desktop: 根据操作系统类型,前往Docker官网下载并安装对应的Docker Desktop版本。对于Windows用户,安装过程中需注意配置WSL(Windows Subsystem for Linux),以确保Docker能够正常运行。
拉取OpenHands镜像: 打开终端,执行命令docker pull docker.all-hands.dev/all-hands-ai/runtime:0.28-nikolaik,从镜像仓库拉取OpenHands的Docker镜像。
3. 配置模型:
选择语言模型提供商: OpenHands支持多种大语言模型,如Anthropic的Claude 3.5 Sonnet等。用户根据需求选择合适的模型。
获取并输入API密钥: 前往所选模型的官方网站,注册账号并获取API密钥。在OpenHands平台的配置界面中,输入获取到的API密钥,完成模型配置。
使用步骤
启动服务:
在终端中执行以下命令启动OpenHands服务:
docker pull docker.all-hands.dev/all-hands-ai/runtime:0.28-nikolaik
docker run -it --rm --pull=always \
-e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.28-nikolaik \
-e LOG_ALL_EVENTS=true \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ~/.openhands-state:/.openhands-state \
-p 3000:3000 \
--add-host host.docker.internal:host-gateway \
--name openhands-app \
docker.all-hands.dev/all-hands-ai/openhands:0.28
此命令将创建一个Docker容器并启动OpenHands应用,将本地的workspace目录挂载到容器内的/opt/workspace_base目录,映射容器的3000端口到本地的3000端口。
访问界面:
启动成功后,打开浏览器,访问http://localhost:3000,即可进入OpenHands的Web交互界面。
示例预览
输入提示词请求,让他使用HTML创建一个简单的计算器,点击生成,可以看到右侧出现了相应文件的代码

在输入框中让它运行这个项目,可以看到在对话框中输出了链接

验证一下这个简单的计算器生成是否正确,这里我使用VsCode打开并运行代码。

一个简易的计算器就生成好了,如果不满意就可以回到OpenHands,继续输入要求生成新的代码。

开源地址
https://github.com/All-Hands-AI/OpenHands
更多推荐


所有评论(0)