最近一直在折腾个人AI助理试了不少开源项目最后留在OpenClaw上没换。这东西本质上是一个可以常驻在你服务器上的AI Agent能接到飞书、Teams、Telegram这些聊天工具里让它替你查资料、跑自动化、管理消息流。配合阿里云轻量服务器等于花几十块钱一个月换来一个7x24小时在线的私有助理。这篇教程就是把整套部署流程完整走一遍从服务器选型、环境初始化、安装配置、接入大模型和IM渠道到长期稳定运行的守护方案和常见坑的排查适合手里有或者准备入手轻量服务器、想自己部署一个AI Agent的朋友直接照着操作。1. 为什么是阿里云轻量服务器 OpenClaw这套组合先说结论这套组合的核心理由是固定公网IP 低成本常驻 配置需求低。你当然可以把OpenClaw跑在自己电脑上但电脑一关、一休眠Agent也跟着下线聊天工具里的回调地址全部失效。而云服务器天然满足一直在线和公网可达这两个硬条件。1.1 OpenClaw 到底解决什么问题OpenClaw不是一个聊天机器人玩具它的定位更接近一个带工具的个人助理。它可以接入多个Agent驱动把不同IM渠道比如飞书、Teams、Telegram当作入口用户在这些渠道里给它发消息它的响应不只是聊天还会触达后端能力——查邮件、操作浏览器、调API、跑脚本。核心概念是两个Agent和Channel。Agent是你配置好的助手实例Channel是它对外服务的入口一个Agent可以同时绑定多个Channel这样你在飞书和Teams里都能找同一个助理干活。很多人第一次接触时会把OpenClaw理解成接大模型的聊天机器人这是最大的误解。它自带了一套驱动层和扩展层模型只是决策大脑真正干活的是一堆工具链。所以评估OpenClaw时不要只看模型问答能力要看它接了多少驱动、扩不扩展得动。1.2 轻量服务器为什么足够OpenClaw本质上是个Node.js服务不自己跑大模型推理它通过API去调用云端模型。这意味着它不吃显卡也不吃CPU算力内存占用主要看进程常驻数据和渠道连接数。我实测在2核2G的实例上OpenClaw本体加系统开销日常内存占用大概在600MB上下2G内存完全跑得动剩余空间还能留一个swap兜底。下面是配置选择的建议直接照抄即可配置适用场景实测感受2核2G个人使用、单Agent、2个以内Channel够用高峰内存接近80%2核4G多Agent、多Channel、常开浏览器驱动充裕推荐预算允许选这个2核2G Swap2G用户加固临时救急没问题不建议依赖Swap跑长期任务带宽方面轻量服务器的3M~5M峰值带宽足够因为OpenClaw本身传输的是文本消息和JSON数据没有视频流压力。1.3 系统镜像和地域选择系统我直接用Ubuntu 22.04 LTS稳定且软件源干净OpenClaw依赖的Node.js环境在Ubuntu上装起来最省心。地域选择上选离你日常使用区域近的节点就行如果你主要接飞书这类国内IM就用华东或华北节点延迟低。如果后续要接海外渠道记得提前确认网络连通性避免回调握手超时。注意轻量服务器在购买时默认没有安全组策略部署后一定要在防火墙里放行需要用到的端口否则外部渠道回调会被拒绝。2. 环境准备这一步做扎实能省后面九成的麻烦很多部署教程翻车不在OpenClaw本身而是基础环境没弄干净。轻量服务器刚买回来是一个干净系统正好用来搭建一套不冲突的运行环境。2.1 重装系统与初始化阿里云轻量控制台里可以直接重装系统选择Ubuntu 22.04镜像。装完后通过控制台的远程连接或SSH登录第一步更新软件源和系统包apt update apt upgrade -y接着装基础工具链。我习惯把git、curl、vim、htop一起装好后面排查问题都会用到apt install -y git curl vim htop2G内存的服务器建议顺手加一个Swap避免OpenClaw和系统日志在高峰期把内存吃满导致OOM。创建一个2G的Swap文件fallocate -l 2G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile为了让重启后Swap仍然生效再把这个条目追加到/etc/fstabecho /swapfile none swap sw 0 0 /etc/fstab建议用free -h验证一下Swap是否生效。这一步别跳过轻量服务器内存本来就不大Swap是廉价保险。2.2 安装 Node.js 和 pnpmOpenClaw的运行时是Node.js版本要求一般是大于20直接用nvm安装最灵活方便以后切换版本。先装nvm再装Nodecurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash source ~/.bashrc nvm install 20 node -v包管理器用pnpmOpenClaw官方仓库的依赖锁文件就是pnpm体系用npm直接装会碰到lock版本不一致的问题npm install -g pnpm2.3 Docker 方案作为备选如果你不想在服务器上折腾Node环境也可以走Docker路线。轻量服务器装Docker后直接拉OpenClaw官方镜像挂载配置目录即可。两种方案各有取舍方案优点缺点源码 pnpm日志直观、升级灵活、排查方便依赖本机Node环境Docker环境隔离、一条命令启动日志和配置稍绕版本升级要留意镜像tag我自己主力使用源码方案因为后续定制Channel和扩展时直接改文件比进容器改方便得多。新手如果只是先跑通Docker方案反而更快。下面主教程按源码方案来写Docker跑通的核心步骤其实一样都是配置目录和启动命令不同。3. 安装 OpenClaw 并配置模型接入环境准备好后开始装OpenClaw本体。整个过程没那么玄学但如果跳过验证直接接IM后面出问题根本分不清是安装问题还是配置问题。3.1 拉取代码与安装依赖去GitHub上找到OpenClaw的官方仓库clone到服务器仓库名和地址以官方README为准不同版本可能有fork差异。clone完后安装依赖git clone OpenClaw官方仓库地址 cd openclaw pnpm install首次安装依赖会比较久中间如果遇到网络超时重跑pnpm install就行不需要清缓存。3.2 理解配置目录结构OpenClaw运行时会读取一个独立的配置目录启动前先弄清楚这个目录的作用后续所有问题排查都要回到这里。默认配置目录在~/.openclaw下主要包含全局配置文件定义Agent、Channel、启用的扩展数据目录存放会话数据、状态缓存、锁文件凭证目录渠道密钥、模型API Key建议一拿到仓库就先跑一次初始化命令让它生成默认配置骨架然后再手动改。骨架版本永远比手写配置可靠。3.3 配置千问模型阿里云百炼国内使用大模型我首选接入阿里云百炼的千问系列因为走阿里云内网稳定性好而且百炼接口同时提供OpenAI兼容模式OpenClaw配置时按标准OpenAI协议填就行。去百炼控制台申请API Key然后在OpenClaw配置里新增一个模型Provider关键参数如下model_provider: qwen api_base: https://dashscope.aliyuncs.com/compatible-mode/v1 api_key: sk-你的密钥 model: qwen-plus选择qwen-plus是性价比考虑日常任务应答快上下文长度也够追求更强的逻辑推理可以换qwen-max但响应延迟会高一些轻量服务器上体感差别明显。配完先不急着接IM直接在服务器上启动OpenClaw用命令行发一条消息给Agent确认它能调用千问并且正常返回。这一步通过说明模型链路OK再接Channel。3.4 初始化第一个 AgentAgent的初始化在配置里可以用默认模板也可以自定义系统提示词。我建议第一次用模板跑通确认部署没问题后再改成自己的提示词描述否则自定义提示词一旦写得太复杂新手很难判断是OpenClaw问题还是提示词问题。重要API Key这类敏感信息能写进配置文件就不要放在Shell的历史记录里。配置文件的权限记得收紧chmod 600避免其他人通过低权限账号读到。4. 把 Agent 接到飞书和 Teams配置模型只是让Agent有了大脑要让它真正好用还得接入口。我日常主力是飞书和Teams正好和很多团队的工作工具重合这里把两个渠道的接入流程都走一遍。4.1 Channel 与 Agent 的匹配关系OpenClaw的Channel机制不难理解每个Channel是一个IM平台的接入适配器你创建应用后拿到凭证填进配置绑定给某个Agent这个Agent就开始在该渠道上响应消息。配置层面是Channel绑定Agent不是Agent里写死Channel所以同一个Agent可以同时挂多个渠道消息进入统一的会话处理流程。渠道选择上我的建议是团队协作用Teams或飞书个人快速通知用Telegram。飞书国内使用最广泛文档和消息卡片能力也强Teams适合已有微软生态的团队Telegram适合做个人提醒通道API自由度最高。4.2 飞书接入实操飞书接入需要先在飞书开放平台创建一个企业自建应用然后启用机器人能力。流程大致是创建应用后在应用能力里开启机器人拿到App ID和App Secret配置事件订阅订阅im.message.receive_v1事件在OpenClaw里填上凭证和回调地址回调地址就是http://你的服务器IP:端口/feishu/callback。这里就体现固定公网IP的价值了如果是家庭宽带做内网穿透回调地址又长又不稳定很容易出问题。填完配置后重启OpenClaw在飞书群里直接机器人发一条消息测试。第一次测试大概率会失败最常见的问题是事件订阅响应太慢飞书那边超时重试。这个场景下要检查服务器安全组是否放行了对应端口以及OpenClaw日志里有没有收到飞书请求。4.3 Microsoft Teams 接入Teams的接入逻辑类似但凭证体系用的是Azure Bot Service。创建一个新的Bot资源拿到Microsoft App ID和Client Secret配置到OpenClaw的Teams Channel里。Teams的机制是微软云主动推送消息到你的回调接口所以回调地址必须是公网HTTPS或HTTP可访问的固定地址这一点轻量服务器天然满足。Teams接入后建议先测试机器人主动发消息和被动回复两条链路。主动发消息通常要求先建立会话连接被动回复则依赖事件订阅正确配置。我遇到过的问题是Azure Bot的Messaging Endpoint配置多了一个路径前缀导致所有回调404排查了很久才在日志里发现路径不匹配。4.4 渠道接入后的通用检查项接完渠道别急着收工按这几项逐条检查服务器防火墙是否放行渠道回调端口配置里的回调路径和开放平台填的是否完全一致OpenClaw日志里有没有渠道握手成功日志渠道发送长消息是否被截断这个问题后面专门讲由于OpenClaw版本迭代快不同版本的Channel凭证字段名偶尔会调整接入前一定看一眼对应版本的官方文档示例。5. systemd 守护方案让 Agent 稳定后台运行手动启动OpenClaw是开发模式真正部署到生产状态必须做成系统服务否则SSH断开进程就没了重启服务器也不会自动拉起。这里直接用systemd方案。5.1 创建 systemd 服务文件在/etc/systemd/system/openclaw.service创建服务配置核心参数如下[Unit] DescriptionOpenClaw Agent Service Afternetwork.target [Service] Typesimple User你的用户名 WorkingDirectory/路径/到/openclaw ExecStart/路径/到/openclaw/启动命令 Restartalways RestartSec10 EnvironmentFile/路径/到/.env [Install] WantedBymulti-user.target关键点是RestartalwaysOpenClaw如果因为网络波动或内存抖动崩了systemd会在10秒后自动拉起不需要人工介入。EnvironmentFile用来加载环境变量把API Key这类信息放在单独的.env文件里和服务文件分离方便管理和备份。写好后重载并启动systemctl daemon-reload systemctl enable openclaw systemctl start openclaw启动后用systemctl status openclaw确认状态再通过IP发一条测试消息验证服务已正常响应。5.2 日志排查的正确姿势systemd模式下OpenClaw的日志统一由journald管理用journalctl查看journalctl -u openclaw -f-f是实时跟踪排查问题时就挂着这个命令同时去渠道里发消息触发请求日志会实时打出处理链路。渠道回调问题基本都是在这里看到的比如路径不对、签名校验失败、请求超时。5.3 资源占用观察部署完观察几天用htop和free -h确认内存曲线。正常情况OpenClaw进程内存保持稳定如果持续缓慢增长多半是某个Channel驱动存在会话缓存泄漏需要定期重启或升级版本。我个人的检查节奏是部署后第一天盯两次资源之后一周看一次。轻量服务器2G内存的机器如果内存长期超过85%建议要么清理其他常驻服务要么把机器升级到2核4G。6. 踩坑实录我从部署到稳定运行遇过的四个问题这部分是这篇教程真正值钱的地方。OpenClaw部署本身不复杂但遇到问题如果没有排查思路会在错误的方向上浪费大量时间。6.1 session file locked (timeout 60000ms) 的根因与修复这是OpenClaw用户遇到比较多的报错报错全文类似agent failed before reply: session file locked (timeout 60000ms)。最初看到这个错我以为是权限问题折腾了半天chown后来才发现根因是会话文件的锁被残留进程占用。排查链路供你参考先用ps aux | grep openclaw看是否有残留的旧进程如果有kill掉再重启服务如果没有残留进程看配置目录里是否存在.lock后缀的锁文件确认没有进程占用后删除锁文件ps aux | grep openclaw kill -9 残留进程PID rm -f ~/.openclaw/data/*.lock systemctl restart openclaw这个问题的概率来源是之前用CtrlC中断过前台运行的OpenClaw或systemd在进程退出时没有正常清理锁。锁机制本身是为了防止多个驱动同时操作同一个会话导致数据损坏但在异常退出时会留下脏锁。你只要确认没有活着的进程删锁就是安全的。6.2 飞书输出长文本被截断OpenClaw在多轮对话中如果回复内容过长飞书渠道会截断输出这是IM渠道单条消息长度限制导致的。并不是OpenClaw逻辑出错而是飞书不允许超过一定长度的文本消息。我的处理办法有两个在Agent的提示词里明确要求回答尽量分点、精炼避免一次性输出超长内容开启OpenClaw的自动消息拆分机制超过阈值就拆成多条消息发送实际上第二种方式更可靠因为你不可能控制模型每次都不长文输出。拆分的实现通常由Channel扩展完成在配置中启用对应的消息分段扩展即可。6.3 重启服务器后连不上模型这个问题通常不是模型API挂了而是服务器重启后OpenClaw服务没有自动启动或者启动时环境变量没有加载。先确认systemctl status openclaw curl http://127.0.0.1:端口/health服务没起来就查journalctl -u openclaw --since today看启动时有没有报错。我遇到过一次环境变量文件路径写错导致重启后API Key为空服务起来了但模型调用全部401。检查EnvironmentFile路径和文件内容即可。6.4 版本升级与配置备份OpenClaw迭代频繁升级时先备份配置目录再拉取最新代码、重装依赖、重启服务。升级后第一时间测试核心链路模型调用 主要渠道消息不要一次接十几个渠道然后盲升。备份一条命令搞定tar czf openclaw-backup.tar.gz ~/.openclaw备份里包含了所有Channel凭证和Agent定义换服务器或回滚版本都靠这份备份。7. 部署完成后的真实使用体会把这套体系跑起来之后日常的便利是实打实的。我在飞书里直接给Agent派活让它汇总今日待办、定时触发检查任务、对接公司内部API查询数据响应速度取决于模型API整体在可接受范围内。相比直接在网页端使用大模型把Agent安在常用IM里的体验是另一种维度——它不再需要你打开一个特定页面而是你本来就在的工具里随时可用。轻量服务器这个载体选得也对一个月一杯咖啡钱换一个长期稳定的运行环境。跑OpenClaw之后我顺便在这台机器上挂了一些轻量服务系统整体压力也不大。如果你想把它当主力个人基建的一部分建议从2G内存起步后续按需扩容。最后分享两个小技巧。第一千问模型的温度参数和系统提示词对实际体验的影响比选哪个型号更大多调提示词比盲目上大模型更有效。第二不要在服务器上直接跑不熟悉的新版本先在本地或测试机验证确认稳定后再推到生产服务器部署这个习惯能帮你避开绝大多数升级翻车。
