news 2026/9/8 3:13:48

OpenClaw腾讯云部署教程:从零搭建7×24小时在线的AI智能体

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OpenClaw腾讯云部署教程:从零搭建7×24小时在线的AI智能体

我最早接触 OpenClaw,是被它的“文档即配置”思路吸引的。那会儿市面上的 AI 智能体框架要么太重,要么绑定某个厂商,想换模型都不方便。OpenClaw 的思路很直接:用 Markdown 写清楚角色设定、目标、可用工具,剩下的交给运行时去调度。部署到腾讯云之后,它就是 7×24 小时在线的一位“数字员工”,能定时跑任务、处理信息、调用各种工具,我半夜把需求发过去,早上起来结果已经放在工作区里了。如果你是第一次听说 OpenClaw,想找一份从零开始的云端部署教程,或者已经在本地跑过但想搬到云上长期运行,这篇内容应该能帮你少踩不少坑。

1. 先搞清楚 OpenClaw 到底是什么,以及为什么非得上云

1.1 OpenClaw 的定位:不是聊天机器人,是智能体运行时

很多人第一次看到 OpenClaw 会下意识觉得,这不就是个聊天机器人吗?其实两者差异很大。聊天机器人是“你问一句、它答一句”,核心是对话能力;而 OpenClaw 这类智能体运行时,更关注“你给它一个目标,它自己去拆解步骤、调用工具、完成任务”。比如你可以告诉它“每天下午三点检查某个网页的更新,有变化就整理成摘要发到邮箱”,它会自己规划要访问哪个网址、读取哪些内容、调用哪个邮件接口,然后像个实习生一样把任务闭环跑完。

它设计上的亮点在于所有配置都是普通文本文件。主配置是openclaw.json,角色和行为规则可以用 Markdown 文档来写,再配上 workspace 工作目录和 skills 技能目录。没有复杂的可视化编排界面,也没有独占的 SDK,这让它很容易融入 Git 工作流,改配置就是改文件,回滚也方便。我自己的体会是,写配置文件就像在给 AI 写一本“岗位说明书”,规则清楚,它执行起来就越靠谱。

1.2 为什么推荐部署到腾讯云而不是只跑在本地

OpenClaw 在本地跑当然没问题,但有几个场景会把你逼到云上:

  • 长任务和定时任务需要机器不关机。本地笔记本一合盖,任务就断。腾讯云服务器放在机房,24 小时在线,定时任务到点就执行。
  • 统一入口,多设备访问。云端部署后,你在公司电脑、家里台式机、手机终端上访问的都是同一个实例,配置和工作区数据是共享的。
  • 网络出口更稳定。云服务器的公网 IP 固定,如果要调用外部 API、接收 webhook 回调,比家里宽带的动态 IP 靠谱得多。
  • 算力和存储可以弹性扩。后期如果跑多模型、多智能体,或者要处理大量文件,直接升配就行,不用换电脑。

说句实在话,如果你只是图新鲜体验一下,本地装一个尝尝鲜没问题;但是真想让 OpenClaw 变成一个日常依赖的生产力工具,从一开始就部署在云上,省去后面迁移的麻烦。这就是我写这篇教程的原因:把腾讯云部署的完整链路走一遍,让你照着操作就能搭起来。

2. 部署前准备:腾讯云服务器选型与基础环境

2.1 服务器选型:2 核 4G 起步,轻量应用服务器对新手更友好

腾讯云上能跑 OpenClaw 的产品有两种,轻量应用服务器和云服务器 CVM。如果只是个人使用、跑智能体任务,轻量应用服务器性价比更高,购买流程简单,自带固定公网 IP,控制台界面也清爽。CVM 适合有网络规划需求、后期要搭集群或者挂负载均衡的场景,新手没必要一上来就选它。

配置方面,我建议2 核 4G 内存起步。OpenClaw 本体确实不重,但你要留出 Docker、日志采集、可能运行的本地模型服务这些余量。我见过有人用 1 核 2G 跑,能启动,但一旦同时处理多个任务就明显卡顿。如果你的任务里包含本地小模型推理,直接上 4 核 8G,省得后面升配折腾。

操作系统选Ubuntu 22.04 LTS或者Debian 12都行,这两个系统稳定、软件源新,Docker 支持也最好。腾讯云控制台创建服务器时直接选镜像就行,系统盘建议 50G 以上,OpenClaw 的 workspace 和 skills 会随使用时间积累大量文件,预留空间不会错。

注意:购买时记得设置一个你记得住的 root 密码,同时建议绑定密钥对。密钥登录比密码登录安全一个量级,后面我也会专门讲安全加固。

