1. 方案选型:为什么把OpenClaw安在腾讯云上
1.1 先搞清楚OpenClaw能干什么
这两年AI Agent赛道火得不行,OpenClaw(也叫Clawdbot)属于那种"听着低调、用起来真香"的开源AI代理框架。它不是简单的聊天机器人外壳,而是把大模型能力真正落到实际任务里:规划任务、调用工具、读写文件、执行命令、对接第三方服务。你可以把它理解成一个7x24小时待命的"数字员工",你告诉它目标,它自己拆解步骤、调用资源、完成交付。
我从GitHub上拉代码搭过本地版,说实话本地跑有天然瓶颈:电脑一关它就断电,网络环境一变对外服务就断,更不用说微信这类需要公网回调的能力,本地部署基本没戏。所以当我想把它变成一个真正长期运行的"个人AI助理"时,第一反应就是上云。
这篇文章就把我在腾讯云服务器上从零搭建OpenClaw的完整过程写出来,包括选机器、装系统、跑安装脚本、配模型、挂守护进程、接微信,以及一路踩过的坑。无论你是第一次摸服务器的纯新手,还是想快速复盘的运维老手,照着这篇文章里的操作走,半天内能把一套能用的OpenClaw服务跑起来。
1.2 云服务器相比本机的三个核心优势
为什么是云服务器而不是继续在本地折腾?我用了一段时间后总结出三个理由。
第一,稳定在线。OpenClaw这类Agent服务的价值在于持续运行,你睡觉得时候它还在处理任务。云服务器有独立公网IP、有数据中心供电和网络保障,宕机率远低于家用宽带和本地电脑。腾讯云这类主流厂商还提供一定程度的DDoS防护,不用自己折腾防火墙策略。
第二,对外服务能力。接微信、接公众号、暴露Webhook回调,都需要一个公网可达的地址。本地机器除非你有公网IP和合法合规的映射手段,否则这条路基本走不通。云服务器天生带公网IP,配合安全组规则,想开哪个端口开哪个端口。
第三,资源隔离与弹性。本地电脑跑Agent任务,有时候一跑就是几个小时,CPU和内存居高不下,严重影响自己正常办公娱乐。云服务器就无所谓了,你甚至可以开一台最低配的机器专门跑OpenClaw,不够用了再升级配置,轻轻松松。
1.3 机型选择与成本估算
腾讯云上跑OpenClaw,我推荐优先考虑轻量应用服务器,预算充裕再上云服务器CVM。
轻量应用服务器的好处是便宜、开箱即用,自带简化的防火墙控制台和监控面板,适合个人使用。我测试过,OpenClaw核心服务占用并不算夸张,空闲状态内存占用大约在300到500MB,跑一个任务时CPU会短期波动。所以2核2G的配置能跑,但有点紧,有条件建议上2核4G,体验会丝滑很多。
系统镜像选Ubuntu 22.04 LTS或者Debian 12,这两个系统的软件源更新及时,Node.js、Python这些运行时环境好装。地域选离你业务最近的就行,国内服务器有备案要求,如果只通过SSH管理、不需要域名对外提供Web服务,直接用IP操作即可。
计费方面,腾讯云轻量服务器新用户经常有优惠活动,2核2G一个月几十块,4G配置也就一百上下,具体以控制台显示为准。为了跑OpenClaw这笔投入完全值得,少出去吃两顿饭钱就有了。
1.4 安全组与初始化设置
买完机器第一件事,不是急着装软件,而是先把安全组规则设好。安全组相当于云服务器的"门禁系统",默认情况下建议只开放下面几个端口:
| 端口 | 用途 | 建议 |
|---|---|---|
| 22 | SSH远程登录 | 建议改用非默认端口,或仅允许自己IP访问 |
| 80 | HTTP服务 | 预留,给Web管理面板或Webhook用 |
| 443 | HTTPS服务 | 预留,微信消息通知等场景会用到 |
安全组的配置逻辑是"最小化开放",能不开的就不开。我之前有一台机器图省事,直接把所有端口全放开了,没过几天日志里就全是扫描爆破的记录,吓得我赶紧加了IP白名单。大家引以为戒。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 安装前的准备工作
2.1 服务器初始化:从零到可用的三步
新买的云服务器拿到手,除了系统是现成的,其他都得自己收拾。我习惯固定一套初始化流程,不仅适用于OpenClaw,任何新服务器都能复用。
第一步,用SSH登录。Windows用户可以用终端直接执行ssh root@你的服务器IP,macOS和Linux同理。登录后先把系统更新到最新:
bash复制apt update && apt upgrade -y
第二步,创建一个日常使用的普通用户,别老拿root裸奔。OpenClaw跑在root下风险太高,万一被日穿就是整台机器沦陷。创建用户并赋予sudo权限:
bash复制adduser openclaw
usermod -aG sudo openclaw
第三步,配置SSH密钥登录,禁止密码登录。在本地生成密钥对:
bash复制ssh-keygen -t ed25519 -C "你的备注"
ssh-copy-id openclaw@你的服务器IP
之后编辑SSH配置文件/etc/ssh/sshd_config,把PasswordAuthentication改成no,重启SSH服务生效。这样就算密码被暴力破解也没有用。
2.2 运行时环境:Git、Node.js、Python一个都不能少
OpenClaw的安装对运行时环境有一定要求。官方文档里明确要求Git、Node.js和Python环境,具体版本会随版本迭代有变化,我装的时候需要的是Node.js 18+和Python 3.10+。
Git用于拉取源码和skill扩展:
bash复制apt install git -y
git --version
Node.js建议用官方源安装,不要用系统自带的旧版本。用nvm管理Node版本是最省心的方式:
bash复制curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 18
nvm use 18
node -v
Python环境直接装系统包即可:
bash复制apt install python3 python3-pip build-essential -y
python3 --version
这些依赖装完,OpenClaw的安装前置条件就具备了。顺便说一句,build-essential这个包很多人容易漏,实际编译源码的时候缺了它就会报各种莫名其妙的错,提前装上省心。
2.3 网络连通与加速问题
国内服务器访问GitHub有时候会遇到速率慢甚至连接超时的情况,尤其拉大仓库或者执行git clone的时候。这个问题我在安装过程中确实遇到了,处理方式有三种。
第一,配置Git的代理。如果你恰好有合法的网络通道,可以在Git配置里加代理参数。第二,使用GitHub镜像站。把github.com替换成镜像域名,实测下载速度能快不少,但要注意镜像站的同步延迟。第三,调整Git的lowSpeedLimit参数,避免网络稍微波动就直接报错中断:
bash复制git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTimeout 999999
我自己安装时用的是镜像站方案,整个拉取过程稳定很多。这里多说一句,网络优化是玄学,不同地区、不同时间段效果差异极大,建议多试几种方案,找到最适合自己网络环境的方式。
3. OpenClaw安装实操全记录
3.1 官方安装脚本的正确打开方式
OpenClaw提供了官方的安装脚本,这是最简单的安装方式。脚本会自动检测系统环境、安装缺失的依赖、下载最新版本并完成基础配置。
执行安装前,先看看脚本内容,养成好习惯总没错:
bash复制curl -fsSL https://官方安装脚本地址 | head -50
确认没有诡异的操作后,再执行完整安装:
bash复制curl -fsSL https://官方安装脚本地址 | bash
安装脚本会做一系列检查,打印出本机的架构信息、检测到的运行时版本、磁盘空间等。如果哪项检查不通过,会以非零退出码终止,并给出提示,按提示补环境就行。
我用脚本装的时候比较顺利,整个过程大约5分钟。如果你用的是最小化安装的服务器系统,脚本会先拉取一堆依赖包,这个时候输出会很长,耐心等它跑完就好。
3.2 指定git安装方式与main分支源码检出
脚本安装虽然方便,但有个问题:它默认拉取的是release发行版,有时候不是最新代码。如果你需要尝鲜新功能,或者官方刚好发布了重大更新而发行包还没跟上,就得考虑用git方式从源码安装。
OpenClaw的安装脚本正好支持通过参数指定安装方式。命令大致是这个格式:
bash复制curl -fsSL https://官方安装脚本地址 | bash -s -- --source git --branch main
参数含义很清晰:--source git表示安装方式为git源码安装,--branch main表示从GitHub仓库的main分支检出源码。这也是社区里很多人推荐的方式,因为main分支永远是最新代码,修复了bug会第一时间同步。
git源码安装的本质就是把仓库clone到本地,然后执行构建流程。OpenClaw的构建过程会拉取npm依赖、编译一些原生模块,整个过程比脚本安装多花两三分钟。构建完成后,二进制文件和配置模板都在仓库目录下,后续升级走git pull就行,非常灵活。
3.3 安装过程实况记录
我实际安装时用的是git方式装main分支,这里把过程记录下来供大家参考。
clone下来之后,目录结构大概是这样的:
text复制openclaw/
├── bin/
├── config/
├── plugins/
├── src/
├── package.json
└── ...
执行依赖安装和构建:
bash复制cd openclaw
npm install
npm run build
构建完成后,可以先用--version参数验证一下安装是否成功:
bash复制node bin/openclaw --version
如果输出了一串版本号,恭喜你,核心程序已经装好了。接下来就是初始化配置。
3.4 初始化配置:第一次启动前的准备工作
OpenClaw第一次启动会比较贴心,自动生成一份默认配置模板。启动命令是:
bash复制node bin/openclaw init
这个命令会在当前用户目录下创建.openclaw配置文件夹,里面包含主配置文件config.yaml(也可能是config.json,取决于版本)。配置模板里已经写好了各个字段的默认值,我们只需要改必填项。
打开配置文件,需要配置的内容包括:
- Agent名称:给你的智能体起个名字,默认叫clawdbot。
- 工作目录:OpenClaw执行任务时的文件读写路径,建议指定一个独立目录,比如
/home/openclaw/workspace。 - 模型接入信息:这里是最关键的,需要填写大模型服务的API Key和模型名称。如果你用OpenAI,就填OpenAI的Key;用国内的模型服务商就填对应的Key和endpoint。
配置完成后,运行:
bash复制node bin/openclaw serve
看到类似Server is running on port的输出,就说明服务已经正常跑起来了。
3.5 用systemd把OpenClaw变成常驻服务
直接终端启动有个问题,SSH断开进程就挂了。要让OpenClaw长期稳定运行,需要做成系统服务。我推荐用systemd,配置简单、自带崩溃重启和开机自启。
创建service文件:
bash复制sudo nano /etc/systemd/system/openclaw.service
内容如下:
ini复制[Unit]
Description=OpenClaw AI Agent Service
After=network.target
[Service]
User=openclaw
WorkingDirectory=/home/openclaw/openclaw
ExecStart=/usr/bin/node /home/openclaw/openclaw/bin/openclaw serve
Restart=always
RestartSec=10
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
注意ExecStart里的node路径可以用which node查一下改成实际路径。配置好之后:
bash复制sudo systemctl daemon-reload
sudo systemctl enable openclaw
sudo systemctl start openclaw
以后查看运行状态和日志就方便了:
bash复制sudo systemctl status openclaw
journalctl -u openclaw -f
把日志挂在后台,OpenClaw的日常运行情况一目了然,出问题也能第一时间定位。
4. 配置进阶与生态玩法
4.1 模型接入与ccswitch快速切换模型
OpenClaw设计得比较开放,底层大模型可以接入多家服务商。配置文件中可以配置多个模型供应商,每个供应商有独立的API Key和endpoint。我之前同时配了一个通用大模型和一个代码专用模型,跑普通的任务用通用模型省钱,处理代码逻辑切到代码模型,准确率会高不少。
手动改配置文件切模型太麻烦,OpenClaw社区里有个好用的工具叫ccswitch,专门用来快速切换当前使用的模型,这也是热词里"openclaw ccswitch 切换模型"的来历。ccswitch的用法非常简单:
bash复制ccswitch list # 查看当前可用的模型列表
ccswitch use code-1.5 # 切换到指定的模型
ccswitch status # 查看当前正在使用的模型
我实测下来,ccswitch切换模型几乎无感,不用重启服务,后台正在跑的任务也能平滑切换。如果你有预算把多个模型都接上,这工具几乎必备。
4.2 skill系统:给OpenClaw装上"专业技能包"
OpenClaw真正的威力在于skill系统,这个词翻译过来可以叫"技能",你可以把它理解成给Agent装的插件。一个skill通常包含一组预定义的任务模板、工具函数和上下文提示词,让Agent在特定场景下更专业。
OpenClaw默认带了一些基础skill,比如网络搜索、定时任务、文件处理等。社区贡献的第三方skill更是五花八门,有写周报的、有做竞品分析的、有自动整理邮件的。安装skill有三种方式。
第一种,使用自带的skill管理命令从官方源安装:
bash复制node bin/openclaw skill install <skill名称>
第二种,从git仓库直接安装,适合作者还没有上架官方源的情况:
bash复制node bin/openclaw skill install git+https://github.com/作者/仓库名.git
第三种,手动放进skill目录。把克隆下来的skill文件夹放到配置目录下的skills子目录里,重启服务即可识别。
我在社区里看到过一套"妙想skill"组合包,包含了好几款创意写作相关的技能,装完之后OpenClaw写文案的能力明显提升。这里也分享一个小技巧:skill装多了之后,Agent会变"花心",不知道该调用哪个。建议在配置里把不常用的skill禁用,只保留当前业务需要的,效果反而更集中更好。
4.3 微信接入:让OpenClaw成为你的随身助理
把OpenClaw接进微信,是我觉得整个搭建过程中最有成就感的一步。接完之后,你可以在微信上直接跟它对话,扔给它一个链接它帮你总结,发它一个任务它帮你执行,相当方便。
微信接入的核心是消息通道配置。OpenClaw框架本身不直接提供微信插件,而是通过webhook协议跟微信机器人框架对接。整体流程大致是:
- 在腾讯云服务器上安装微信个人号机器人框架,监听微信消息,并把消息转发到OpenClaw的webhook接口。
- 在OpenClaw配置里开启webhook监听,并设置一个自己的回调路径。
- 测试消息往返链路,确保微信消息能触达大模型、回复能正常发回。
这里我要强调一个安全细节。Webhook接口是对公网完全开放的,如果你没做鉴权,谁都可以往你的Agent里塞消息。一定要在配置文件里设置一个足够复杂的webhook密钥,并在微信机器人框架的消息转发规则里带上这个密钥。除此之外,建议在腾讯云WAF层面或者安全组层面限制webhook路径的访问来源,把转发服务器IP加入白名单。
4.4 数据备份与定时快照
OpenClaw跑起来之后会不断产生数据,包括对话历史、任务记录、skill配置等。这些数据都在配置目录和工作目录里。服务器总有意外的时候,提前做好备份才能高枕无忧。
我的备份方案是每天凌晨用cron定时打包配置目录,上传到腾讯云对象存储COS:
bash复制0 4 * * * tar -czf /backup/openclaw-$(date +%Y%m%d).tar.gz /home/openclaw/.openclaw /home/openclaw/workspace
再用coscmd命令把备份传上去:
bash复制0 5 * * * coscmd upload /backup/openclaw-*.tar.gz /openclaw-backup/
如果你不想折腾对象存储,腾讯云的云服务器控制台本身提供磁盘快照功能,在控制台里创建一个定时快照策略,选每天或者每周自动执行,更省心。两种方案可以同时用,一个防文件损坏、一个防磁盘故障,双保险。
5. 常见问题与排查实录
5.1 安装失败的Top4原因与应对
我把安装OpenClaw过程中最常踩的几个坑整理成表格,按出现频率排序:
| 问题现象 | 根本原因 | 解决方案 |
|---|---|---|
npm ERR! network 反复出现 |
网络波动或访问npm源超时 | 切换npm国内镜像源:npm config set registry https://registry.npmmirror.com |
| Node版本太低导致构建失败 | 系统包管理器安装的node版本过旧 | 用nvm安装Node.js 20 LTS,并切换到该版本后再构建 |
python3相关模块找不到 |
缺少Python开发头文件和构建工具 | 执行apt install python3-dev build-essential -y |
| GitHub clone速度极慢甚至中断 | 访问github不稳定 | 配置Git使用镜像地址,或调整http.lowSpeedLimit为0 |
这里面最坑的是Node版本问题,系统apt源里的node版本常年固定在18以下,而OpenClaw的某些新依赖明确要求18+,我刚开始没注意直接构建,报了各种语法错误,排查了好久才反应过来是Node版本太低。后来全程用nvm管理版本,再没出过这类问题。
5.2 OpenClaw升级的正确姿势
社区迭代速度很快,OpenClaw基本每周都有新版本。升级这个操作本身不难,但需要注意姿势,直接覆盖文件容易把配置文件弄丢。
我推荐的升级步骤是:
- 确认当前版本:
node bin/openclaw --version - 备份配置:
cp -r ~/.openclaw ~/.openclaw.bak-$(date +%Y%m%d) - 更新源码:进入openclaw目录执行
git pull(如果是git方式安装的) - 重新构建:
npm install && npm run build - 重启服务:
sudo systemctl restart openclaw - 验证版本:再执行一次版本命令,确认更新生效
整个升级过程不超过10分钟。如果升级后有什么异常,把备份的配置恢复回去,再切回旧版本即可。
升级有一个常见的坑:新版可能改动配置文件的结构,自动增加新字段或调整默认值。建议升级后打开配置文件看一眼,如果有不认识的字段,不用急着删,先查一下官方文档,确认是什么功能再决定取舍。
5.3 资源占用监控与性能优化
OpenClaw跑起来之后,资源占用主要跟并发任务数和模型调用频率有关。我习惯定期用这几个命令观察:
bash复制htop # 查看实时CPU和内存
free -h # 查看内存剩余情况
df -h # 查看磁盘空间
du -sh ~/.openclaw # 查看OpenClaw配置目录占用
跑了一段时间后,最明显的资源增长点其实是日志文件和对话历史数据。日志默认不轮转,长时间跑下来能涨到几个G。建议配置logrotate定时轮转日志:
bash复制sudo nano /etc/logrotate.d/openclaw
内容:
text复制/home/openclaw/.openclaw/logs/*.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
顺便说一句,如果你经常让OpenClaw执行网络下载类的任务,注意watch磁盘空间,下载的大文件如果都落在工作目录,一样会不知不觉占满磁盘。
5.4 卸载OpenClaw与清理环境
总有想彻底重装的时候,OpenClaw的卸载也比较清晰。注意别只看个大概,我把步骤列全了。
- 停止并禁用服务:
bash复制sudo systemctl stop openclaw
sudo systemctl disable openclaw
- 删除service文件和源码目录:
bash复制sudo rm /etc/systemd/system/openclaw.service
sudo rm -rf /home/openclaw/openclaw
- 清理配置和数据目录:
bash复制rm -rf ~/.openclaw
- 重新加载systemd配置:
bash复制sudo systemctl daemon-reload
到这里环境就算清理干净了。如果你当时用的是脚本安装方式,有些版本可能会在/usr/local/bin下创建软链接,可以顺手检查一下并删除残留链接。
6. 谈点实操之外的体会
整套OpenClaw搭下来,我自己最大的一个感受是:工具链的成熟度决定了上手的门槛。OpenClaw社区在安装脚本、配置模板、skill管理这些细节上做得很用心,哪怕你对服务器运维了解不多,按着文档也能把服务跑起来,这比很多开源项目"装两小时、配三天"的体验友好太多。
还有个经验想单独分享:别急着在配置阶段就把所有功能都打开。我一开始就把微信、搜索、定时任务、多模型全接上了,结果Agent在做任务时频繁在多个skill之间跳来跳去,反而降低效率。后来我按业务场景做了精简,平时只开两三个核心skill,需要集中的任务时再临时开相关技能,效果一下子立竿见影。这也算是我踩完一圈坑之后悟出来的"少即是多"。
最后再聊一个实际操作中的小细节,很多人容易忽略:时间同步。服务器厂商默认都会配好NTP时间同步,但如果你在初始化阶段动过系统时间或防火墙规则,一定要回来确认一下timedatectl的输出是不是正常。OpenClaw的任务调度、消息回调都依赖准确的时间戳,时间偏了,定时任务会全乱套。我遇到过一台机器时间差了两分钟,表面看不出来,但定时任务全部提前触发,排查了很久才定位到是时间偏差。装完系统顺手执行一下timedatectl set-ntp true,能省掉后面一大串麻烦。
好了,这次腾讯云上搭建OpenClaw的完整过程就记录到这里。剩下的路,就交给你的想象力和实际需求去探索了。
