1. 项目概述:为什么选择在腾讯云Lighthouse上部署OpenClaw/ClawDBot?
最近在折腾AI智能体,OpenClaw(也叫ClawDBot)这个项目挺火的,它是一个开源的AI智能体框架,能帮你把大语言模型(比如GPT、Claude或者本地部署的Llama)变成一个能执行具体任务的“数字员工”。你可以让它帮你自动处理邮件、分析数据,甚至管理服务器。但很多朋友在第一步——部署上就卡住了,尤其是在云服务器环境。本地部署受限于硬件,而直接购买昂贵的云AI服务又不够灵活。这时候,腾讯云的Lighthouse(轻量应用服务器)就成了一个绝佳的折中方案:成本可控、开箱即用、网络环境稳定,特别适合个人开发者或小团队尝鲜和深度使用。
我花了几天时间,在腾讯云Lighthouse上从零开始完整部署了一套OpenClaw,期间踩了不少坑,也总结出了一套相对顺畅的流程。这篇指南就是我的实战记录,目标很明确:让你能跟着步骤,在半小时到一小时内,成功在腾讯云上跑起你自己的AI智能体。我们会涵盖从服务器选购、基础环境配置、Docker部署OpenClaw,到接入模型、配置技能等全流程,并重点分享那些官方文档可能没细说,但实际操作中一定会遇到的“坑”和解决方案。
2. 核心准备:腾讯云Lighthouse服务器选购与初始配置
部署的第一步是准备战场。腾讯云Lighthouse的选择和初始设置,直接决定了后续部署的顺畅度和使用体验。
2.1 服务器规格选择:平衡性能与成本
OpenClaw本身作为框架,资源消耗不大,但它的“大脑”——大语言模型(LLM)才是资源消耗的主力。因此,选购服务器的核心思路是:为模型运行预留足够资源。
- 最低配置(尝鲜/测试):如果你打算主要使用云端API(如OpenAI GPT-4o、Claude 3.5 Sonnet),那么服务器主要承担OpenClaw框架的运行和转发请求。此时,选择2核CPU、2GB内存、50GB SSD的配置即可。腾讯云Lighthouse常有针对新用户的特惠活动,这个配置每月可能只需几十元。
- 推荐配置(本地模型/生产试用):如果你想在服务器上本地部署轻量级开源模型(如Qwen2.5-7B-Instruct、Llama-3.2-3B),或者同时运行多个智能体,那么需要更强的算力。建议选择4核CPU、8GB内存、100GB SSD或更高配置。内存是关键,7B参数量的模型加载就需要约14GB内存(按FP16精度估算),8GB内存可以运行量化到4-bit或8-bit的版本。CPU核心数影响模型推理速度。
- 地域选择:尽量选择离你或你的目标用户群体更近的地域,以降低网络延迟。对于国内用户,上海、广州、北京地域都是不错的选择。如果你需要访问国际AI服务,可以考虑香港地域(但需注意相关合规要求)。
实操心得:千万不要抱着“先买个最低配试试”的心态去跑本地模型。我一开始用2GB内存的实例尝试跑量化后的模型,直接触发OOM(内存溢出)导致系统崩溃,ssh都连不上,只能重启。建议至少从4GB内存起步。
2.2 系统镜像与安全组设置
购买服务器时,系统镜像推荐选择Ubuntu 22.04 LTS。这是一个长期支持版本,社区资料丰富,对Docker的支持也非常好,能避免很多因系统版本过新或过旧导致的兼容性问题。
安全组(防火墙)设置是保障服务器安全的第一步,也是部署服务后能否访问的关键。腾讯云Lighthouse控制台提供了便捷的安全组配置。你需要开放以下端口:
- 22端口:SSH远程连接,必须开放。
- 80端口:HTTP服务,用于后续可能部署的Web界面或反向代理。
- 443端口:HTTPS服务,同上。
- 3000端口:这是OpenClaw默认的Web用户界面端口,必须开放。
- 11434端口:如果你计划在本地部署Ollama来运行模型,这个端口是Ollama的API端口,也需要开放。
设置时,源IP可以暂时设置为0.0.0.0/0(允许所有IP访问)以便测试,但在生产环境中,强烈建议将其改为你固定的公网IP地址段,以减少被扫描和攻击的风险。
2.3 服务器初始化:连接与基础环境
购买完成后,通过SSH连接到你的Lighthouse实例。腾讯云控制台提供了网页版的VNC连接和获取初始密码的方法。
登录后,第一件事是更新系统并安装一些必备工具:
# 更新软件包列表并升级现有软件 sudo apt update && sudo apt upgrade -y # 安装常用工具 sudo apt install -y curl wget git vim net-tools htop接下来是安装Docker和Docker Compose。这是部署OpenClaw最推荐的方式,能解决环境依赖的难题。
# 安装Docker官方GPG密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 设置Docker稳定版仓库 echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 安装Docker引擎 sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io # 安装Docker Compose插件(新方式) sudo apt install -y docker-compose-plugin # 验证安装 docker --version docker compose version # 将当前用户加入docker组,避免每次都要sudo sudo usermod -aG docker $USER # 注意:执行此命令后,需要退出当前SSH会话并重新登录,权限才会生效。重新登录后,运行docker ps命令,如果不报错,说明Docker环境已经就绪。
3. 核心部署:使用Docker一键运行OpenClaw
环境准备好后,部署OpenClaw本身反而非常简单,这得益于其良好的容器化支持。
3.1 获取部署配置文件
OpenClaw的官方仓库通常提供了Docker Compose的示例文件。我们直接使用它。
# 创建一个项目目录并进入 mkdir openclaw-deploy && cd openclaw-deploy # 从官方仓库拉取docker-compose.yml示例文件 # 这里以某个公开的示例为准,实际请参考OpenClaw项目最新文档 curl -O https://raw.githubusercontent.com/openclaw/openclaw/main/docker-compose.yml在运行前,我们需要编辑这个docker-compose.yml文件,进行一些关键配置。用vim或nano打开它。
3.2 关键配置解析与修改
一个典型的docker-compose.yml可能长这样,我们需要关注几个部分:
version: '3.8' services: openclaw: image: openclaw/openclaw:latest container_name: openclaw restart: unless-stopped ports: - "3000:3000" # 将容器的3000端口映射到主机的3000端口 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} # 使用云端OpenAI API - OPENAI_BASE_URL=${OPENAI_BASE_URL} # 可改为其他兼容API的地址 - DEFAULT_MODEL=gpt-4o-mini # 默认使用的模型 # - OLLAMA_BASE_URL=http://host.docker.internal:11434 # 如果使用本地Ollama,取消注释并修改 volumes: - ./data:/app/data # 持久化存储数据 networks: - openclaw-network networks: openclaw-network: driver: bridge需要修改和注意的环境变量:
OPENAI_API_KEY:如果你使用OpenAI的官方API,需要在此处填入你的API Key。但更安全的做法是使用环境变量文件。创建一个名为.env的文件:# .env 文件内容 OPENAI_API_KEY=sk-your-actual-openai-api-key-here OPENAI_BASE_URL=https://api.openai.com/v1 DEFAULT_MODEL=gpt-4o-mini然后在
docker-compose.yml中引用:env_file: - .env。切记不要将真实的API Key直接硬编码在yml文件中,更不要提交到Git仓库。使用本地模型(Ollama):如果你想在服务器上运行开源模型,需要先部署Ollama服务。可以在
docker-compose.yml中增加一个Ollama服务,或者单独运行。然后修改OpenClaw的环境变量:environment: - OLLAMA_BASE_URL=http://ollama:11434 # 如果Ollama在同一个compose网络中 # 或者如果Ollama运行在宿主机上,Docker容器需要特殊方式访问 - OLLAMA_BASE_URL=http://host.docker.internal:11434 # 对于Linux,可能需要额外配置 - DEFAULT_MODEL=qwen2.5:7b-instruct # 你通过Ollama拉取的模型名踩坑记录:在Linux服务器上,Docker容器默认无法通过
host.docker.internal访问宿主机服务。解决方法有两种:一是使用network_mode: host让容器共享主机网络(不推荐,有安全风险);二是在启动Docker时添加--add-host=host.docker.internal:host-gateway参数,或者在docker-compose.yml中为服务添加extra_hosts: - "host.docker.internal:host-gateway"。最清晰的方式是将Ollama也作为Compose中的一个服务。端口映射:确保
ports部分的3000:3000已设置,这样你才能通过http://你的服务器IP:3000访问OpenClaw的Web界面。
3.3 启动服务与验证
配置完成后,启动服务:
# 在包含 docker-compose.yml 和 .env 文件的目录下执行 docker compose up -d-d参数表示在后台运行。使用以下命令查看日志和状态:
# 查看运行状态 docker compose ps # 查看OpenClaw容器的实时日志 docker compose logs -f openclaw如果看到日志显示服务已启动在3000端口,没有报错,就可以打开浏览器访问了。
首次访问验证: 在浏览器地址栏输入http://<你的腾讯云服务器公网IP>:3000。如果能看到OpenClaw的登录或初始化界面,说明部署成功。首次使用可能需要创建一个管理员账户。
4. 模型接入:连接AI的“大脑”
部署好框架只是搭好了舞台,接入模型才是引入主角。OpenClaw支持多种模型接入方式。
4.1 方式一:使用云端API(最简单)
这是最快上手的方式。你只需要在OpenClaw的Web界面或环境变量中配置好API信息。
- 在OpenClaw Web界面,通常会有设置或模型配置页面。
- 填入你的API提供商(如OpenAI、Anthropic、DeepSeek等)的Base URL和API Key。
- 选择可用的模型(如
gpt-4o-mini,claude-3-5-sonnet-20241022)。 - 保存后,即可在创建智能体时选择该模型。
优点:无需关心算力,模型能力强大且稳定。缺点:持续产生API调用费用,数据需要传输到第三方。
4.2 方式二:本地部署Ollama + 开源模型(更可控)
如果你想完全掌控数据,或者长期使用成本更低,可以在同一台Lighthouse服务器上部署Ollama来运行开源模型。
步骤1:部署Ollama同样使用Docker方式部署Ollama:
# 创建一个单独的目录,或者在上面的docker-compose.yml中新增服务 # 这里演示单独运行 docker run -d -v ollama_data:/root/.ollama -p 11434:11434 --name ollama --restart always ollama/ollama步骤2:拉取并运行模型Ollama启动后,拉取一个模型,例如轻量级的Qwen2.5:
# 进入Ollama容器执行命令,或者直接在宿主机上通过curl操作API # 方法1:进入容器 docker exec -it ollama ollama pull qwen2.5:7b-instruct # 方法2:通过API拉取(推荐,可以看到进度) curl http://localhost:11434/api/pull -d '{"model": "qwen2.5:7b-instruct"}'拉取需要时间,取决于模型大小和网络。7B模型大约4-5GB。
步骤3:在OpenClaw中配置Ollama修改OpenClaw的配置,将模型端点指向Ollama。如前所述,需要确保网络连通。如果Ollama和OpenClaw都用Docker Compose管理,配置最简单:
# 在docker-compose.yml中 services: ollama: image: ollama/ollama:latest container_name: ollama restart: unless-stopped volumes: - ollama_data:/root/.ollama networks: - openclaw-network openclaw: # ... 其他配置不变 environment: - OLLAMA_BASE_URL=http://ollama:11434 # 使用服务名访问 - DEFAULT_MODEL=qwen2.5:7b-instruct networks: - openclaw-network # 确保depends_on设置,让openclaw在ollama之后启动 depends_on: - ollama volumes: ollama_data: networks: openclaw-network: driver: bridge然后重启服务:docker compose down && docker compose up -d。
注意事项:在资源有限的服务器上运行7B模型,推理速度可能较慢(一次生成可能需要10-30秒)。你可以尝试更小的模型(如3B、1.5B),或者使用量化版本(如
qwen2.5:7b-instruct-q4_K_M),Ollama在拉取时默认会下载一个优化过的版本。可以通过ollama pull qwen2.5:7b-instruct-q4_K_M指定。
5. 技能配置与实战:让你的智能体“活”起来
OpenClaw的核心价值在于其“技能”(Skills)系统。智能体通过调用技能来与现实世界交互。
5.1 内置技能与自定义技能
OpenClaw通常自带一些基础技能,如:
- 网页搜索:让AI能获取实时信息。
- 代码执行:在沙箱中运行Python代码,进行数据分析或计算。
- 文件读写:管理服务器上的文件。
- HTTP请求:调用外部API。
启用这些技能通常需要在Web界面的“技能”或“插件”管理页面进行配置。例如,配置网页搜索可能需要填入Serper或Google Search API的密钥。
5.2 配置一个实战技能:自动发送邮件
我们以配置一个“发送邮件”技能为例,展示如何让智能体执行具体任务。
准备SMTP信息:你需要一个邮箱的SMTP服务器信息(如QQ邮箱、163邮箱或企业邮箱)。以QQ邮箱为例,需要在邮箱设置中开启POP3/SMTP服务并获取授权码(不是登录密码)。
在OpenClaw中配置技能:
- 进入OpenClaw Web管理界面,找到技能配置区域。
- 找到“Email”或“SMTP”相关技能,点击配置。
- 填入以下信息:
- SMTP服务器:
smtp.qq.com - 端口:
465(SSL) 或587(TLS) - 发件人邮箱:
your-email@qq.com - 密码/授权码:
你的QQ邮箱授权码 - 默认收件人:(可选)
- SMTP服务器:
创建智能体并测试:
- 创建一个新的智能体(Agent)。
- 在它的技能列表中,勾选上刚刚配置好的“发送邮件”技能。
- 给智能体下达指令:“请给
test@example.com发送一封邮件,主题是‘OpenClaw测试’,内容为‘这是一封来自腾讯云Lighthouse上部署的OpenClaw智能体的测试邮件。’” - 观察智能体的执行过程。它应该会理解你的指令,调用邮件技能,并成功发送。
5.3 技能组合与复杂工作流
真正的威力在于技能组合。你可以创建一个智能体,让它:
- 使用“网页搜索”技能查找今天某地的天气。
- 使用“代码执行”技能,将天气数据整理成一份简报。
- 使用“发送邮件”技能,在每天上午9点将简报发送给你。
- 使用“HTTP请求”技能,如果发现暴雨预警,则触发一个钉钉/飞书群通知。
OpenClaw的“工作流”或“计划任务”功能可以帮你编排这些复杂的自动化流程。这需要你在Web界面中通过图形化或YAML方式定义任务的触发条件和执行步骤。
6. 网络与安全优化:让服务更稳定、更安全
在公网服务器上运行服务,安全和稳定性不容忽视。
6.1 使用Nginx反向代理与配置HTTPS
直接通过IP和端口访问既不安全也不专业。我们需要用Nginx做反向代理,并配置SSL证书启用HTTPS。
步骤1:安装Nginx
sudo apt install -y nginx步骤2:配置Nginx站点创建一个新的配置文件:
sudo vim /etc/nginx/sites-available/openclaw内容如下(替换your_domain.com为你的域名或服务器IP):
server { listen 80; server_name your_domain.com; # 或你的服务器IP location / { proxy_pass http://localhost:3000; # 指向OpenClaw服务 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 以下两行对WebSocket很重要,如果OpenClaw有实时功能 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }创建符号链接并测试配置:
sudo ln -s /etc/nginx/sites-available/openclaw /etc/nginx/sites-enabled/ sudo nginx -t # 测试配置语法 sudo systemctl reload nginx # 重载配置现在,你可以通过http://your_domain.com访问OpenClaw了。
步骤3:使用Let‘s Encrypt配置HTTPS(免费SSL证书)安装Certbot工具:
sudo apt install -y certbot python3-certbot-nginx获取并安装证书:
sudo certbot --nginx -d your_domain.com按照交互提示操作,Certbot会自动修改Nginx配置,将HTTP重定向到HTTPS,并管理证书续期。
6.2 基础安全加固
- 修改SSH端口:编辑
/etc/ssh/sshd_config,将Port 22改为一个非标准端口(如Port 23456),然后重启SSH服务sudo systemctl restart sshd。务必在操作前确保新端口已在安全组中开放,并保持一个现有连接不关闭以测试新端口,否则可能被锁在服务器外。 - 禁用root密码登录:在
sshd_config中设置PermitRootLogin prohibit-password或PermitRootLogin no,并改用密钥对登录。 - 配置防火墙(UFW):Ubuntu自带的UFW防火墙易于使用。
sudo ufw allow 23456/tcp # 允许新的SSH端口 sudo ufw allow 80/tcp sudo ufw allow 443/tcp # 如果你不再需要直接访问3000端口,可以关闭它,因为我们已经用了Nginx代理 # sudo ufw deny 3000/tcp sudo ufw enable - 定期更新:设置无人值守更新或定期手动执行
sudo apt update && sudo apt upgrade。 - 备份数据:定期备份OpenClaw容器挂载的本地数据卷(
./data目录)。腾讯云Lighthouse也提供快照功能,可以在重大变更前创建系统盘快照。
7. 运维与故障排查:保持智能体稳定运行
部署完成只是开始,日常运维和问题排查同样重要。
7.1 常用Docker命令
- 查看日志:
docker compose logs -f openclaw(实时查看) - 重启服务:
docker compose restart openclaw - 停止服务:
docker compose down(会停止并删除容器,但保留数据卷) - 更新镜像:先拉取最新镜像
docker compose pull openclaw,然后docker compose up -d。 - 进入容器:
docker exec -it openclaw /bin/bash(用于调试)。 - 查看资源占用:
docker stats。
7.2 常见问题与解决方案
问题1:访问http://IP:3000连接被拒绝或超时。
- 检查:服务器安全组是否开放了3000端口?
sudo ufw status查看防火墙规则。 - 检查:OpenClaw容器是否正在运行?
docker compose ps。 - 检查:容器日志是否有错误?
docker compose logs openclaw。常见错误是环境变量配置不对导致启动失败。
问题2:智能体调用模型时长时间无响应或报错。
- 如果使用Ollama:首先检查Ollama服务是否正常,
curl http://localhost:11434/api/tags查看已拉取的模型。检查OpenClaw中OLLAMA_BASE_URL配置是否正确(容器内网络)。尝试在Ollama容器内直接运行对话测试:docker exec -it ollama ollama run qwen2.5:7b-instruct。 - 如果使用API:检查API Key是否正确,是否有余额,网络是否能访问API端点(在服务器上
curl测试一下)。
问题3:服务器内存/CPU占用过高。
- 排查:运行
htop命令查看进程。罪魁祸首通常是Ollama运行的模型。 - 解决:考虑换用更小的模型,或者使用更激进的量化(如
q4_K_S)。调整Ollama的并行参数(OLLAMA_NUM_PARALLEL)限制并发请求。如果使用API方案,则此问题不显著。
问题4:Docker容器启动失败,提示端口被占用。
- 解决:
sudo netstat -tulpn | grep :3000查找占用端口的进程,停止它或修改docker-compose.yml中的端口映射(如"8080:3000")。
问题5:数据丢失。
- 预防:确保
docker-compose.yml中配置了数据卷持久化(- ./data:/app/data)。定期备份这个./data目录。
7.3 性能监控与日志管理
对于长期运行的服务,建议配置基础监控:
- 基础监控:腾讯云Lighthouse控制台自带CPU、内存、流量监控图表。
- 日志管理:Docker容器的日志默认会增长。可以配置日志轮转,在
docker-compose.yml中为服务添加日志驱动和大小限制:
这会将每个容器的日志文件限制为最多3个,每个10MB。services: openclaw: # ... 其他配置 logging: driver: "json-file" options: max-size: "10m" max-file: "3"
部署和运维OpenClaw的过程,就是一个典型的云原生应用管理实践。从资源规划、容器化部署、网络配置到安全加固和故障排查,每一步都考验着对系统和工具的理解。当看到自己部署的智能体能够稳定运行,并按照指令完成一个个任务时,那种成就感远超单纯调用一个在线API。这个在腾讯云Lighthouse上搭建的AI智能体平台,不仅是一个工具,更成为了一个可扩展、可定制的自动化基础架构起点。你可以基于它,继续探索更复杂的技能集成、多智能体协作,或是将其作为后端服务,为你自己的应用注入AI能力。