2.2 登录服务器后先做基础更新,再装 Docker

服务器到手之后,先用 SSH 登录(Windows 可以用终端直接ssh root@你的公网IP,macOS/Linux 同理)。进去之后第一件事是更新软件源:

apt update && apt upgrade -y

这一步会把系统自带的软件包升到最新,避免后续安装 Docker 时出现依赖冲突。然后安装 Docker 和 Docker Compose 插件。虽然腾讯云控制台有自带 Docker 镜像的快捷部署,但我更推荐手动装,版本可控、路径统一:

# 安装 Docker 依赖 apt install -y ca-certificates curl gnupg lsb-release # 添加 Docker 官方 GPG 密钥和软件源 install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg chmod a+r /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null # 安装 Docker apt update apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 验证安装 docker version

看到 Client 和 Server 版本信息都输出出来,就说明 Docker 装好了。如果你发现docker命令需要sudo才能执行,那只是当前用户没加入 docker 用户组,把用户加进去重新登录即可:

usermod -aG docker $USER

Docker 装好后,再顺便确认一下docker compose version能正常输出版本号。Ubuntu 22.04 用 Docker 官方软件源装的 compose 插件,和 Ubuntu 自带的旧版docker-compose不一样,新版是docker compose命令(中间有空格),别用混了。

2.3 域名申请与 DNS 解析:给 OpenClaw 一个正经入口

如果你只是测试,用服务器公网 IP 加端口也能访问。但 OpenClaw 这种需要长期使用的服务,我强烈建议配一个域名,理由只有一个:HTTPS 证书需要域名。没有 HTTPS,浏览器访问时会一屏警告,部分 AI 接口也不允许从非 HTTPS 页面发起请求。

域名可以在腾讯云 DNSPod 直接注册,也不贵。如果你已经有了域名,比如example.com,那就只需要加一条解析记录。登录腾讯云控制台,找到“DNSPod 解析管理”,添加记录:

  • 主机记录:填openclaw
  • 记录类型:A
  • 记录值:你的腾讯云服务器公网 IP
  • TTL:默认 600 秒即可

这样解析生效后,openclaw.example.com就会指向你的服务器。解析生效速度一般几分钟到十分钟不等,可以用ping openclaw.example.com或者dig命令确认 IP 是否已经匹配。

如果暂时不想注册新域名,腾讯云还提供“二级域名”概念的延伸用法:你可以在已有的主域名下任意创建子域名,本质就是我上面说的加一条 A 记录。很多人说“腾讯云怎么申请二级域名”,其实就是这个操作,不需要额外付费,解析到一个 IP 而已。

3. 核心实操:在腾讯云上一步步把 OpenClaw 跑起来

3.1 创建项目目录,规划数据挂载位置

OpenClaw 部署最怕的是容器一删,配置和产出全没了。解决办法从一开始就把数据目录挂载到宿主机。我习惯在/opt/openclaw下面建目录,结构清晰,备份也方便:

mkdir -p /opt/openclaw/data cd /opt/openclaw

其中/opt/openclaw/data会挂载进容器内的~/.openclaw,用来存主配置、workspace、skills、日志和审批记录。这样就算容器出了故障,数据文件也留在宿主机上,重新拉一个容器挂回去就能恢复。

3.2 编写 docker-compose.yml:推荐用 Compose 而不是裸 docker run

很多教程会让你直接docker run一条命令跑起来,省事是省事,但后续改端口、加环境变量、换镜像版本都要翻历史命令记录,太反人类。用 Docker Compose 的好处是把所有配置写进一个文件,改动有迹可循,迁移也只是复制文件过去。

我用的docker-compose.yml大致长这样:

services: openclaw: image: ghcr.io/openclaw/openclaw:latest container_name: openclaw restart: unless-stopped ports: - "8080:8080" environment: # 按你实际使用的模型服务填写 - OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx # - ANTHROPIC_API_KEY=sk-ant-xxxxxxxx # 如果要走兼容接口或本地模型,可以显式指定 base_url # - OPENAI_BASE_URL=http://host.docker.internal:11434/v1 volumes: - /opt/openclaw/data:/root/.openclaw extra_hosts: - "host.docker.internal:host-gateway"

