华为开发者空间云开发环境部署OpenHands,解锁AI赋能的高效编程搭档
本案例通过华为开发者空间 - 云开发环境部署OpenHands平台,并接入华为MaaS提供的DeepSeek-R1模型,体验探索OpenHands如何从繁重的代码中解放我们的双手。
一、概述
1. 案例介绍
华为开发者空间,是为全球开发者打造的专属开发者空间,致力于为每位开发者提供一台云主机、一套开发工具和云上存储空间,汇聚昇腾、鲲鹏、GaussDB、欧拉等华为各项根技术的开发工具资源,并提供配套案例指导开发者 从开发编码到应用调测,基于华为根技术生态高效便捷的知识学习、技术体验、应用创新。
OpenHands(原 OpenDevin)是一个由 AI 驱动的软件开发代理平台,OpenHands 代理可以完成人类开发者能做的所有事情:修改代码、运行命令、浏览网页、调用 API,甚至还能从 StackOverflow 复制代码片段。
本案例通过华为开发者空间 - 云开发环境部署OpenHands平台,并接入华为MaaS提供的DeepSeek-R1模型,体验探索OpenHands如何从繁重的代码中解放我们的双手。
2. 适用对象
- 企业
- 个人开发者
- 高校学生
3. 案例时间
本案例总时长预计60分钟。
4. 案例流程

说明:
- 领取代金券开通华为云MaaS DeepSeek-R1服务;
- 创建并远程连接华为开发者空间 - 云开发环境;
- 安装OpenHands平台;
- OpenHands接入华为云MaaS DeepSeek-R1模型;
- 新建对话,体验OpenHands功能。
5. 资源总览
本案例预计花费0元。
资源名称 | 规格 | 单价(元) | 时长(分钟) |
---|---|---|---|
华为开发者空间 - 云开发环境 | 鲲鹏通用计算增强型 kc1 | 2vCPUs | 4G | HCE | 免费 | 60 |
最新案例动态,请查阅 《华为开发者空间云开发环境部署OpenHands,解锁AI赋能的高效编程搭档》。小伙伴快来领取华为开发者空间进行实操吧!
二、环境准备
1. 开通MaaS DeepSeek-R1服务
1.1 领取代金券和购买套餐包
华为开发者空间为开发者带来百万Token代金券福利,点击领取链接,按照指引进行代金券的领取和套餐包的购买,本案例推荐使用DeepSeek-R1。

1.2 开通商用模型服务
代金券领取完毕后前往ModelArts Studio进行商用模型开通。进入MaaS控制台页面,点击在线推理 -> 商用服务 -> 开通模型服务,这里以DeepSeek-R1-64K,然后点击一键开通。
注意:步骤1.1中若是购买的DeepSeek-R1-64K套餐包,在MaaS中开通时请开通DeepSeek-R1-64K,同理若购买DeepSeek-V3-64K时,请开通DeepSeek-V3-64K。
1.3 获取模型调用参数
这里拿DeepSeek-R1-64K模型为例,开通完毕后点击调用说明,版本选择DeepSeek-R1主推版,进入页面后点击OpenAI SDK可以看到API地址和model参数。
点击API Key管理,进入页面后,点击右上角创建API Key,标签和描述可以自定义,输入完毕后点击创建。(注意:创建好的API Key只会显示这一次,请妥善保存)
2. 创建并连接云开发环境
2.1 创建云开发环境
登录华为开发者空间,进入开发平台-云开发环境,点击新建开发环境参考以下参数配置创建,点击确定。
配置项 | 配置说明 |
---|---|
环境名称 | 自定义 |
开放端口 | 支持范围8080-8089,最多可以配置5个端口,默认22已开放。这里推荐配置8081,8082,8083,8084,8085 |
默认账号 | 默认developer,保持默认即可 |
密码 | 自定义 |

在操作列点击更多-开机。

2.2 连接云开发环境
云开发环境创建后,点击远程连接,下载本地环境对应的客户端,这里以Windows x64环境为例。

客户端配置华为云账号的密钥(AK/SK)信息(AK是Access Key ID,SK是Secret Access Key),在开华为云控制台我的凭证页面创建访问密钥,可以参考获取AK/SK文档。

在客户端工具所在目录打开cmd命令窗口,输入hdspace config,配置Access Key ID和Secert Access Key。

配置完成后可以查看云开发环境实例ID。
hdspace devenv list

