1. OpenClaw到底是什么,为什么值得部署一套
2026年这个话题其实已经不新鲜了,但我在各个技术社群里看到,每天还是有大把人卡在同一个问题上:OpenClaw项目源码看懂了,demo视频也刷了不少,轮到自己部署的时候,要么卡在环境依赖上,要么卡在模型对接上,要么干脆连控制台都打不开。这篇文章不聊虚的,直接用我在华为云上从零到一部署OpenClaw的完整过程,把坑和捷径都写清楚。
先说人话版本:OpenClaw是一个开源的AI Agent(智能体)框架,你可以把它理解成一个“有手有脚”的大模型管家。它不只是停留在聊天框里回答你的问题,而是能真正调用工具、读写文件、执行命令、对接消息渠道,把大模型的思考能力落到具体操作上。给它接上模型API之后,你可以让它帮你整理邮件、自动写周报、定时抓取网页信息,甚至通过微信、飞书这些日常工具跟它交互。
为什么值得自己部署一套?三个字:可控性。用现成的云端Agent产品当然方便,但数据要过别人的服务器,技能插件要等平台审核,行为逻辑也受平台规则限制。自己部署OpenClaw,模型可以自由切换(百炼、DeepSeek、本地Ollama都行),Skill插件随自己折腾,数据只在自己手里,这才是很多人真正在意的点。
这篇文章适合谁看?如果你是第一次接触OpenClaw、对Linux只有最基础的操作认知,跟着做也能跑起来;如果你已经跑通了基础部署,想深入看Skill怎么开发、模型怎么调优,后面对应的章节也能直接用。我会把每一步的选择逻辑讲清楚,不只是“照着敲命令”,而是让你知道为什么这么做。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 部署前的准备:账号、资源和方案选型
2.1 华为云服务器选型与开通
OpenClaw对服务器的要求其实并不苛刻。它以Python为主,核心服务跑起来内存占用在1GB到2GB左右,如果还要附带浏览器自动化之类的子服务,内存建议拉到4GB以上。在华为云上,我选的是Flexus应用服务器L实例(以前叫HECS,现在归类到Flexus系列),4核8G的规格,日常跑OpenClaw加几个子任务绰绰有余。
如果你手上有老的华为云账号,记得先看一眼有没有优惠券。新用户一般有比较大的折扣,按量计费的话用完可以释放,尝鲜成本很低。系统镜像我推荐Ubuntu 22.04 LTS,稳定、软件源齐全、网上的排错资料最多。不推荐CentOS系,一方面是生命周期问题,另一方面后续装依赖时很多包的兼容性要额外踩坑。
服务器区域选择上,建议选离你近的可用区。国内区域访问延迟低,后续如果你要调用阿里云百炼的API,走的也是公网链路,延迟影响可以接受。安全组记得先放行22端口(SSH)和3000端口(OpenClaw Web控制台默认端口,不同版本可能不一样,等控制台起来后以实际输出为准)。
提示:预算充足的话,我更推荐4核8G的规格。2核4G虽然能勉强跑起来,但一旦你开了浏览器自动化这类重任务,内存一满,整个Agent进程会被系统直接杀掉,排查起来相当难受。
2.2 方案选型:脚本安装还是Docker部署
OpenClaw的部署方式主要有三种:官方一键脚本、Docker容器、从源码手动安装。我强烈建议新手直接用官方一键脚本,原因很直接:这个项目迭代速度太快,依赖关系变化频繁,手动装大概率会遇到某个包版本对不上、某个系统库缺失的问题。官方脚本会把环境检测、依赖安装、服务注册这些事全部自动化处理掉。
Docker方式适合你已经在服务器上跑了一堆容器、希望把OpenClaw隔离管理的场景。但它有个隐性问题:OpenClaw的容器镜像体积不小,而且它要和宿主机上的工具交互(比如调Chromium做网页操作),需要额外的权限配置,Docker的隔离性反而成了阻碍。所以这次演示我用官方脚本为主,Docker方式在后面补充说明。
从源码安装就不在这篇文章的范围内了——那是给想改核心代码的开发者准备的,日常使用完全没必要碰源码。记住一句话:工具是用来解决问题的,不是用来折腾的。
2.3 准备一个SSH客户端
Windows用户我推荐直接用PowerShell自带的SSH命令,或者装一个Windows Terminal,颜值和体验都好很多。macOS用户直接用自带终端就行。在这里提醒一句:如果要在手机上操作,可以装Termius或JuiceSSH,支持密钥登录,方便随时检查服务状态。
3. 华为云4分钟零门槛安装实操
3.1 一键部署脚本执行全程记录
我先按官方文档的推荐方式,在服务器上执行一键安装脚本。登录服务器后,第一件事是更新软件源,否则后面装依赖时容易因为索引旧了而报404:
bash复制sudo apt update && sudo apt upgrade -y
然后执行官方安装脚本。这里不同版本命令可能有变化,建议以项目官方文档为准。大致形式是这样的:
bash复制curl -fsSL https://openclaw.ai/install.sh | bash
脚本执行过程会做几件事:安装必要的系统依赖(比如git、curl、Python相关组件)、拉取OpenClaw核心代码、创建虚拟环境并安装Python依赖、注册systemd服务、启动服务。整个过程两到三分钟,视服务器带宽和地域不同略有浮动。
执行完后,脚本会输出一段提示,包含控制台地址和默认端口。没看到报错信息就说明装好了。我实测最顺的一次,从执行命令到看到控制台登录页,真的花了不到4分钟。这里要强调一点:脚本方式省掉的是环境配置的时间,不是模型对接的时间,后面那部分才是真正决定“能用”的关键。
3.2 验证安装成果:控制台与命令行
安装完成后,先在服务器上确认服务状态:
bash复制systemctl status openclaw
状态显示active (running)说明服务正常运行。接着打开浏览器,访问http://服务器IP:端口号,能看到OpenClaw Web控制台的界面。第一次打开会要求创建管理员账号,简单填一下用户名和密码就行。
如果你不想用Web控制台,官方也提供了命令行工具,在服务器终端直接输入openclaw就能进入交互模式。个人体验是:控制台适合日常查看日志、管理Skill;命令行适合快速测试Agent能不能正常响应。
注意:如果服务器安全组没放行对应端口,浏览器会一直转圈连不上。这不是程序的问题,先检查安全组规则,再检查服务器防火墙(
sudo ufw status)。
3.3 Docker方式补充说明
如果你确实想用Docker,流程大概是:先在服务器上安装Docker Engine,然后拉取OpenClaw官方镜像,用docker run启动容器。关键参数是端口映射和卷挂载,端口映射保证你能从宿主机访问控制台,卷挂载保证容器重建后配置和Skill文件还在。
bash复制docker run -d --name openclaw \
-p 3000:3000 \
-v openclaw-data:/root/.openclaw \
openclaw/openclaw:latest
这个命令会把容器内的数据目录挂载到Docker卷里,后面升级或重启容器,配置不会丢。Docker方式的优势是环境隔离干净,卸载也方便(一条命令删除容器和镜像),缺点是如果后面要接本地模型或浏览器自动化,需要额外处理容器内外的通信问题。
4. 百炼APIKey申请与配置,让OpenClaw开口说话
4.1 为什么选百炼作为模型后端
OpenClaw本身不带大模型能力,它需要接一个模型后端来驱动Agent的思考。模型后端的选择很多:OpenAI兼容接口、DeepSeek、Ollama本地模型、NVIDIA NIM等。我这次选的是阿里云百炼,三个原因:第一,百炼平台国内直连,网络稳定,不像有些海外服务动不动就超时;第二,它提供多个模型可选(通义千问系列、DeepSeek系列、Llama系列等),一站式搞定,不用每个模型单独注册一个平台;第三,新用户有免费额度,测试阶段基本不用花钱。
如果你的数据敏感性比较高,可以考虑Ollama本地模型方案。但要注意,本地部署对服务器配置要求高很多,4核8G跑个小参数模型勉强能用,跑大模型会慢到怀疑人生。两种方案各有取舍,日常使用我建议先走百炼,跑通流程后再按需切换。
4.2 获取百炼APIKey的实操步骤
打开百炼控制台(直接搜“阿里云百炼”就能找到),登录后用支付宝扫码或账号密码登录。首次使用需要开通服务,页面会提示你同意服务协议,点确认就行。开通后进入“API-KEY管理”页面,点击“创建新的API-KEY”,系统会生成一串字符,这就是后面要用的密钥。创建后记得立即复制保存,百炼不会二次展示完整密钥。
提示:APIKey就像你的银行卡密码,谁拿到谁就能用你的额度。千万不要把这个字符串提交到公开Git仓库、贴到代码片段分享网站,或者截图发给别人。如果不小心泄露了,立刻在控制台删除重建。
4.3 在OpenClaw中配置模型参数
拿到APIKey之后,打开OpenClaw Web控制台,找到“模型配置”或“LLM设置”页面。这里需要填写三个关键参数:API地址、APIKey、模型名称。
API地址填百炼的OpenAI兼容接口网关地址,格式大概是https://dashscope.aliyuncs.com/compatible-mode/v1。APIKey填你刚复制的那串字符。模型名称填你要用的具体模型,比如qwen-plus、qwen-turbo或者deepseek-v3,不同模型名称对应不同的能力和价格,可以在百炼控制台的“模型广场”页面查到最新的可用列表。
填完后点击“保存并测试”,控制台会发一条测试消息给模型。看到正常回复说明模型链路已经通了。如果报错,优先检查API地址末尾是不是漏了/v1,以及模型名称是不是平台当前支持的写法(有些模型带日期后缀,写错一个字就404)。
4.4 一个参数教你选对模型:长文本还是快响应
在模型选择上我踩过一次坑。早期图省事直接选了速度最快的qwen-turbo,结果让它分析一份长文档时频繁截断。后来换成qwen-plus,长文本能力上来了,但响应速度慢了一些。现在我的配置是:日常对话用qwen-turbo,处理文档和复杂任务时手动切换到qwen-plus。OpenClaw支持在多轮对话中临时指定模型,不需要改全局配置,这个功能很实用。
5. Skill集成:给OpenClaw装“技能”
5.1 Skill机制到底是个啥
Skill是OpenClaw拉满可玩性的核心设计。你可以把Skill理解成手机的App——OpenClaw作为Agent是操作系统,Skill就是安装在系统上的应用程序。每个Skill封装了一个特定领域的能力定义,包括触发条件、执行逻辑、提示词模板、可调用的工具。当Agent遇到符合Skill描述的任务时,会加载对应的Skill来执行,而不是每次从零开始“思考”。
比如你可以安装一个“周报生成Skill”,它会告诉Agent:如何读取本周的Git提交记录、如何提取关键信息、用什么样的格式输出周报。没有Skill,Agent只会泛泛地写一段空话;有Skill,Agent才知道具体去读哪些数据、按什么模板生成。
5.2 从Skill市场安装现成的Skill
OpenClaw社区有一个Skill市场(官方叫Skill Hub或者Marketplace),里面收录了社区贡献的各种Skill,覆盖写作、编程、数据分析、设计等类别。安装方式很简单,在Web控制台的Skill管理页面搜索名字,点击安装即可。装完会显示“启用状态”,你还可以给Skill配置专属参数,比如接微信的Skill需要填Webhook地址。
我实测过几个热门的Skill:
- 写作辅助类Skill:负责生成文章大纲、润色文案,配合qwen-plus效果不错,比让Agent直接自由发挥强很多
- 网页信息抓取Skill:指定URL后自动提取正文内容,支持批量抓取,适合做信息整理
- 绘图相关Skill:通过调用绘图工具生成图,目前还在快速迭代中,效果取决于底层模型
安装Skill后建议回头翻一下它的文档说明,很多Skill需要额外的APIKey或者访问权限才能完整工作,只装不配置的话,用的时候会莫名报错。
5.3 编写一个自定义Skill的入门示范
如果现成的Skill满足不了你,自己写一个也很实际。Skill本质是一个目录,里面放一个清单文件(一般叫SKILL.md)和若干参考资源文件。清单文件用Markdown格式,包含名称、描述、指令等字段,Agent通过描述字段来识别什么时候该调用这个Skill。
我举个简单的例子:创建一个“会议纪要整理Skill”。在Skill目录下新建SKILL.md,内容大致是:
markdown复制---
name: meeting-minutes
description: 将会议原始录音转写文本整理成结构化会议纪要,按议题、结论、待办事项输出
---
# 会议纪要整理指令
收到会议录音转写文本后,按以下步骤处理:
1. 提取议题列表
2. 对每个议题总结讨论要点和最终结论
3. 列出所有待办事项,标注负责人(如果原文提到)和截止时间(如果原文提到)
4. 使用“## 会议纪要”作为输出标题,用Markdown列表展示结果
保存文件后,在控制台的Skill管理页面点“刷新”,新Skill就会出现在列表里。之后你给Agent一段冗长的会议记录,它就会自动套用这个Skill的格式来整理输出。
关键点在于description字段的描述要写清楚这个Skill在什么场景下使用。Agent判断是否调用Skill基本靠这个字段的语义匹配,描述太宽泛容易误触发,太狭窄又容易漏触发。我建议写“当用户提供…时”这样的句式,把适用场景限定清楚。
5.4 Skill与Plugin的区别
在OpenClaw生态里还有一个概念叫Plugin,它跟Skill容易混淆。我的理解是:Plugin管的是“工具能力”,比如能不能读文件、能不能上网、能不能调API;Skill管的是“行为方式”,比如面对某个任务时Agent该怎么思考、按什么步骤做。两者配合使用:Plugin提供工具,Skill组织流程。新手不用太纠结这两个概念的边界,直接用就行,用得多了自然就分清了。
6. 集成消息渠道:让OpenClaw接入微信和飞书
6.1 接入微信的坑与方案
部署好OpenClaw、接好模型、装完Skill之后,很多人下一步就是想把它接到日常聊天工具上。毕竟在服务器终端里跟Agent聊天太“极客”了,如果在微信里就能让它干活,那才是真的方便。
目前OpenClaw接入微信的方案,主要是通过中间桥接服务来实现的。基本原理是:OpenClaw提供一个Webhook回调接口,微信端收到消息后转发给这个接口,Agent处理完再把结果通过同样的通道转发回来。实际部署时,会涉及消息格式转换、会话session保持、多用户隔离等问题。
我在测试过程中遇到的最大坑是消息同步延迟。微信的消息链路本身有反垃圾机制,如果短时间内消息频率过高,消息会被静默丢弃,表现就是Agent偶尔“不回复”。解决方案是在OpenClaw的渠道配置里增加一个最小消息间隔参数,同时控制自己发消息的频率。另外提醒一点:个人微信号接入存在被封禁风险,如果你是在企业场景使用,更稳妥的路子是走企业微信的官方API。
6.2 飞书接入的实操体验
相比微信,飞书接入要友好得多。飞书开放平台提供完整的机器人API,你只需要在飞书开发者后台创建一个企业自建应用,启动机器人能力,拿到App ID和App Secret,再把这两个值填到OpenClaw的渠道配置里就行。整个过程不需要任何中间桥接服务,稳定性也更好。
我用飞书机器人实测跑了几天,感受是响应速度很快,消息不丢,多人群里@机器人也能正确识别会话归属。如果你有选择余地,我建议想接IM渠道的话优先走飞书。
7. 常见问题与排查技巧实录
7.1 问题速查表
我整理了这段时间高频遇到的几类问题,做成一个速查表:
| 问题现象 | 可能原因 | 排查方法 |
|---|---|---|
| 控制台页面打不开 | 安全组未放行端口、防火墙拦截 | 检查华为云安全组规则,执行sudo ufw status查看防火墙 |
| 模型测试一直转圈 | APIKey错误、模型名称拼写不对 | 核对百炼控制台的APIKey和模型名,确认API地址以/v1结尾 |
| Agent回复内容为乱码 | 系统语言环境不支持中文 | 设置环境变量LANG=zh_CN.UTF-8后重启服务 |
| 控制台能开但提示“control ui did not start” | 前端资源加载失败、端口被占用 | 查看服务日志journalctl -u openclaw -f,确认3000端口是否被其他进程占用 |
| 安装脚本执行到一半报错 | 系统版本过旧、依赖冲突 | 先执行sudo apt update && sudo apt upgrade -y,再重试安装脚本 |
| 接微信后消息不回复 | 消息频率触发限制、Webhook没配通 | 检查Webhook回调日志,调低消息频率 |
| Skill安装了但触发不了 | description描述不清晰 | 检查Skill的description字段,确保与任务描述有明确的语义关联 |
7.2 日志排查的核心思路
遇到问题先别慌,OpenClaw的日志信息其实写得挺完整的。查看服务日志的命令是:
bash复制journalctl -u openclaw -f
-f参数表示持续跟踪输出,退出按Ctrl+C。日志里会用不同级别标注错误,重点关注ERROR和WARNING开头的行。大多数配置问题在日志里都有明确提示——比如模型请求失败会在日志里给出HTTP状态码,401就是Key错了,404就是地址或模型名错了,429就是触发了限流。
7.3 我踩过的最蠢的一个坑
有段时间OpenClaw突然不干活了,所有任务都卡在处理中。我把日志翻了遍,发现所有请求都在等一个外部API的超时响应,而这个API是Skill里配置的第三方服务。原因是这个第三方服务需要重新授权,但我完全忘了这回事。后来我养成一个习惯:每次改完配置文件或新增Skill,都会在控制台发一条测试消息走一遍完整流程,确认整条链路通畅再关掉终端。这个习惯帮我避免了好几次“改完配置就崩”的尴尬。
8. 日常维护与省钱技巧
8.1 服务升级与备份
OpenClaw迭代很快,官方几乎每周都有新版本。升级前建议先看一眼更新日志,如果只是bug修复,直接执行项目提供的升级命令即可。如果涉及模型层的重大改动(比如Skill格式升级),建议先备份数据目录再升级,出问题能回滚。备份方式很简单,把数据目录打成压缩包拷走就行:
bash复制tar -czf openclaw-backup.tar.gz ~/.openclaw
恢复时解压到原目录,重启服务,配置和Skill都在。
8.2 成本控制建议
模型API费用是大头。百炼平台按token计费,日常聊天的token消耗其实很少,但如果你开了网页抓取或长文档分析,一次调用可能烧掉几千token。建议在OpenClaw里设置一个单次对话的最长输出长度限制,同时把默认模型设为便宜的版本(如qwen-turbo),复杂任务再临时切换到强模型。服务器费用方面,Flexus按量计费用完释放就行,长期使用买包年包月会更划算。
8.3 扩展思路:本地模型、更多Skill
跑通基础之后,你可以往两个方向扩展:一是把模型后端切换到本地Ollama,完全脱离外部API,数据彻底不出门,代价是需要更强的服务器;二是持续关注Skill市场,社区几乎每天都有新Skill更新,从写小说、做PPT到数据分析、自动化测试,覆盖面越来越广。我最近在试一个流程自动化的Skill,能让Agent在收到指令后自动执行一系列操作并生成结果汇总,好用的话再写一篇分享。