这个文件里有几个关键点要说清楚:

  • 镜像名ghcr.io/openclaw/openclaw:latest以官方仓库实际发布名为准,部署前先看官方 README,别拉错镜像。
  • restart: unless-stopped保证服务器重启后容器自动拉起,这是云上长期运行的核心配置。
  • 端口映射8080:8080让宿主机的 8080 端口指向容器内的 8080,后续反代也走这个端口。
  • volumes把宿主机目录挂载到容器内的~/.openclaw,OpenClaw 默认把配置、工作区、审批文件都放在这个目录。
  • extra_hosts这一段是给容器访问宿主机用的,如果你要在 OpenClaw 里接宿主机上的 Ollama 或其他本地服务,这句就有用了。

写好后先别急着启动。我先用docker compose config检查一下配置文件语法,确认没问题再启动:

cd /opt/openclaw docker compose config

这个命令会把你写的 Compose 文件渲染成完整配置打印出来,如果有 YAML 语法错误会直接报错,比启动时再排查省心。

3.3 首次启动与初始化配置:openclaw.json 是核心中的核心

执行docker compose up -d启动容器,然后看启动日志:

docker compose logs -f

第一次启动时,OpenClaw 会在挂载目录/opt/openclaw/data下生成默认配置和目录结构。大概几分钟后,你会看到类似“server listening on 8080”的日志,说明基础服务已经起来了。

这时打开目录看结构:

root@VM:/opt/openclaw# ls -la data/ total 16 drwxr-xr-x 4 root root 4096 ... drwxr-xr-x 2 root root 4096 ... -rw-r--r-- 1 root root 4096 ... openclaw.json drwxr-xr-x 2 root root 4096 ... workspace drwxr-xr-x 2 root root 4096 ... skills

接下来就要编辑openclaw.json。这个文件负责告诉 OpenClaw:你要接哪个模型、用谁家的 API、默认行为是什么。一个最简配置大概是这样:

{ "models": { "default": { "provider": "openai", "model": "gpt-4o-mini", "apiKeyEnvVar": "OPENAI_API_KEY" } }, "skills": { "enabled": true, "paths": ["/root/.openclaw/skills"] }, "workspace": { "path": "/root/.openclaw/workspace" } }

不同版本的字段名可能有差异,但这个文件的核心逻辑不会变:告诉 OpenClaw 用哪个模型、去哪里加载技能、工作目录在哪。我第一次部署时就在这个文件上卡了挺久,后来学聪明了,先看官方文档里的配置示例对照着填,而不是凭记忆写。如果你还没拿到模型 API Key,也可以在配置里留一个"addAiLater": true之类的占位字段,先把服务跑通,后面随时补上。

改完配置后重启容器让配置生效:

docker compose restart openclaw

3.4 配置角色规则:用 Markdown 给智能体立规矩

OpenClaw 最有意思的地方在于,它的“人设”和“工作规则”可以用简单文本写在 workspace 里。我第一次配置时写了一个AGENTS.md文件放在data/workspace下,内容大概是这样:

# OpenClaw Assistant 你是运行在云端的数字助理,负责处理日常自动化任务。 ## 工作原则 1. 在执行任何删除类操作前,必须向用户确认。 2. 遇到不确定的信息,优先查阅 workspace 中的资料文件。 3. 每次完成任务后,在 workspace/output 目录生成结构化报告。

这就是 OpenClaw 和传统“机器人平台”最大的区别,你在写文档而不是拉流程节点。它读到你写的规则后,会在实际执行任务时遵守。我用下来觉得,规则写得越具体,执行结果越稳定。比如你只写“遇到不确定的信息要确认”它会频繁打断你;但如果你写“遇到不确定的信息,先从已有资料中检索,检索不到再请求用户”,它的自主性就好很多。

4. 进阶配置:让 OpenClaw 在云端更安全、更好用

4.1 配置 HTTPS 反向代理:Caddy 是最省心的选择

服务跑在 8080 端口上,直接用 IP:8080 访问也能用,但不安全也不好看。我推荐用 Caddy 做反向代理,它最大的优势是自动申请和续签 HTTPS 证书,不用手动管理证书文件。安装 Caddy 很简单:

apt install -y caddy

然后编辑/etc/caddy/Caddyfile,写入:

openclaw.example.com { reverse_proxy localhost:8080 }

保存后重启 Caddy:

systemctl reload caddy

Caddy 会自动检测到域名解析,并申请 Let’s Encrypt 免费证书。整个过程不用你碰证书文件,只要域名解析正确,一般一两分钟内就能通过 HTTPS 访问。

如果你更习惯 Nginx,也可以用类似的 server 配置,但需要自己申请证书。腾讯云控制台有免费 SSL 证书可供下载,下载后放到服务器上,再在 Nginx 配置里指定证书路径。两种方案都能跑通,区别只在于 Caddy 更自动化、Nginx 更普及、资料更多。

