OpenClaw 这阵子在技术社区的存在感确实高了不少,尤其是 4 月前后,官方把 Skill 机制和 Control UI 的稳定性补了一轮,微信接入也不再是纯实验功能。很多人的关注点已经从"这玩意儿能不能玩"变成了"怎么把它正经部署到服务器上长期跑"。我刚好趁这个时间点,把 华为云 + 百炼 APIKey 这条链路完整做了一遍实测,从一台全新的华为云服务器到 OpenClaw 正常回复消息,顺利的话确实能控制在 8 分钟左右。这篇文章是这次部署的完整记录,包含选型思路、每一步的实操命令、配置文件的写法,以及几个特别容易把人卡死半天的报错排查,打算自己搭一套私有 Agent 环境的朋友可以直接照着来。
1. 先把 OpenClaw、华为云、百炼 APIKey 这三个东西的关系捋清楚
1.1 OpenClaw 到底是什么
OpenClaw 本质上是一套开源的自托管 Agent 运行框架。它把大模型调用、工具执行、上下文管理、多平台接入这些能力统一封装在一个进程里,你部署好之后,相当于有了一个自己的 AI 助手后端。它可以执行任务、调用外部工具、按 Skill 机制扩展能力,也能通过微信这类 IM 入口跟人对话。
和直接用某个模型官方的 Web 端相比,OpenClaw 最大的区别是"框架"和"模型"解耦:模型接口可以任意切换,DeepSeek、通义千问、NVIDIA NIM 都能接,只要实现了 OpenAI 兼容协议就行。框架层做的事情是帮你把请求路由、工具调用、权限控制、会话记忆这些脏活累活扛下来。用一句话概括,就是你只需要准备好模型 APIKey,框架负责帮你把模型变成一个"能干活"的 Agent。
1.2 为什么选华为云当部署基座
选华为云不是因为它有什么独家能力,而是因为它作为云服务器本身有几个对部署 OpenClaw 很友好的特点。第一是弹性云服务器 ECS 的开通速度快,从控制台点几下到能 SSH 登录,一般一两分钟;第二是内网访问华为云其他服务(比如对象存储、镜像仓库)的稳定性好,后面如果要给 OpenClaw 挂私有知识库或模型微调服务,省事;第三是安全组规则清晰,端口控制比很多小厂商直观。
另外,OpenClaw 的典型场景是长期挂机跑 Agent 任务,你对服务器的要求其实不高:2 核 4G 内存就够,带宽 3-5Mbps 也够日常对话和工具调用。这类低配机器在华为云上的单价不高,新用户还有折扣,很适合拿来当作 Agent 基础环境。如果你个人电脑配置好,本地 Docker 也能跑,但云端的优势是 7×24 小时在线、不占本地资源、方便接微信这类需要公网回调的服务。
1.3 百炼 APIKey 在这条链路里扮演的角色
百炼是阿里云推出的模型服务平台,OpenClaw 相当于一个"没脑子的执行者",真正负责理解、生成、推理的是百炼上的通义千问系列模型。OpenClaw 通过 HTTP 调用百炼的 OpenAI 兼容接口,把用户消息传过去,拿到模型返回结果再交给下游工具或对话界面。
至于 APIKey,就是你使用这项服务的凭证。框架侧拿到这个 Key 之后,每次调用都会带上它,百炼服务端根据 Key 识别你的账号、计量、计费。所以整个集成过程的核心就两件事:一是让 OpenClaw 进程能读到正确的 APIKey,二是让模型请求指向百炼的接口地址。第一件事靠环境变量,第二件事靠配置文件,后面都会讲到。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 华为云环境准备:一台新机器就够了
2.1 实例规格和系统镜像怎么选
我不建议一上来就选高配,OpenClaw 这个东西,尤其只是个人使用的话,2 核 CPU、4GB 内存的 ECS 完全够用。如果后面打算接重工具(比如跑代码解释器、做文件批量处理),再把规格升到 4 核 8GB 也不迟。选规格的时候重点看两点:CPU 架构和系统盘类型。
CPU 架构方面,优先选 x86,也就是通用计算型。虽然 ARM 实例通常更便宜,但 OpenClaw 的依赖里有一些经过编译的二进制包,ARM 的生态兼容性偶尔会出幺蛾子。2026 年 4 月这个时间点,我用 x86 架构跑下来的体验比 ARM 顺畅很多,新手选 x86 能少踩很多坑。系统盘建议 40GB 以上,OpenClaw 本体不大,但它运行过程中会缓存会话、模型临时文件、日志,加上系统占用,40GB 已经比较从容。
系统镜像就选 Ubuntu 22.04 LTS,稳定,软件源里的 Python 版本也够用。其他发行版不是不行,但很多排查文档默认跑在 Ubuntu 上,你跟着文档走少些波折。
2.2 安全组放行规则
华为云控制台创建 ECS 的时候会让你选安全组,这里有个容易忽略的点:安全组本质上就是服务器的入方向和出方向防火墙,OpenClaw 部署完要看 Web 控制台,你就得把相应端口放出来。
我的建议是,创建实例时先把 22 端口(SSH)放行,剩下的端口等部署完再说。原因是 OpenClaw 的 Control UI 很可能不会用默认端口,如果你先把某个固定端口开了,到时候实际端口对不上,要么白开,要么还得回来改。不如先跑起来看日志里提示的地址和端口,按需添加安全组规则。另外,如果计划让 OpenClaw 主动访问外网(调用模型 API、拉取工具更新),出方向的规则大部分默认是全部放行的,不用额外设置。
还有一个经验:安全组规则变更后偶尔会有短暂延迟,排查"端口明明开了但连不上"这类问题时先等一下,再用 telnet 或 nc 做连通性测试,别急着怀疑配置。
2.3 基础环境初始化:Python、Git、Node
登录服务器后第一步是把系统依赖装齐。拿 Ubuntu 22.04 举例,先跑一下更新:
bash复制sudo apt update && sudo apt upgrade -y
sudo apt install -y git curl wget python3 python3-pip python3-venv nodejs npm
这里有个很多人会犯的错:直接用系统自带的 python3 跑 OpenClaw 的安装脚本,结果把依赖装到了全局环境里,后面一升级系统就把环境弄坏了。我的建议是,不管官方安装脚本是否会自动创建虚拟环境,你都先手动建一个:
bash复制mkdir -p ~/openclaw && cd ~/openclaw
python3 -m venv .venv
source .venv/bin/activate
这样 OpenClaw 的依赖会被隔离在 .venv 里,后续升级、卸载都干净,也不会跟系统其他 Python 项目冲突。Node 和 npm 主要用在 Control UI 相关组件的构建上,这一步顺手装了后面省事。
3. 百炼 APIKey 获取与配置:拿到模型服务的钥匙
3.1 开通百炼服务并确认模型可用
在配置 APIKey 之前,你得先有一个百炼账号,并开通模型服务。这一步通常是在阿里云百炼控制台完成的。登录后进入控制台首页,如果之前没开通过,会提示你开通百炼服务,按引导同意协议、完成实名认证就行。
开通后,进入"模型广场"或者"模型列表"页面,确认一下你想用的模型(比如 qwen-plus、qwen-max、qwen-turbo)在当前账号下是可以调用的。有些模型需要单独申请开通或在特定地域才可用,如果你在配置里写了某个模型名,但账号根本没开通,后面调用时就会报 model not found 之类的错误。提前确认一遍能省下不少排查时间。
另外提醒一句,百炼的免费额度和新用户权益政策是随时可能调整的。2026 年 4 月拿到的免费额度,和几个月前可能不一样。部署前最好看一眼计费页面,避免开着 Agent 跑了一晚上,第二天一瞧账单吓了一跳。个人使用的话,优先选 qwen-turbo 这种便宜的大路货模型作为默认配置,响应速度也快。
3.2 创建 APIKey 的几个细节
在百炼控制台左侧菜单找到"API-KEY",点进去"创建 APIKey"。创建的时候会给一串 sk- 开头的字符串,这个字符串只在创建成功那一刻完整显示一次,之后不会再给你看完整的 Key。很多人习惯性直接复制保存到本地,但如果你关掉了对话框才想起来没保存,就只能重新创建一个。
创建 APIKey 的时候,建议顺手给它起个能辨识用途的名字,比如 openclaw-agent。因为账户下可能有多个 Key,分别用在不同的项目里,之后如果某个项目要撤销权限,你只需要删掉对应的 Key,不影响其他项目。这个习惯很重要,尤其当你开始把 OpenClaw 接入微信或者对外提供接口时,APIKey 泄露的风险更高,最小授权原则能帮你控制损失。
拿到 Key 之后,建议同时在两个地方放好:一个是本地密码管理器,另一个是服务器上的环境变量文件。不要把它写在博客、GitHub 仓库、或者随手粘贴到聊天群里,一旦泄露,别人就能用你的配额跑模型,欠费的风险是实打实的。
3.3 正确配置环境变量并验证连通性
拿到 APIKey 后,把它写入服务器环境变量。我推荐写到 ~/.bashrc 里,这样每次 SSH 登录时自动生效,不用反复 export:
bash复制echo 'export DASHSCOPE_API_KEY="sk-你的Key"' >> ~/.bashrc
source ~/.bashrc
虽然 OpenClaw 的配置脚本很多也支持在配置文件里直接写 Key,但用环境变量管理是更好的习惯:配置文件往往会被备份、同步、甚至提交到代码仓库,环境变量不会。而且如果你后续接多个模型服务,比如同时用了百炼的 Key 和 NVIDIA NIM 的 Key,环境变量的方式可以让你在配置文件中通过引用变量名来接,而不是把一长串 Key 明文撒得到处都是。
配置完环境变量后,建议先测试一下网络连通性和 Key 有效性。用 curl 调一下百炼的 OpenAI 兼容接口:
bash复制curl https://dashscope.aliyuncs.com/compatible-mode/v1/models \
-H "Authorization: Bearer $DASHSCOPE_API_KEY"
如果返回一个包含模型列表的 JSON,说明网络通、Key 有效,可以进入下一步。如果超时,先检查服务器能不能访问公网;如果返回 401,优先怀疑 Key 复制错了或包含多余空格。
4. OpenClaw 安装与模型集成实操:8 分钟核心路段
4.1 安装 OpenClaw:两种方式选一种
OpenClaw 的安装方式,从我实测到的情况看,主要分为两种:官方安装脚本和源码安装。新手千万别两个都试,选定一个走到底,不然容易出现环境冲突。
我推荐官方安装脚本,速度最快,出错也少。进入你刚才创建的虚拟环境,然后从官方仓库拉取最新的安装脚本并执行。脚本会自动检查 Python 版本、安装依赖、初始化可执行文件,中途一般不用人工干预。装完后执行:
bash复制openclaw --version
能看到版本号,说明安装成功。源码安装虽然不是这篇文章的主角,但如果你后续要改框架内部逻辑、调试框架自身 bug,那就得走源码这条路:clone 仓库、装依赖、以 python -m openclaw 方式启动。个人用户直接跑脚本就够了,没必要在这阶段增加复杂度。
这里重点提醒:安装脚本的执行时间可能因为网络状况起伏很大。如果你在国内云服务器上安装时发现下载依赖特别慢,可以把 pip 源切换到国内镜像源,这个操作能把安装时间从 10 多分钟压缩到 2 分钟左右。具体做法是改 pip.conf 配一个镜像地址,装完 OpenClaw 之后再决定要不要切回去。
4.2 修改配置文件对接百炼模型
安装完成后,OpenClaw 会生成一个默认配置文件,路径一般在 ~/.openclaw/config.yaml 或安装目录下的 config.example.yaml。你需要改的地方有三处:模型 provider、APIKey 引用方式、模型名。
以 2026 年 4 月我用的配置为例,大致是这样:
yaml复制agent:
model_provider: dashscope
model_name: qwen-plus
api_key_env: DASHSCOPE_API_KEY
base_url: https://dashscope.aliyuncs.com/compatible-mode/v1
核心就是设置模型服务商为 dashscope(百炼平台的服务标识),然后通过环境变量 DASHSCOPE_API_KEY 提供 Key,base_url 指向百炼的 OpenAI 兼容端点。框架拿到这个 base_url 后,所有模型请求都会打到百炼,而不是默认的某个其他厂商。
关于模型名的选择,我个人的建议是日常任务先用 qwen-plus,兼顾效果和成本;需要更强推理能力时再切换到 qwen-max;如果只是做简单的消息回复、分类、抽取,qwen-turbo 性价比最高。可以把默认模型配成 qwen-plus,然后在 Skill 或工具级别通过参数指定更贵的模型,这样最灵活。
4.3 首次启动:验证模型连通和对话链路
配置完成后,启动 OpenClaw:
bash复制openclaw start
第一次启动时,框架会读取配置、检查环境变量、初始化存储目录。如果一切正常,你会在日志里看到 "OpenClaw is running" 之类的提示,以及 Control UI 的访问地址,通常是一个 http://服务器IP:端口 的形式。
在浏览器访问这个地址,如果打开的是 OpenClaw 的管理界面,说明 UI 服务正常。然后在界面里发一条测试消息,比如"你是谁,用一句话说明你的能力",正常情况下模型返回内容会在几秒内出现。
这里有个很关键的心态:第一次启动如果报错,不要慌。绝大多数错误信息已经把问题原因写得很明确,最常见的无非是环境变量没读到、模型名写错、网络不通这几种。日志级别默认是 info,如果觉得信息不够看,可以临时把日志级别调到 debug,能看得更细。
4.4 进阶打通:微信接入与 Skills 扩展
跑通对话之后,很多人会想让它“接入微信”。OpenClaw 的微信接入一般是基于个人微信的协议实现,风险点在于这类非官方通道可能被平台风控。我的建议是:先用小号测试,不要一上来就绑主号;同时控制消息频率,避免频繁群发触发限制。
微信接入的本质是把微信收到的消息转发给 OpenClaw 进程,再把回复发回微信。OpenClaw 配置文件里一般会有 channel 或 adapter 相关字段,找到微信相关的配置项,填入对应的账号信息和回调地址,重启服务即可。启动后先给自己发条消息测试,观察日志里消息的流转过程,确认这个链路是通着的。
Skills 机制则是 OpenClaw 的扩展插件系统。一个 Skill 通常是一个 Python 文件或脚本目录,里面描述了某个具体技能的触发条件和执行逻辑。比如你希望它收到“查天气”就调用天气 API,收到“写日报”就根据今天的 git 提交记录生成日报,这些都是通过 Skill 实现的。安装 Skill 的方式一般是把仓库 clone 到 skills 目录,然后在配置文件里注册。
我的建议是:第一个 Skill 不要装太复杂的,先找一个简单的、有明确输入输出的(比如查 IP 归属地、汇率转换),跑通一个再复制模式去扩展。因为 Skill 调试涉及框架、模型、外部 API 三层,第一次上手复杂度不小,先建立信心很重要。
5. 常见问题与排查技巧实录
5.1 安装脚本跑一半卡住或超时
这个问题大概率是网络导致的。OpenClaw 安装依赖时会从 PyPI 或 GitHub 拉文件,国内云服务器访问这些源的速度不稳定。我的建议是:
- 把 pip 源切到国内镜像,比如清华源或阿里源,修改
~/.pip/pip.conf; - GitHub 下载慢的话,可以挂一个 HTTP 代理,或者用支持 GitHub 加速的下载方式;
- 不要反复重跑同一个安装脚本,旧脚本中断后留下的半成品依赖可能和新脚本冲突。如果重试两次还失败,干脆清空虚拟环境重新来一遍,比排查半成品状态快得多。
5.2 启动时报 unknown model: deepseek
这个报错,从现象上看,是模型名没有在配置的服务商那边找到。常见原因有两个:一是你配置的模型名称和百炼侧实际提供的模型标识不一致;二是某个 Skill 或子 Agent 的配置里显式指定了 deepseek,但你的 APIKey 对应的服务商并没有开通该模型的访问。
排查思路就是查日志,看是哪个组件在调用哪个模型。然后把模型名改成服务商官方文档里列出的准确名称。举个例子,百炼上大模型名称一般是 qwen-max、qwen-plus 这类,如果你在某个子配置里写的是 deepseek-chat,而百炼侧没有该模型的映射,自然就会报 unknown model。
5.3 Control UI 启动失败
Control UI 是 OpenClaw 的 Web 管理界面,启动失败时,页面打不开,但命令行会话还能正常工作。这种情况一般不是框架核心挂了,而是 UI 服务组件的问题。常见原因包括:端口被占用、Node 环境缺失或版本不匹配、UI 静态资源没构建完整。
排查步骤:
- 看服务日志,找
control-ui或web server相关的错误; - 用
ss -lntp | grep 端口查看端口占用情况,换一个端口试试; - 如果是 Node 相关报错,检查 Node 版本,多数框架要求 Node 18 以上;
- 实在不行,关闭服务后删除 UI 相关的缓存目录再重启,让框架重新构建资源。
如果只是想要一个最小可用的 Agent,Control UI 其实不是必需品。命令行模式下的 OpenClaw 也能正常对话和执行任务,UI 可以等主链路稳定了再调。
5.4 模型响应很慢或频繁超时
响应慢要拆成两种情况:网络慢和大模型推理慢。网络慢的表现是请求发出后长时间在等待建立连接,你可以用 curl 测一下到百炼接口的延迟;大模型推理慢则更多表现为模型返回首个 token 前有明显等待,而且不同模型差异很大。
如果网络慢,检查服务器是不是在偏远区域机房,或者公网出口拥塞。如果推理慢,先把模型切成轻量版本(比如从 qwen-max 切到 qwen-turbo),看响应时间是否明显下降。另外,OpenClaw 的请求中如果带了过长的历史上下文,每次调用传给模型的 token 数变大,响应也会变慢,这时候可以调整上下文窗口大小或清理旧会话记录。
5.5 安全组配置与访问控制的心得
部署过程中我有一个特别想强调的习惯:不要为了省事把 Control UI 端口对所有公网 IP 开放。OpenClaw 的 Web 界面通常没有复杂鉴权,默认绑定的地址如果是 0.0.0.0,意味着任何知道 IP 和端口的人都能访问,这很危险。
我一般这么做:
- 在 OpenClaw 配置里把 UI 服务绑定到
127.0.0.1,只允许本机访问; - 真实需要通过公网访问时,用 SSH 隧道把远程端口映射到本地,而不是直接改安全组;
- 如果非要在公网提供服务,至少给 UI 挂一层反向代理加密码认证,别裸奔。
这些看似多出来的步骤,其实都是在保护同一个东西:你手里的 APIKey 和对话数据。Agent 跑起来了不是终点,让它长期安全地跑下去才是。
最后分享一个我实际使用中的体会。OpenClaw 集成本身不复杂,复杂的是环境差异——不同系统、不同网络、不同模型服务商的组合,能衍生出各种奇怪的问题。我花了整整一个下午踩完华为云安全组、百炼模型名、Node 版本这些坑之后,才把部署时间压缩到 8 分钟左右。如果你照着这篇文章还是卡在某一步,先看日志,再翻文档,最后再考虑换方案。大多数报错都不是大问题,只是顺序错了或者少了一个前置步骤而已。
