摘要:OpenHands(前身为OpenDevin)是一个由AI驱动的开源软件开发代理平台,旨在通过自动化软件开发任务来提高开发效率。
OpenHands(前身为OpenDevin)是一个由AI驱动的开源软件开发代理平台,旨在通过自动化软件开发任务来提高开发效率。
该项目由All-Hands-AI团队开发,在GitHub上已获得超过60k star,成为当前最受关注的开源AI开发工具之一。
01
简介
OpenHands 智能体可以完成人类开发者能做的所有事情:修改代码、运行命令、浏览网页、调用 API,甚至还能从 StackOverflow 复制代码片段。
02
核心功能
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)这种协同能力使其能够处理从代码修改到构建部署的完整开发流程。
03
部署使用
安装与配置
环境要求:操作系统: 支持Linux、Mac OS以及Windows(通过WSL运行)。
软件依赖: 核心依赖为Docker环境,推荐使用Docker 26.0及以上版本。确保本地已安装Git,用于获取项目代码。
安装步骤:安装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镜像。
配置模型:选择语言模型提供商: OpenHands支持多种大语言模型,如Anthropic的Claude 3.5 Sonnet等。用户根据需求选择合适的模型。
获取并输入API密钥: 前往所选模型的官方网站,注册账号并获取API密钥。在OpenHands平台的配置界面中,输入获取到的API密钥,完成模型配置。
使用步骤
启动服务:
在终端中执行以下命令启动OpenHands服务:
docker pull docker.all-hands.dev/all-hands-ai/runtime:0.28-nikolaikdocker 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,继续输入要求生成新的代码。
04
开源地址
来源:不秃头程序员