新建隧道,使用本地端口(这里使用1234,可变更)映射云开发环境的22端口,用于远程连接云开发环境。
hdspace devenv start-tunnel --instance-id=***********(云开发环境实例ID) --local-port=1234
新建终端命令窗口,远程连接云开发环境(developer是创建云开发环境时设置的默认账户)。
ssh developer@127.0.0.1 -p 1234

*注意:由于使用cmd终端命令窗口会频繁断开重连,可以参考《本地CodeArts IDE基于华为开发者空间云开发环境完成小游戏开发》案例的“1. 下载CodeArts IDE并安装RemoteShell插件”和“2. 连接云开发环境”步骤实现CodeArts IDE for Python连接云开发环境。

三、 安装OpenHands平台
远程连接到云开发环境后,在云开发环境中安装OpenHands。
1. 安装docker
在云开发环境中下载并解压docker环境安装包。
wget https://dtse-mirrors.obs.cn-north-4.myhuaweicloud.com/case/0054/docker-install.zip
unzip docker-install.zip
执行安装脚本。
cd docker-install
sudo bash ./install_docker.sh

配置镜像加速。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://22fe11df4d7841bb8ca3e8fe24f477ee.mirror.swr.myhuaweicloud.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://docker.1ms.run",
"https://hub-mirror.c.163.com",
"https://docker.1panel.live"
]
}
EOF
重启容器。
sudo systemctl restart docker

2. 部署OpenHands平台
拉取镜像,会要耗费一定时间。
sudo docker pull docker.all-hands.dev/all-hands-ai/runtime:0.55-nikolaik

运行服务。这里端口映射选择本地的8085端口,保证在创建云开发环境时开放端口范围内,以便后续对云开发环境端口创建隧道,访问OpenHands 图形界面。
sudo docker run -it --rm --pull=always \
-e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.55-nikolaik \
-e LOG_ALL_EVENTS=true \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ~/.openhands:/.openhands \
-p 8085:3000 \
--add-host host.docker.internal:host-gateway \
--name openhands-app \
docker.all-hands.dev/all-hands-ai/openhands:0.55

本地创建隧道,使用本地端口(这里使用5000,可变更)映射云开发环境的8085端口,用于通过本地访问云开发环境部署的OpenHands。
hdspace devenv start-tunnel --instance-id=***********(云开发环境实例ID) --remote-port=8085 --local-port=5000

以上步骤都完成后,我们就可以在本地浏览器访问http://127.0.0.1:3000访问OpenHands图形界面。

3. 配置模型
首次打开应用时,系统会提示您选择 LLM 提供商并添加 API 密钥。。这里可以先配置任意填写API Key,然后点击Save保存。
接入前面开通的MaaS DeepSeek-R1模型,在OpenHands图形界面点击左下角设置,在LLM配置页,开启高级配置并配置模型信息。配置参考:
配置项 | 配置说明 |
---|---|
Advanced | 开启 |
Custom Model | 这里填:openrouter/DeepSeek-R1,DeepSeek-R1为1.3 获取模型调用参数步骤中的model参数 |
Base URL | 1.3 获取模型调用参数步骤中的API地址 |
API Key | 1.3 获取模型调用参数步骤中的API Key |
模型名称 | 1.3 获取模型调用参数步骤中的model参数 |
其他 | 保持默认 |

模型添加完成点击右下角Save Changes按钮保存。
4. 体验OpenHands
模型配置完成后,回到主页,点击Launch from Scratch开启一个新的对话。

启动需要等待几分钟,我们可以看到OpenHands对话界面一些关键性:
- 聊天面板:显示用户和OpenHands之间的对话以及OpenHands在这里解释它的操作;
- Changes:显示OpenHands执行的文件更改记录;
- VS Code:嵌入式VS Code用于浏览和修改文件;
- Terminal:一个供OpenHands和用户运行终端命令的空间;
- Jupyter:显示OpenHands执行过的所有Python命令,便于使用OpenHands执行数据可视化任务;
- App:作为OpenHands运行应用程序时显示web服务器,使用户可以与运行中的应用程序进行交互;
- Browser:用于OpenHands浏览网站,是非交互式的。
等待启动完成提示"Agent is awaiting user input"即可进行对话,如:“用python写一个简单的oa系统首页并运行,然后在浏览器访问展示效果。”
可以在聊天面板看到OpenHands的操作及解释,可以在Changes看到文件更改记录。

在Terminal看到OpenHands运行的终端命令输出。

最后可以在Browser看到生成的OA系统首页效果。(如果出现不成功情况可以重复提问)
至此,该案例到这里就完成啦。
更多的OpenHands功能探索,可以访问:https://docs.all-hands.dev/usage/getting-started
更多推荐
所有评论(0)