如果你一直想让 QQ 挂一个 24 小时在线的 AI 管家,OpenClaw(社区里也叫 Clawdbot)是我踩坑无数之后,觉得最适合零基础用户的开源方案。这篇文章完整记录了我从一台空服务器开始,把 OpenClaw 部署到云服务器上,并在 QQ 里成功和机器人对话的全过程,同时也包含了本地电脑如何快速跑起来、怎么排查日常问题。无论你是刚买第一台服务器、完全没碰过 Linux,还是想在本地 Windows 上先练手,都可以照着做。
先说结论:只要能耐心看完全文,基本都能让 OpenClaw 跑起来。这个项目并不是那种复杂的业务系统,而是一个“消息入口 + 大模型 API + 插件”的轻量框架,难点集中在环境配置上。我会尽量用大白话解释每一步在做什么、为什么要这么做,而不是丢一堆命令让你复制之后原地懵掉。
1. 项目与方案概览
1.1 OpenClaw 到底是个什么东西
OpenClaw 的核心定位,可以理解成一个“个人 AI 助理的壳子”。它本身不生产智能,而是负责把各种大语言模型的能力封装成统一接口,再通过不同适配器接到你常用的聊天软件上。QQ 只是其中一种适配器,你还可以接其他即时通讯工具,但 QQ 这端往往是最多人需要的。
从架构上说,它主要由三块组成:消息适配器负责接收 QQ 上发来的消息,把它转成内部标准消息格式;模型路由模块负责决定把消息交给哪个大模型 API 去处理;插件系统则用来做额外的事情,比如定时提醒、天气查询、关键词回复。这个拆分思路很像你手机上那个“负一屏助手”:核心是理解你的意图,外层是各种便捷功能。
我用一个生活类比帮你建立直觉:OpenClaw 就像你给 QQ 请了一位“小管家”。你在聊天框里发一句“帮我整理一下这周待办”,它就把这句话转给大脑(大模型 API),拿到结果后再把回复发回聊天框。如果你给“小管家”配置了记事本插件,它还能主动在每天早上八点把日程推送给你。
所以它解决的核心问题是:不要写一堆复杂的网页后台,也不要自己维护模型推理服务,只需要一个开源框架、一个 API Key、一个 QQ 账号,就能拥有一台真正意义上“随叫随到”的智能助手。适合人群非常明确:个人开发者、数码爱好者、想给社团或群聊做值班机器人的学生,以及单纯想尝试大模型应用的新手。
1.2 云服务器与本地部署的取舍
部署方案有两类,我建议你先想清楚自己的需求,再往下看具体命令。
如果你希望机器人 7×24 小时在线,哪怕手机锁屏、电脑关机,群里随时有人 @ 它也能秒回,那么云服务器是更合适的选择。开销方面,一台入门级云服务器大概每年几百元,比一直开着一台电脑划算,而且云服务器不用占家里带宽,系统崩了也能靠控制台重置。代价是你需要稍微了解一点 Linux 命令,但放心,本文给的步骤足够傻瓜化。
如果你只是个人尝鲜,想先看看 OpenClaw 到底能做什么,本地部署是最快的方式。本地跑的好处是零成本、改配置立刻生效,日志查看方便,调试体验比云服务器顺滑得多。但代价是电脑必须一直开着,网络也不能断。另外,如果你的电脑和 QQ 服务器之间连接不稳定,消息可能会有延迟。
我的实际建议是:先用本地部署跑通,确认整个链路没问题,再花半小时把同一套东西搬到云服务器上长期运行。因为 OpenClaw 的配置文件和代码在两个环境里几乎完全一致,迁移成本非常低。接下来的章节,我会把两种环境的准备工作分开讲,方便你按自己的路线走。
2. 部署前的准备工作
2.1 软件依赖清单
OpenClaw 后续版本对这个框架的依赖要求还算克制,但版本必须对齐,否则很容易出现一些看起来很奇怪的报错。建议先确认以下基础软件:
- 操作系统:云服务器推荐 Ubuntu 22.04 LTS,本地 win/mac 也建议用兼容层或者直接跑 Docker。
- Python:3.10 或更高版本,强烈建议使用 3.11,很多依赖包在 3.11 上表现最稳定。
- Git:用来拉取项目源码。
- Node.js:18 或更高版本,主要用于内置的管理面板和部分插件。
- Docker(可选):如果不想折腾本地环境,可以用容器方式跑,但对零基础而言,这里更推荐直接装依赖,遇到问题更容易排查。
为什么要强调版本?因为 OpenClaw 有些依赖库会使用较新的 Python 语法,如果你用系统的默认 Python 3.8,可能会在一开始就遇到“SyntaxError”或者“ModuleNotFoundError”,这会严重打击信心。所以,先确认版本再往后走,是最省时间的。
2.2 云服务器的购买与登录要点
这里我们以市面上最常见的轻量应用服务器为例,操作方式在几乎所有云平台都一样。购买时选择“应用镜像”里的 Ubuntu 22.04,不要选 Windows 镜像;配置上,2 核 2G 内存就可以带动多数场景,如果后续还要跑多个模型或者频繁处理长文本,建议升到 4G 内存。硬盘默认 50G 足够。
购买完成后,请在云平台控制台的安全组或防火墙中放行这些端口:22(SSH 登录)、80/443(Web 管理面板)、以及你自定义的消息服务端口,比如 8000。很多新手明明服务已经启动,却从外面连不上,90% 是因为端口没放行,这个坑后面会细说。
拿到服务器的公网 IP 和 root 密码后,Mac 用户直接打开终端输入ssh root@你的IP;Windows 10/11 用户可以在 PowerShell 里执行同样的命令,也可以使用第三方终端工具。第一次登录会提示确认指纹,输入 yes 再回车,然后输入密码,看到类似root@VM-...:~#的提示符就代表登录成功。
2.3 本地开发环境的准备
在本地电脑上,Windows 用户先从 Python 官网下载并安装 Python 3.11,安装时必须勾选“Add Python to PATH”选项,否则后续在命令行里敲python会没反应。然后安装 Git for Windows,安装过程中使用默认选项即可。Node.js 从官网下载 LTS 版本,同样保持默认安装。
macOS 用户不需要自己装 Git,系统自带;Python 则需要用 Homebrew 安装,避免直接使用系统附带的 Python(版本偏老)。先用brew install python@3.11装好,再执行python3 --version验证。Linux 用户最简单,Ubuntu 下执行安装命令就行,这部分后面云服务器章节也会详细说。
本地环境准备好之后,我建议在某个磁盘空间充足的位置创建统一的项目目录,比如D:\OpenClaw或~/OpenClaw,后面所有操作都在这个目录下进行,避免路径混乱。
3. 核心配置文件的逐一拆解
3.1 配置文件长什么样
OpenClaw 的配置集中在config.yaml文件里。项目源码中通常会提供一个示例文件config.example.yaml,我们部署时先把示例复制成正式配置,再逐项修改。一个典型的配置看起来像这样:
bot: name: "Clawdbot" adapter: qq debug: false model: provider: openclaw-infer api_key: ${API_KEY} model_name: claude-3.5-haiku temperature: 0.7 max_tokens: 2000 qq: account: "1234567890" protocol: android ws_port: 8000 admin_qq: "你的管理员QQ号" reminder: enabled: true timezone: "Asia/Shanghai"这个配置文件分成了四个主要部分:bot指定机器人的全局信息;model配置大模型的接入参数;qq配置 QQ 侧的连接参数;reminder是内置定时提醒功能的开关。你第一次看可能觉得字段多,但只要照着填几处关键信息就行。
在修改配置前,我强烈建议先复制一份原始文件:cp config.example.yaml config.yaml,然后用你熟悉的文本编辑器打开。云服务器上没有图形界面,可以用nano config.yaml或vim config.yaml直接编辑。如果你对 vim 不熟悉,nano 的按键提示更友好,足够完成简单修改。
3.2 大模型 API 密钥的获取与写入
你要做的第一件关键事,是去一个提供大模型接口的服务商那里申请 API Key。具体选择可以根据自己情况来:如果你在国内云服务器上运行,建议优先选择国内直接可访问的模型服务,省去网络上的额外麻烦;如果只是本地调试且网络环境允许,也可以使用海外服务商。关键原则是:请确保你的部署环境能稳定访问你选定的 API 地址。
申请 Key 之后,不建议直接把 Key 明文写在config.yaml里,因为配置文件可能会同步到 Git 或分享给他人。OpenClaw 支持环境变量引用,配置里写${API_KEY},然后在系统环境变量里设置真实值。例如在云服务器上,向/etc/profile追加一行:
export API_KEY=你的真实Key然后执行source /etc/profile使环境变量生效。启动 OpenClaw 时,它会自动从环境变量中读取。这样即使配置文件不小心泄露,别人也看不到你的 Key,安全性高很多。
3.3 QQ 适配器的关键参数
QQ 部分最关键的是adapter: qq和account字段。account是机器人登录的 QQ 号码,强烈建议使用一个小号,不要拿自己日常聊天的主号来跑,因为框架需要保持长时间的在线状态,频繁掉线或者触发风控会影响正常使用。
protocol: android表示使用基于安卓协议栈的登录方式,这是最通用的选择。第一次运行时,框架通常会生成一个二维码让你扫码,简单方便。如果遇到登录限制,也可以在配置中切换为qr协议,强制使用扫码登录,避免账号密码方式带来的风险。
ws_port: 8000是内置 WebSocket 服务的监听端口,这个端口只在需要外部 HTTP 推送或特定调试场景时才必须开放。日常如果是框架主动连接 QQ 服务器,就不需要公网开放这个端口。字段admin_qq建议填你自己的主号 QQ,用于接收系统通知,以及让管理员身份解锁更多操作权限。
4. 云服务器上的保姆级搭建实操
4.1 系统更新与基础工具安装
登录云服务器后,先更新系统软件包,这是每一个 Linux 环境都建议做的第一步:
sudo apt update sudo apt upgrade -y这个过程可能要几分钟,取决于服务器网络速度。更新完成后,统一安装后续需要用到的工具:
sudo apt install -y git curl wget python3-pip python3-venv nodejs npm顺便确认一下关键版本:
python3 --version git --version node --version如果python3 --version显示的版本低于 3.10,可以使用apt install python3.11来安装指定版本,或者添加 deadsnakes 源。这里不建议通过编译源码的方式升级 Python,太耗时也容易出问题。实测中,直接在 Ubuntu 22.04 上安装的就是 Python 3.10,满足 OpenClaw 的基本要求。
4.2 拉取源码与安装依赖
进入/opt或你喜欢的目录,拉取项目源码:
cd /opt git clone https://你的代码仓库地址/openclaw.git cd openclaw如果直接从国外源拉取较慢,可以先配置 git 使用国内镜像地址,然后再正常 clone。不要想着用什么特殊网络加速,国内镜像源已经足够快,也更稳定。
拉取完成后,创建 Python 虚拟环境并激活:
python3 -m venv .venv source .venv/bin/activate虚拟环境的作用是把这个项目的 Python 依赖和系统其他 Python 包隔离开,避免互相污染。激活后,你的命令行提示符前方会多出(.venv),这代表当前已进入虚拟环境。接着安装 Python 依赖:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple这里使用了清华镜像源,速度通常比默认源快很多。如果项目包含前端管理面板,可能还需要在对应前端目录执行npm install,同样建议配置 npm 国内镜像:npm config set registry https://registry.npmmirror.com。
4.3 初始化配置与首次启动
安装完成后,复制配置文件并编辑:
cp config.example.yaml config.yaml nano config.yaml在model部分填入你申请好的 API Key 对应环境变量;在qq部分填入机器人 QQ 小号;admin_qq填你自己的主号。确认无误后保存退出。然后首次启动:
python main.py启动过程会打印大量日志。正常情况下,会看到加载各插件、连接模型服务的提示。首次连接 QQ 适配器时,终端会显示一个二维码,你需要用机器人小号扫码登录。如果二维码在终端里显示不完整,可以打开日志中生成的二维码图片链接,用自己的 QQ 扫码。
看到类似这段输出时,说明已经成功了:
[INFO] adapter.qq: Connected to QQ server [INFO] bot: OpenClaw is running此时用另一个 QQ 号给机器人发一条消息,等待几秒,如果收到了包含大模型回答的回复,就是部署成功。如果只是想要一个没有额外保障的体验,到这里已经可以收工了。
4.4 用 systemd 守护进程长期运行
前面的启动方式有个明显问题:一旦你关闭 SSH 终端,进程就会停止。要让 OpenClaw 在后台常驻,我们需要用系统服务的方式来管理它。新建一个服务文件:
sudo nano /etc/systemd/system/openclaw.service内容如下:
[Unit] Description=OpenClaw QQ Bot After=network.target [Service] WorkingDirectory=/opt/openclaw EnvironmentFile=/etc/openclaw.env ExecStart=/opt/openclaw/.venv/bin/python /opt/openclaw/main.py Restart=always RestartSec=3 User=root [Install] WantedBy=multi-user.target这里我写了EnvironmentFile=/etc/openclaw.env,主要是为了避免在服务文件里直接写 API Key。你需要在/etc/openclaw.env中写入:
API_KEY=你的真实Key保存后依次执行:
sudo systemctl daemon-reload sudo systemctl enable openclaw sudo systemctl start openclaw下次登录服务器后,可以用systemctl status openclaw查看运行状态,用journalctl -u openclaw -f实时滚动日志。就算进程意外退出,systemd 也会在三秒后自动重启,非常稳定。
5. 本地电脑上的极速部署
5.1 Windows 一键启动(适合新手)
本地部署的流程和云服务器几乎一样,只是不需要登录远程终端。在 Windows 上,我会把一个最简单的启动流程封装成脚本,省去反复敲命令。假设你把项目放在D:\OpenClaw,可以在项目目录下新建start.bat:
@echo off cd /d D:\OpenClaw python -m venv .venv call .venv\Scripts\activate pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple python main.py pause第一次双击运行这个 bat,脚本会自动创建虚拟环境、安装依赖并启动主程序。后续再启动时,依赖已经安装,脚本会直接运行主程序。如果你想停止,直接在窗口里按Ctrl + C即可。
这里特别说明一下:保证你已经安装好 3.10 以上的 Python 并且勾选了添加到 PATH,否则脚本里的python命令会报找不到。如果遇到 Python 版本冲突,可以手动安装 3.11 版本,并在脚本中用py -3.11代替python。
5.2 macOS 和 Ubuntu 本地部署
macOS 和 Ubuntu 的命令几乎一致,因为底层都是类 Unix 环境。与云服务器不同的点在于:不需要sudo apt upgrade那套系统更新,但需要确保 Homebrew 可用,然后安装依赖:
brew install python@3.11 git node接着按之前的流程,进入项目目录、创建虚拟环境、安装依赖、复制配置、填入参数、执行python main.py。如果你 Mac 上已经装了 Docker,也可以用容器方式一次性启动,不过对新手来说,直接在终端跑仍然是最直观的。
5.3 本地调试与多开方案
本地调试时,我最常用的启动参数是开启调试日志:
python main.py --debug这样每个 QQ 消息事件会以原始格式打印出来,你想加功能时能清楚看到消息结构。另外,如果你同时想测试多账号,可以复制一份config.yaml成config2.yaml,然后用python main.py --config config2.yaml启动第二个实例,注意修改账户和端口参数,避免冲突。
很多人担心本地跑 OpenClaw 会不会被 QQ 服务器拒绝连接。只要你的网络正常,并且框架是主动连接 QQ 服务器的话,它并不要求你的电脑拥有公网 IP,所以在家里宽带环境下一般也能顺利登录。反过来,如果你在外面想远程访问机器人的管理面板,才需要额外考虑内网映射的问题,那个属于后续进阶范畴了。
6. QQ 集成进阶与常见问题排查
6.1 验证机器人是否在线
无论云服务器还是本地,验证是否能正常收发消息,最直接的手段就是找另一个 QQ 号发一条消息。打开日志窗口,如果你能看到日志里出现[INFO] Adapter received message from xxx这样的字样,说明消息已经被 OpenClaw 接收。如果机器人迟迟不回复,先检查是否触发了模型服务的限流,或者 API Key 剩余额度不足。
针对群聊场景,还需要确认管理员配置是否正确。很多用户直接在群里 @ 机器人,结果机器人没反应,常见原因是该机器人的群权限没有打开,或者没有在配置里启用群聊插件。如果是个人聊天,几乎不会出问题,所以建议先用私聊测试,再逐步扩展到群聊。
6.2 常见启动失败与日志排查
我把实际踩过的一些高频问题整理成了速查表,方便你对照处理:
| 症状 | 主要原因 | 建议解决办法 |
|---|---|---|
| ModuleNotFoundError | 依赖没有安装完整 | 确认在虚拟环境中执行pip install -r requirements.txt |
| ConfigError: api_key is required | 环境变量或配置文件未正确设置 | 检查/etc/openclaw.env是否存在,echo $API_KEY是否输出 |
| QQ 登录失败或提示账号锁定 | 账号触发平台风控 | 尽量使用小号,选择qr协议扫码登录,暂缓一段时间再试 |
| Connect Error: timeout | 网络不通,或安全组放行端口未生效 | 检查服务器安全组规则和本地防火墙,试试curl www.baidu.com确认网络 |
| 内存不足导致进程被杀 | 设备配置太低 | 增加虚拟内存 swap 或升级服务器配置 |
| 端口被占用 | 上一个进程没关干净 | 用lsof -i:8000查找占用进程并 kill |
日志是排查问题的第一手信息,不要凭感觉改配置。我在本地跑的时候遇到过一次最长的问题,就是环境变量没生效,启动后一直报连接模型超时。后来用echo $API_KEY一查,才发现根本没有输出。所以在怀疑程序出错之前,先确认基础变量都设置正确,能省很多时间。
6.3 常用功能扩展建议
当机器人能正常回消息后,你会发现 OpenClaw 的可玩性远不止聊天。我从实际出发,给你三个最常用的扩展方向。
第一个是插件扩展。项目自带插件市场或插件目录,下载插件包放到plugins文件夹,并在配置中启用,就能让机器人听懂更多指令。常见的实用插件包括:天气查询、汇率转换、待办清单、RSS 订阅推送。安装插件时注意版本兼容性,最好优先选社区维护的稳定插件。
第二个是多模型混合路由。如果某些问题希望由轻量模型快速回答,而复杂问题用更强的模型处理,可以在model部分配置多个提供方,并按上下文长度或关键词自动路由。例如默认情况下让机器人用速度快、便宜的模型回复,一旦检测到用户问的是代码调试,就切换到更严谨的模型。
第三个是定时任务与推送提醒。reminder模块支持 cron 表达式,你可以设置每天早上九点推送天气和工作计划。这个功能对个人助理场景特别实用,相当于把一个被动问答机器人升级成了主动服务型机器人。我个人的使用场景就是在群里每晚固定时间发送第二天的会议提醒,效果非常稳定。
最后再分享一点小经验:我刚开始用 OpenClaw 时,总觉得功能加得越多越好,结果插件之间冲突,反而让机器人频繁出错。后来我学会了一个原则——先让基础链路稳定,再少量加入插件,每加一个都观察两三天。部署环境方面,建议把配置文件和data目录单独备份,换服务器时直接拷贝过去就能恢复,不用重新调半天参数。按照这样的节奏跑下来,这台 QQ AI 管家已经稳定运行了很久,几乎不需要操心。