4.2 安全组与防火墙:只放行必要的端口

腾讯云服务器的安全组是一个网络层面的访问控制,配置错了,服务就完全不可达。我的建议是:

  • 只放行 22(SSH)、80(HTTP)、443(HTTPS)这三个端口。
  • 8080 这个端口不要对全网段开放,只允许你自己电脑的 IP 访问,或者干脆不开,完全走 Caddy 反代。

安全组规则可以在腾讯云控制台实例详情页里改。例如“8080”端口的来源填写你自己的公网 IP,格式是你的公网IP/32,这样别人扫不到你的 OpenClaw 端口,攻击面小很多。

操作系统内部的防火墙也要同步检查:

ufw status

如果开了 UFW,需要放行同样的端口:

ufw allow 22/tcp ufw allow 80/tcp ufw allow 443/tcp

注意:如果你在腾讯云安全组放行了端口,但服务器连不上,先检查系统防火墙 UFW 是否拦截了流量。安全组是“云外”过滤,UFW 是“云内”过滤,两层都要通才行。

4.3 数据备份:把整个 data 目录归档到对象存储

OpenClaw 跑得越久,workspace 里的积累越宝贵,配置和审批规则也是不可再生的。我每周做一次全量备份,把整个/opt/openclaw/data目录 tar 打包,然后传到腾讯云 COS 对象存储:

tar -czf openclaw-backup-$(date +%F).tar.gz -C /opt/openclaw data

如果你是第一次部署,建议在配置完成、验证通过之后,立刻做一次备份并下载到本地。这样哪怕之后不小心把服务器玩坏了,也能快速恢复到初始可用状态。

4.4 审批机制:小心处理 exec-approvals.json

OpenClaw 对敏感操作有审批机制,比如执行 shell 命令、修改关键文件,它会把需要批准的规则记录到~/.openclaw/exec-approvals.json文件里。你在日志里如果看到类似“legacy exec approvals exist at /root/.openclaw/exec-approvals.json”的提示,不用慌,这是 OpenClaw 发现了旧的审批记录。

处理方式有两种:要么用openclaw命令的审批管理功能查看和确认,要么直接查看这个 JSON 文件,手动编辑不需要的审批项。只要容器内执行权限没变,这个文件就不会导致任务中断。我在测试环境里遇到过容器重建后权限变化,当时花了挺久才明白是挂载目录属主变了。后来统一用 root 用户跑容器,或者显式指定 PUID/PGID,问题就再没出现过。

5. 常见问题与排查技巧实录

5.1 docker compose 起不来,日志一闪而过

这是新手最容易碰到的问题。先不要慌,用docker compose logs看错误信息:

cd /opt/openclaw docker compose logs --tail=100

最常见的几种原因和对应解法:

  • 镜像拉取失败:可能是网络问题。配置 Docker 镜像加速器,或者检查你部署时填的镜像名是否正确。
  • 端口被占用:lsof -i :8080看看 8080 是否被别的程序占着,换一个宿主机端口,比如9090:8080
  • 配置格式错误:openclaw.json少个冒号或者多逗号都会导致启动失败。本地用jq . openclaw.json校验一下 JSON 语法。

5.2 模型 API 报 401 或超时

服务起来了,但一问它问题就报错,十有八九是环境变量的问题。先确认 API Key 是否传进了容器:

docker exec -it openclaw env | grep API

如果没有输出,就是 Compose 文件里的environment段没生效,检查 key 拼写和值里有没有多余空格。如果是超时,重点看模型接口的base_url是否指向了不可达的地址。调用海外模型接口时,网络不通畅是常事,这种情况建议在腾讯云上选择带访问加速的方案,或者改用国内可直接访问的模型服务商。

5.3 Windows 本地部署时提示命令找不到

虽然这篇教程的主线是腾讯云部署,但很多人是在 Windows 本机试过之后才转上云的。在 Windows 上如果 PowerShell 里执行openclaw提示“无法识别 cmdlet”,大概率是安装后可执行文件没有加入 PATH。解决办法是找到openclaw.exe的实际安装目录,手动把它加入系统环境变量的 Path,然后重启终端。这个问题和云上部署没有直接关系,但如果你本机还没跑通,可以先解决 PATH 问题再谈云端。

5.4 定时任务不准时

OpenClaw 的定时任务依赖容器内时钟。如果服务器时区不对,任务执行时间就会和预期差几个小时。解决方法是给容器设置正确时区:

environment: - TZ=Asia/Shanghai

