写点什么

华为开发者空间云开发环境部署 OpenHands,解锁 AI 赋能的高效编程搭档

  • 2025-09-28
    中国香港
  • 本文字数:2967 字

    阅读完需:约 10 分钟

华为开发者空间云开发环境部署OpenHands,解锁AI赋能的高效编程搭档

一、概述

1. 案例介绍

华为开发者空间,是为全球开发者打造的专属开发者空间,致力于为每位开发者提供一台云主机、一套开发工具和云上存储空间,汇聚昇腾、鲲鹏、GaussDB、欧拉等华为各项根技术的开发工具资源,并提供配套案例指导开发者 从开发编码到应用调测,基于华为根技术生态高效便捷的知识学习、技术体验、应用创新。


OpenHands(原 OpenDevin)是一个由 AI 驱动的软件开发代理平台,OpenHands 代理可以完成人类开发者能做的所有事情:修改代码、运行命令、浏览网页、调用 API,甚至还能从 StackOverflow 复制代码片段。


本案例通过华为开发者空间 - 云开发环境部署 OpenHands 平台,并接入华为 MaaS 提供的 DeepSeek-R1 模型,体验探索 OpenHands 如何从繁重的代码中解放我们的双手。

2. 适用对象

  • 企业

  • 个人开发者

  • 高校学生

3. 案例时间

本案例总时长预计 60 分钟。

4. 案例流程


说明:


  1. 领取代金券开通华为云 MaaS DeepSeek-R1 服务;

  2. 创建并远程连接华为开发者空间 - 云开发环境

  3. 安装 OpenHands 平台;

  4. OpenHands 接入华为云 MaaS DeepSeek-R1 模型;

  5. 新建对话,体验 OpenHands 功能。

最新案例动态,请查阅 《华为开发者空间云开发环境部署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 创建云开发环境

登录华为开发者空间,进入开发平台-云开发环境,点击新建开发环境参考以下参数配置创建,点击确定




在操作列点击更多-开机


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.zipunzip docker-install.zip
复制代码


执行安装脚本。


cd docker-installsudo 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 配置页,开启高级配置并配置模型信息。配置参考:




模型添加完成点击右下角 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


用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

生于云,长于云,让开发者成为决定性力量

评论

发布
暂无评论
华为开发者空间云开发环境部署OpenHands,解锁AI赋能的高效编程搭档_MaaS_华为云开发者联盟_InfoQ写作社区