薅羊毛这事,我最近是真香了。联通云这波免费 Coding Plan,乍一看只是送点模型调用额度,但把它接到 OpenClaw 上之后,等于白嫖了一套能 7x24 小时挂在 IM 里的 AI 助理。这篇文章就把我从领额度、部署 OpenClaw、到配置渠道和模型的全过程拆开讲透,顺便把踩过的坑都列出来,照着做基本能少走两三天弯路。
先说清楚目标读者:手里有一台 Linux 服务器(哪怕是低配云主机)、想跑一个开源 agent 但又不想花太多钱买 API、或者已经在用 OpenClaw 但苦于模型费用太高的朋友。如果你只是听说过 OpenClaw 还没动手,这篇也适合,前半段会把部署和配置思路讲明白。
1. 联通云免费 Coding Plan 到底是个啥
1.1 白嫖来的模型调用额度
很多云厂商为了拉新或者推广自家 AI 生态,都会送一点“编程助手”或“模型调用包”,联通云这个 Coding Plan 就属于这类福利。它本质上是给你一批可用的模型调用额度,比如若干次对话、若干万 token,你可以在支持 OpenAI 兼容接口的地方直接调用。
我拿到的是一张免费额度包,在联通云控制台开通后就能看到套餐里包含的模型列表和抵扣次数。这种额度包通常不是让你去训练模型,而是给开发者做应用接入、API 测试、自动化脚本用的。对于跑 OpenClaw 这种 agent 框架来说,正好能把额度用在刀刃上:agent 每和用户对话一次、每调用一次工具,背后都是 token 消耗,额度够的话,相当于运行成本被云厂商包了。
1.2 为什么适合 OpenClaw 这类 agent 项目
OpenClaw 是一个偏向“无人值守”的 AI agent 框架,你可以把它部署在服务器上,接上飞书、Teams、Discord 这类聊天渠道,让它随时响应消息。它本身不内置大模型,需要你配置一个模型 API。问题来了:主流的商业模型 API 按 token 计费,一天挂机下来,如果消息量大,费用是真的肉疼。
联通云 Coding Plan 给的免费额度恰好能缓解这个痛点。你不需要折腾任何合规备案之类的东西,只需要在 OpenClaw 的配置里换一个 base_url 和 api_key,告诉它去调联通云提供的兼容接口就行。说白了,它就是一个大号“代金券”,OpenClaw 正常跑,账由额度顶着。
这类云厂商额度包通常有几条共性:有效期短、额度用完即止、并发限制严格。所以我会建议把它当“测试环境”或“轻量使用”的燃料,而不是重负载生产环境的主力。想清楚这层定位,后面配置起来就不会纠结。
2. 领取免费 Coding Plan 的完整流程
2.1 前提条件与账号准备
领取之前先确认两件事:一是有没有联通云账号,二是账号有没有完成实名。虽然名字叫“免费”,但云厂商发放额度一般还是需要你有个真实身份,这是为了反滥用,不是我随口说的门槛,不同活动期要求可能还不一样。
我建议用个人身份注册就行,企业认证流程长,而且个人账号领到的额度通常够用了。注册时注意保管好账号信息,后面要往 API 配置里填的密钥如果泄露,额度被别人刷走就很麻烦。
另外,联通云控制台可能要求你绑定手机号或者启用短信验证,这步比较常规,按页面引导操作就好。如果页面提示需要银行卡或者支付方式,大概率是你点进了付费套餐,免费 Coding Plan 是不需要绑卡的,看到要求绑卡直接退出去重新找活动入口。
2.2 开通步骤与额度查看
我自己开通的流程大概是这样,不同活动入口可能会有差异,但大方向一致:
- 登录联通云官网,进控制台,找左侧菜单里的“开发者服务”或“AI 服务”板块。
- 找到“Coding Plan”或“免费额度”相关的卡片,点进去。
- 页面一般会有“立即领取”或“试用开通”按钮,确认使用协议后提交。
- 领取成功后,系统会给一个 API Key 或让你创建密钥,这个 Key 就是后面 OpenClaw 要用的凭证。
- 在“额度明细”或“资源包”页面查看剩余 token、剩余次数、有效期。
这里有个容易看漏的点:有些页面默认展示“按量计费”,但不代表你已经切换到了免费额度。你要在资源包或代金券页面确认状态是“可用”,否则 OpenClaw 调 API 时可能直接按后付费账单走,那就不是薅羊毛而是反向充钱了。
2.3 额度抵扣规则要提前弄明白
联通云 Coding Plan 的抵扣规则,直接影响你能跑多久。我在实际操作中发现,官网对“各模型的抵扣次数”描述得比较细,比如某些模型一次对话抵扣 1 次,某些推理模型可能抵扣 3 次或更多。“星图 Coding Plan 各模型的抵扣次数”这个说法在开发者圈里经常被拿出来对比,就是因为它不是所有模型统一计费。
还有一点:token 计费一般分输入和输出,长上下文对话里,输入 token 累积很快。OpenClaw 这种 agent 喜欢把多轮聊天记录全塞给模型,一轮高上下文重试就能吃掉几千 token。所以别只看“免费 100 万 token”这种宣传数字,实际能用多久取决于你喂给模型多少上下文。
我建议领完额度后先查看模型的输入输出单价,再估计一下自己日常会话长度。比如一个人一天闲聊几十句,每句几百 token,那一个月额度基本够;如果你拿它跑自动化任务,频繁调用工具和文件读写,额度消耗会比你想象快好几倍。
3. OpenClaw 部署:从零到能跑起来
3.1 OpenClaw 项目定位与部署方式选型
面对一个开源 agent 项目,第一时间要搞清楚的不是“装哪个版本”,而是“它适合跑在哪”。OpenClaw 的定位和那些需要 GUI 的聊天机器人不同,它更强调后台服务化:一个进程长期挂机,监听消息事件,按规则回复。所以部署方式主流是 Docker 和裸机运行两种。
如果你有一台常开的 Linux 服务器,我推荐用 Docker 部署。原因有三:隔离环境不会污染系统、升级版本只需拉新镜像、日志清理方便。你要是手头只有一台飞牛 NAS 这类设备,也可以跑,核心看 CPU 架构和内存,x86_64 的机型问题不大,ARM 版要注意镜像是否提供对应平台。
裸机部署适合喜欢掌控一切的人,但依赖冲突能把人搞疯。我一开始图省事直接裸机跑,结果 Python 环境和系统库打架搞了一下午。后来老老实实换 Docker,半小时跑通。所以这里我直接按 Docker 路线讲。
3.2 本地一键部署实操(以 Linux 为例)
Docker 部署 OpenClaw 的过程,网上常说的“本地一键部署”其实就是拉镜像、改配置、起容器三步。下面给出一套我在 Ubuntu 22.04 上实测通过的流程:
# 1. 安装 Docker(已装可跳过) curl -fsSL https://get.docker.com | bash systemctl enable --now docker # 2. 拉取 OpenClaw 镜像(根据版本替换 tag) docker pull openclaw/openclaw:latest # 3. 创建配置目录 mkdir -p /opt/openclaw/config cd /opt/openclaw # 4. 复制一份配置文件模板 docker run --rm -v /opt/openclaw/config:/config openclaw/openclaw:latest init这里有个关键步骤:init命令会生成配置模板,模板里通常包含config.yaml和.env文件。你需要把联通云给的 API Key 填进.env的API_KEY字段,再把模型接口地址填到BASE_URL。不同版本字段名可能不同,以模板注释为准。
配置完成后正式启动:
# 使用 host 网络模式,方便 OpenClaw 和本机其他服务通信 docker run -d --name openclaw \ --restart=always \ --network=host \ -v /opt/openclaw/config:/config \ openclaw/openclaw:latest--restart=always这行很重要,否则服务器一重启,OpenClaw 不会自动拉起。我用的是 host 网络,因为很多 IM 渠道回调地址就是本机端口,省去端口映射的麻烦。如果你跑在群晖或飞牛上,用 bridge 模式并映射端口也行,但要多写几个端口映射规则。
3.3 飞牛 NAS 这种环境能不能装
热词里有人问“飞牛安装 OpenClaw”,说明不少人是想把手边的 NAS 利用起来。飞牛 NAS 本质上也是 Linux 环境,默认支持 Docker 容器,所以方法是通用的。区别主要在路径:飞牛的 Docker 管理界面支持图形化拉取镜像,如果你不习惯命令行,可以在界面上创建一个容器,挂载/opt/openclaw/config到 NAS 的任意共享文件夹。
需要注意,NAS 的 CPU 一般不强,内存如果只有 4G,跑 OpenClaw 加模型推理会有点紧。Model 调用都是走远程 API,本地只做编排,所以 CPU 占用并不高。内存方面 OpenClaw 常驻进程大概占几百 MB,4G 内存能跑,但别同时开太多其他服务。
还有,NAS 上的 Docker 容器重启策略默认可能是“手动”,你要手动改成“自动重启”。不然一断电,OpenClaw 不会自己回来,你还得靠 IM 里收不到回复才反应过来,很被动。
4. 把联通云 Coding Plan 接到 OpenClaw
4.1 用 API 兼容模式配置模型
联通云 Coding Plan 对外开放的接口,通常兼容 OpenAI 的请求格式。这意味着 OpenClaw 不需要特判“联通云”这个厂商,只要配置成 OpenAI 兼容协议就行。这是所有这类额度包最常见的接入方式,你用天翼云的也是一样的道理。
具体到config.yaml,一般会有llm或model_provider这一段:
llm: provider: openai_compatible base_url: "https://api.unicom.cloud/v1" # 以控制台展示为准 api_key: "你领取到的API Key" model: "qwen-plus" # 按额度包内可选模型填写 temperature: 0.7 max_tokens: 2048这里最容易翻车的是model字段。不同活动批次的模型代号可能不同,有的叫deepseek-chat,有的叫qwen-turbo,有的套餐里带有“星图”品牌的模型。你别想当然填,打开控制台“资源包详情”或模型列表页,把模型名称原样复制过来最稳。
4.2 渠道 Channel 配置:让 Agent 找到出口
OpenClaw 里“channel”这个概念,通俗讲就是 IM 渠道。你只在配置文件里填了模型不够,还得告诉它“从哪个入口收消息,往哪个出口回消息”。这个名称在版本迭代里可能叫channels、im_channels或connectors,本质一样。
以飞书为例,你需要先前往飞书开放平台创建应用,拿到 App ID 和 App Secret,然后在 OpenClaw 配置里填进去,同时填好事件订阅地址,例如http://你的服务器IP:8000/webhook/feishu。之后飞书群里 @ 机器人,消息事件就会通过 webhook 推到 OpenClaw,OpenClaw 再走配置好的模型通道生成回复。
我记得第一次配置时,最容易被忽略的是“事件订阅”里的加密设置。飞书平台如果让你填 Encrypt Key,你必须和 OpenClaw 配置里的encrypt_key保持一致,不然回调会一直报“解密失败”。这个不是 OpenClaw 的 bug,是平台侧的加密约定。
4.3 接入 Teams 和飞书的区别
如果你不只是用飞书,还想接 Teams,配置入口类似,但细节有差异。OpenClaw 接 Teams 需要先在 Azure 门户注册一个 bot,获取 Bot ID 和 Bot Password。和飞书不一样的是,Teams 的消息通知方式不是普通的 webhook,它要用的是一种基于 Activity 协议的通道,所以 OpenClaw 对应模块里会有teams_app_id、teams_app_password这些字段。
从我的体验看,Teams 接入比飞书更折腾,因为 Azure 那边权限配置多,而且回调地址要求公网可访问。飞书则对国内服务器友好很多,回调调试也直观。所以“OpenClaw 配置千问”这类话题在飞书群里出现得多,不是没道理的——一套“飞书 + 千问 + 联通云额度”才是国内开发者最顺手的组合。
如果你只是自用,我更推荐只开一个 channel,避免多个渠道同时触发导致上下文混乱。多个 channel 同时接入后,OpenClaw 会对不同会话分别维护状态,逻辑上没问题,但日志会变得非常杂乱,排查问题难度翻倍。
4.4 配置千问模型时的参数细节
兼容模式下一个容易踩的坑是“模型名字”。很多云厂商的兼容接口不会自动帮你映射别名,你填成qwen-plus,它可能返回 404 或者 “model not found”。这时候要去控制台确认套餐内模型的实际部署名,可能叫qwen-plus-chinese或者qwen_max,一字之差都失效。
参数方面,我建议把temperature调低到 0.3 到 0.5。OpenClaw 这类 agent 需要的是稳定输出,温度太高,它可能会在工具调用参数上随机出幺蛾子。max_tokens设置在 1024 到 2048 之间比较合适,太小的话长回复直接被截断,太大的话单次请求费用偏高、额度消耗快。
另外要注意timeout参数。有些云平台首字延迟略高,OpenClaw 默认的 HTTP 客户端超时可能只有 10 秒,实际用起来容易出现“Agent failed before reply”这类半截报错。你在配置里可以把timeout调到 30 秒,乃至 60 秒,具体字段名可能是request_timeout或http_timeout。
5. 薅羊毛路上的坑与排查实录
5.1 session file locked 报错怎么破
热词里那条 “agent failed before reply: session file locked (timeout 60000ms)” 我太熟了,跑 OpenClaw 第一周就撞上。字面意思是:某个会话文件被锁定,进程等了 60 秒还没拿到锁,于是放弃回复。
这个问题的常见触发场景是:你同时跑了多个 OpenClaw 实例,或者同一实例被多个渠道并发触发,导致两个会话都要写同一个 session 文件。我在排查时发现,很多教程里都推荐用--restart=always拉起容器,但如果你用 docker compose 又误设了副本数大于 1,就会有两个进程抢文件。
解决方式分几步:
- 确认是否同一条消息被多个渠道重复投递,如果是,关掉多余 channel。
- 检查 Docker 是否重复启动多个容器:
docker ps | grep openclaw,多余容器直接删掉。 - 如果只是偶发,可以在
config.yaml里增加 session 锁超时时间,把session_lock_timeout从 60000 调到 120000。
这个报错最气人的地方在于:它不会第一时间告诉你“哪个文件被锁”,需要你翻日志目录下的 session 文件。有个小技巧,看 lock 文件后缀.lock是否有残留,如果有残留而进程已退出,手动删除再重启就可以了。
5.2 飞书输出被截断的解决办法
“OpenClaw 在飞书输出容易被截断”这事,本质是飞书消息长度上限所致。飞书普通消息单条长度限制约 15000 字(不同版本有差异),但 OpenClaw 默认可能一次把长答案整个丢出去,超了就被截断。
解决思路不是调模型,而是改输出策略。你可以在 OpenClaw 配置里找类似max_reply_length的字段,设置一个低于飞书限制的阈值,比如 10000。超过阈值后,让 OpenClaw 把回复拆成多条消息顺序发送,或者在中间插入“内容过长,分段发送”的提示。
还有一个我没在文档里看到、但实测好用的办法:给模型加一条 system prompt,要求它在回复超过 800 字时主动总结要点。这样回答本身就变得简洁,截断概率大幅下降,同时也省 token。对用户来说,回复太长本来也不是什么好体验。
5.3 OpenClaw 和 WorkBuddy 怎么选
有人把 OpenClaw 和 WorkBuddy 放一起比较,这两个并不是同一类东西。OpenClaw 偏向开发者自部署的 agent,可配置性高,能接飞书、Teams,还能在本地做各种工具调用;WorkBuddy 则更偏向“开箱即用”的 AI 工作流工具,用户不需要写配置文件,界面化操作居多。
选型的核心标准是“你的掌控欲”。
- 想要完全自己控制数据流向、日志、模型通道,选 OpenClaw 没错,代价是学习曲线陡峭。
- 想快速搭一个能跑的工具,对底层原理不关心,WorkBuddy 类产品体验会更好。
免费额度这件事上,OpenClaw 显然更划算,因为你不受制于某个 SaaS 平台的模型绑定,哪里有额度就往哪里接。联通云 Coding Plan、天翼云的同类计划,本质上都是同一个模式:谁家送额度,你就把 base_url 切到谁家。
5.4 每日额度用超了怎么办
免费额度虽好,总有见底的时候。我在薅完浪后发现一个规律:联通云这类资源包在额度用完后,接口不会直接报 403,而是可能变成“欠费冻结”状态,或者返回一个特别泛化的错误。OpenClaw 面对这种错误,往往不具备自动识别能力,它只会把报错原样丢给你。
我的建议是设置双层保险。
- 在 OpenClaw 里配置模型失败重试次数,重试次数别太高,否则额度耗尽时会连续触发多次请求,反而可能产生额外费用。
- 在云厂商控制台打开余额提醒,不少服务商支持按剩余额度百分比发送短信,设置 20% 提醒一次,5% 再提醒一次,这样你还有时间切备用模型。
真要用完了,最省事的方案是临时换一个base_url指向自带的本地模型,或者直接停掉 OpenClaw 服务,留着额度到真正需要时再开。别死磕一个厂商,今天联通云送,明天天翼云也可能有同类活动,一个瓶盖换一个瓶盖,才是白嫖党的正确节奏。
最后分享一个实际体会:把免费 Coding Plan 接到 OpenClaw 上跑,最大的收获不是省那几十块钱,而是逼着你把 base_url、api_key、model_name、channel 这一整条链路都摸了一遍。之后再切任何一个云厂商的额度包,半小时内就能搞定。一个小建议:接完记得把你的 API Key 放到.env里,别直接硬编码在config.yaml,否则到时候清理仓库或者截图分享时,等于把免费额度拱手送人。这波羊毛薅得值,但也别忘了防着点自己手滑。