重启容器后,用docker exec openclaw date验证时间,确认容器内时间和你的本地时间一致。我踩过这个坑之后,每次部署新环境都会顺手写上TZ=Asia/Shanghai,已经成习惯了。

5.5 常用排查命令速查表

场景命令
看容器状态docker compose ps
查看实时日志docker compose logs -f
进入容器调试docker exec -it openclaw bash
检查端口监听ss -lntp | grep 8080
检查域名解析dig @119.29.29.29 openclaw.example.com
校验 JSON 配置jq . /opt/openclaw/data/openclaw.json

6. 写在最后:部署完之后,建议你先做这四件事

前面部署流程走完,服务也能正常访问了,但真正让 OpenClaw 变得好用,还要靠日常配置的积累。我根据自己的实际经验,建议你先照下面这个顺序去折腾:

第一,先给 OpenClaw 写一份清晰的 AGENTS.md,把它的任务边界、工作习惯、每日固定动作写成文档。别急着接一堆工具,先让它按文档跑通一个最基础的任务,验证配置链路是否正常。

第二,配置一到两个真正高频使用的 skills。比如让它定时拉取某个网页的内容、整理你常用的 RSS 订阅、把日报自动归到指定目录。少而精地加技能,出了问题也容易定位。

第三,打开 Caddy 日志和 OpenClaw 日志的循环归档。服务跑起来之后,日志会越积越多,建议配置 logrotate 或者定期清理,避免磁盘被日志占满,这是长期运行最容易忽视的一点。

第四,充分用好事后备份。每次改配置、加技能之前,先打包一次 data 目录;确认改动没问题后再删旧备份。这个习惯让我在无数次“改坏了想回滚”的时候保住了一整天的劳动成果。

腾讯云上部署 OpenClaw 这件事,本身不复杂,真正考验人的是对配置文件里每个字段的理解。我也是从“跑通一个 Demo”到“让它稳定处理日常任务”慢慢磨过来的。希望这份教程能帮你把开头那段路走顺,少踩几个我踩过的坑。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/8 3:12:38

网卡MAC地址硬刷工具实战:从软改失效到编程器刷写全流程

简介:面向需要硬刷网卡MAC地址的用户,尤其是搭建黑群晖后希望通过修改物理地址规避网络认证、完成系统洗白的群晖玩家,也适合遇到MAC地址冲突或更换网卡后需重新标识设备的场景。压缩包共197个文件,仅4.52MB,内含可执行…

作者头像 李华
网站建设 2026/9/8 3:12:31

Pandas数据清洗实战:从脏数据到可视化图表

做数据分析这些年,我带过不少新人,发现一个特别普遍的现象:很多人学Pandas是从某个小例子开始的,会读文件、会groupby、会画个折线图,觉得自己已经上手了。结果真拿到一份业务数据,当场就懵了——日期列有的…

作者头像 李华
网站建设 2026/9/8 3:10:50

C++ vector查找全攻略:从std::find到lower_bound的工程实践

1. 从一次代码评审说起:查找vector元素,真的会用std::find吗?先讲个真实经历。前段时间给团队做代码评审,一位刚工作两年的同学写了个功能:从一批待处理的订单中,判断某个订单ID是否在已审核通过的名单里。…

作者头像 李华
网站建设 2026/9/8 3:10:49

WorkBuddy 实战教程:从零搭建 AI Agent 开发平台与 Skill 技能体系

想把这篇文章写成一份真正能跟着操作的 WorkBuddy 教程,而不是只罗列功能。先从大家最关心的问题切入:WorkBuddy 到底是什么、在一个 AI Agent 项目里它扮演什么角色,然后从安装配置、Skill 机制、实战案例到排错建议,一条线走完整…

作者头像 李华
网站建设 2026/9/8 3:10:10

B站会员购抢票脚本拆解:接口自动化与验证码处理实战

简介:面向B站会员购漫展抢票场景的自动化脚本练习包,适合想学习接口调用、验证码处理与图形化工具开发的Python开发者,也便于研究抢票类自动化流程的爱好者参考。资源共66个文件,整包约19.54MB。主体包含21个Python源码文件&#…

作者头像 李华
网站建设 2026/9/8 3:09:05

后端开发三年,我才真正搞懂什么是“高内聚低耦合”

刚入行的时候,我就知道“高内聚、低耦合”这六个字,面试时背得滚瓜烂熟。但说实话,真正理解它是什么、为什么要这样做,是在写了三年代码之后。 不懂的时候,以为只是抽象的概念 前两年写代码,我对这六个字…

作者头像 李华