我最早接触 OpenClaw 时,被圈子里一个说法洗脑得很深——"开源智能体,等于白嫖一个二十四小时不休息的劳动力。"代码免授权,仓库随便下,文档写得像模像样,社区里一水的成功案例截图。那段时间我甚至觉得,只要把它部署好,那些重复的、枯燥的、需要盯着做的任务,统统可以丢给它。直到我认真用了四周,拉出账单那一刻,我才发现自己理解错了。它在某些维度确实是牛马,但更准确的说法是一台碎钞机:不干活的时候很安静,一干活,每分钟都在默默烧钱。
这篇文章不讨论概念或者情怀,就说实际发生的事:OpenClaw 这类长期自治运行的智能体框架,到底把钱烧在哪儿,为什么开源反而容易让人忽略成本,以及我最后是怎么把它从"碎钞机"调教成一台能算清账的廉价工具。
1. "免费"滤镜是怎么形成的,以及我拆穿它的过程
1.1 代码免费用是真的,能力免费是错觉
先把这个事情掰开:OpenClaw 作为开源项目,它的源码、运行框架、基础调度逻辑确实不要钱。你在本地把它编译起来,它也不会找你要授权费。但这里有一个关键认知差——真正干活的不是那堆代码,而是它背后接入的大模型接口。代码只是规划和调度的壳,所有理解、生成、判断都发生在模型侧,而模型接口是按 token 计费的。
这就好比你雇了一个特别厉害的工头,工头本人不要工资,但他每指挥一个工人干一小时活,工人的工时费都记在你账上。OpenClaw 就是那个工头,工人则是各家模型服务商的 API。很多人在"开源免费"的心理暗示下,自动忽略了这层间接成本,等到账单出来才反应过来:免费的是厂房,机器一开电表就开始转。
我当时也犯了这个错。项目部署完,第一反应是"太好了,以后不用自己写那些胶水脚本了"。结果第一个周末我让它跑了一组小任务,顺便盯了一下后台的调用日志,才发现一个看起来几十秒钟的"自动整理文件"动作,中间可能夹杂了五六次大模型请求,读写信息、拆解指令、确认步骤、生成后续操作,每一次都是钱。
1.2 我发现账单异常后的真实连锁反应
真正让我警觉的是一次定时任务。我原本想让它每天自动扫描某个文件夹,把里面的 PDF 提取摘要并归档。听起来是简单需求,但我忽略了一个事实:PDF 读取本身不贵,摘要生成也不可怕,可怕的是整个流程需要多次模型往返。
文件列表要先让模型理解一次,格式筛选要再请求一次,摘要内容要单独调用一次,归档时的路径判断还要再问一次。二十篇文档跑下来,看似只是"后台默默处理了几分钟",实际消耗的 token 数已经相当可观。如果是低频手动跑一次,可能也就一杯奶茶钱,可我当初的计划是每天定时执行,那一个月下来就是笔不小的固定开销。
我复盘了一下自己的心态:正因为项目是开源的,我默认把它归入了"零边际成本工具",完全没有像购买云服务器那样去估算单次运行成本。直到后台统计里的数字堆到让我不舒服的程度,我才开始认真算这笔账。所以这篇文章最想说的一句话就是:开源解决的是授权成本,不解决运行成本。想清楚这一点,后面所有操作才有意义。
2. 烧钱链路拆解:从"交给它自动干"到金额变化的完整流程
2.1 一次看似简单的任务,需要经过几个模型请求
我用一个真实场景来拆:假设你想让 OpenClaw 帮你把某个在线表格里的数据整理成周报,并且以邮件形式发出去。表面上你把一句话交给它,它"自动"完成了。实际上,后台发生的链路大致是这样:
首先是任务理解,模型要把你这段口语化指令转成可执行计划,消耗一次请求;接着它调用工具去读取表格,读取到的原始数据再作为上下文塞回对话,继续让模型分析,这是第二次请求;分析完之后,它要生成周报文本,这是第三次请求;发送邮件前它还要检查收件人、校验邮件格式,如果过程中发现表格字段理解错误,它还得回头重新读取、重新分析,额外增加一到两次请求。整个过程下来,至少四五次模型调用属于正常情况。
这还只是单轮成功的情况。稍微复杂一点的任务,比如"跨几个数据源做汇总",请求次数轻松上双。如果把所有输入输出 token 加起来,一次完整任务消耗几万 token 很常见,长篇文档或大表格场景甚至能冲到十几万。
2.2 我实际做过的一次成本抽样账
当时我为了搞清楚钱花在哪儿,专门给单个任务加了日志埋点,统计每一步消耗的 token 数。下面这张表是我从某一次中等复杂度任务里抽出来的原始记录,任务内容是:读取一份 CSV 数据、筛选特定条件、生成一份带图表的结论文档。
| 环节 | 模型请求次数 | 大致 Token 消耗(输入+输出) |
|---|---|---|
| 解析指令与任务规划 | 1 | 500 - 1500 |
| 读取文件并理解格式 | 1 | 3000 - 8000(取决于数据量) |
| 数据筛选与条件判断 | 1 - 3 | 4000 - 12000 |
| 编写结论与整合信息 | 1 - 2 | 2000 - 6000 |
| 校验与收尾操作 | 1 - 2 | 1000 - 4000 |
| 合计 | 5 - 9 | 15000 - 31000 |
那次实际消耗大概在两万 token 左右。按当时中档模型的计价,折合人民币大约是几毛钱到一块多。单看不贵,但请注意:类似的重复任务一旦设置成每小时跑一次,或者接入多个定时触发器,一个月的累计消耗立刻变成几十上百块甚至更多。我见过一个团队直接把这类智能体当成"数据流搬运工"常驻运行,结果月末账单直接干到五位数,原因就是他们只测了单次成本,没做频率叠加。
所以在评估 OpenClaw 类工具时,真正要算的不是"跑一次多少钱",而是"单次成本 × 运行频率 × 失败重试率"。后者才是它的真实价格。
3. "碎钞机"最安静的三个时刻:隐性成本的深坑观察
3.1 卡死循环:权限校验、外部调用和失败重试的磨损
智能体跟普通脚本最大的区别在于,脚本失败会直接抛出异常停在那里,而智能体会尝试"自己解决问题"。听起来很智能,但这也是最烧钱的时刻。有一次我让它连接某旧系统导数据,因为认证方式变了,它连续试了六七种方案,每种方案都重新发起请求、读取错误信息、生成下一步尝试计划,失败一次就烧一轮 token。最后问题没解决,钱倒是花了不少。
更挫败的是权限校验类问题。很多外部工具要求 token、密钥或特定环境变量,只要有一项配置不对,智能体就会进入"尝试-报错-再尝试"的死循环。尤其在容器环境里,它还会反复假装安装依赖或修改配置,每个动作背后都是模型在全程参与,不只是普通进程的 CPU 消耗。
我的判断标准很简单:如果在日志里看到同一类错误反复出现三次以上,基本就可以断定它陷入了重试循环。这种循环最耗钱,因为它不像人类有耐心阈值,模型不会说"我不行了,请检查配置",它会一直猜下去。
3.2 上下文膨胀:一次会话从几万 token 涨到几十万的过程
第二个坑更隐蔽,它藏在一个叫"上下文窗口"的概念里。每次多轮对话,前面所有历史消息——包括工具返回的完整结果、错误日志、中间生成的步骤——都会作为输入再次发送给模型。这就意味着,会话越长,单次请求的费用越高。
我做过一个实验:让 OpenClaw 同时处理三个文件的修改任务,任务本身不复杂,但因为中途我反复调整指令,整个会话的上下文从最初的几千 token 慢慢膨胀到两三万。再往后哪怕只是追加一句"把第三段改一下",模型也需要重新读完前面所有内容才能作答,输入费用直线上升。
严重的情况下,上下文里堆积了大量工具输出。我记得有一次它读取了一个超大的配置文件并完整回显到对话里,那次操作直接让后续每一轮请求都背上了几万 token 的重担。如果任务频繁发生,理论上上下文会逼近模型窗口上限,那时单次请求费用可能是最初的十几倍。这也是为什么很多有经验的人会刻意把长任务切片,而不是让一个会话从头跑到尾。
3.3 插件喂养:每个你觉得"接上就省事"的外部依赖
再来看插件这个无底洞。OpenClaw 这类框架支持接入各种工具插件,比如浏览器自动化、数据库客户端、消息推送、文件解析器。每一个插件都有机会带来新的意外。
我最初为了让它自动抓取网页内容,接入了一个浏览器控制工具。结果网页结构一变化,取数失败,它就开始反复重试,每次重试都要重新启动浏览器、截图、回传一堆诊断信息。这些诊断信息又全部进入上下文,变成后续请求的输入成本。一个原本只需要几块钱的任务,因为这一系列的"智能补救",耗掉了我两位数的预算。
另一个常见问题出在插件之间的权限交互。插件 A 需要环境变量,插件 B 又覆盖了同名环境变量,表面上日志里只是飘过一行警告,实际上模型为了理解这个警告又发生了额外的调用。如果你把整个框架接得越来越重,每个外接能力都用得上,那成本根本不是线性增长,而是互相纠缠着往上涨。
所以后来我养成了一个习惯:凡是能在框架外解决的问题,绝不让智能体去碰。比如文件格式转换、数据简单清洗这类操作,直接写在脚本里,让它调用本地程序完成,不要让模型参与整个过程的每一步思考。
4. 如何把"碎钞机"改造成"省油引擎":我做过的四项工程改造
4.1 闸门式运行:不是让它自由发挥,而是给任务套上轨道
一开始我用 OpenClaw 的方式,是把任务目标交代清楚然后让它自由发挥。这种方式体验很好,但成本不可控。后来我把模式改成了闸门式运行:任务被拆成明确的步骤,每一步执行完都要经过校验,通过才允许进入下一步,不通过就直接终止并通知我人工介入。
在配置上,我给框架设了两个硬性参数:单次任务最大模型调用次数,以及单会话 token 上限。超过上限,会话自动熔断,不再发起任何新的请求。这两个限制的价值在于,它把钱袋子口收紧了——无论智能体遇到什么意外,它都没有机会无限重试下去。
下面是当时我用过的简化版配置思路,风格类似 YAML,按你的工具文档调整即可:
run_limits: max_steps: 8 # 单任务最多执行 8 个步骤 max_tokens_per_step: 4000 # 每步模型输出上限 fail_fast: true # 校验失败立即终止 budget_watch: warn_at_cents: 100 # 花费到 1 元时告警 stop_at_cents: 300 # 花费到 3 元时强制停止这些参数看起来简单,实操中非常有效。它有另外一个作用:逼着你把任务想清楚。以前我能含糊地甩一句话给智能体,现在必须先自己把步骤拆明白,这反而降低了任务的出错率。
4.2 模型分级:把小事从昂贵大脑上挪开
大多数智能体框架都支持配置多个模型,有的负责规划,有的负责执行。我后来遵循一个原则:日常操作和文本格式化类的简单任务,全部用便宜的小模型,只有关键判断才让大型模型出场。
比如生成周报这种任务,摘要和排版完全可以用小型模型搞定,速度还快,成本低一个数量级。而"判断这次数据异常是否需要告警"这种需要综合语义理解的决策,才值得动用强模型。通过这样分级,整体的费率结构被我压下来一大截。
具体配置上,可以按能力不同划分角色:
model_roles: planner: # 负责制定任务计划 model: power-model executor: # 负责日常执行操作 model: cheap-model guardrail: # 负责校验结果 model: cheap-model需要注意,模型分级不是越省越好。如果规划和执行用的模型太弱,它理解不了复杂任务,反而会因为反复失败产生更多重试成本。我自己的经验是:规划用强模型,执行用中等模型,结果校验尽可能用规则引擎而不是大模型。越靠近核心判断,越值得花钱。
4.3 会话仪表盘:先记账,再运行
没有数据就没有控制权。前两周我纯粹是在烧钱,直到我把每个任务的 token 用量和费用埋点统计出来,才真正找到上面提到的几个深坑。我的做法是,在每个会话结束之后,强制记录一次统计摘要,包括总请求数、总输入 token、总输出 token、预估费用以及发生重试的位置。
有了这些数据,我就能回答三个问题:哪个任务最烧钱?哪类操作容易被反复执行?哪个时间段运行成本最高。很多人在部署智能体后从不看 token 统计,这是最大的浪费——框架本身就是模型接口的包装,账目信息明明就在那里,只是没有被重视。
另外一个实用技巧是,给每个任务打业务标签,这样月底看账单时能按标签归类,一眼看出哪个业务线在消耗预算。我试过从零开始做这个体系,花了不到一下午时间,但它帮我省下的钱远超那点投入。
4.4 测试环境用模拟桩:让失败在不上火的地方发生
这应该是我最想推荐给所有人的一条:不要让智能体在开发阶段直接调用真实外部服务。我建了一个测试环境,把所有外部 API 替换成本地模拟桩(mock server)。模拟桩返回固定的正常响应或预设的错误码,用来验证框架逻辑是否通顺。
这样做有几个直接好处:第一,外部接口失败造成的重试不再消耗真实费用,你可以放心地让它反复跑;第二,模拟桩可以精确控制错误率,轻松测试"失败熔断"逻辑是否生效;第三,真实环境里不敢做的并发测试,在模拟环境里可以随便压。
等流程稳定了,再切换到真实外部服务做小规模灰度验证。这个顺序帮我避开了大量因网络波动、认证过期、参数不匹配导致的无意义开销。记住一点:智能体在测试阶段越是自由探索,成本越不可控,而模拟桩正好把探索成本压到了零。
5. 如果让我重新选一次:关于"免费开源智能体工具"的务实判断
5.1 免费仍然是一个合理起点,但要换一种用法
说了这么多坑,我并不是劝你别用 OpenClaw。恰恰相反,我认为开源框架作为起点依然是合理的,因为你可以零成本研究它的调度逻辑、测试不同提示词效果、理解自治运行的边界。这些学习成本很低,值得投入。
但如果你指望"部署完就自动干活、不再花一分钱",那就大错特错了。我现在对这类工具的态度是:把它当作一个低代码的调度层,而不是一个智能大脑。能用脚本完成的部分,我依然写脚本;智能体只负责编排、判断和应对意外。这样发挥的是它的架构优势,同时避免了每个原子操作都要过模型的高额成本。
另外,免费工具的隐性支出还包括你的时间。调试一个自治智能体的难度比调试普通脚本高得多,因为你要同时追踪状态、上下文和工具调用。如果项目很小,花在调试上的时间折算成钱,可能远超直接买现成服务的费用。这个账也得算进去。
5.2 五条可以带走的成本决策建议
最后分享我根据自己经验整理的五条建议,适合还在评估 OpenClaw 类工具的朋友直接参考:
- 先做一次单任务成本估算,再看频率。单次几毛钱的任务,乘以每小时一次的运行频率,一个月就是三位数的固定支出。
- 所有长期任务都必须设运行次数上限和 token 熔断,没有例外。宁可任务失败,也不要让它无限重试。
- 拆分大任务,尽量保持小上下文。每轮对话控制在目标导向的单次操作,不要在同一会话里揉进过多历史。
- 能外用脚本解决的操作绝不让模型参与。比如文件处理、格式转换、字段重命名,通常不值得多一次模型往返。
- 给每个任务打预算标签,设置费用告警,并让告警真正能打断运行,而不是仅仅在日志里飘一行文字。
我在实际使用中还有一个体会:开源智能体的价值不在于"免费",而在于"可控"。你可以随时修改它的运行逻辑,给它套上你认为合理的成本限制,把它改造成适合自己预算的形状。代码免费是它的优势,但你的 token、你的预算、你的精力,始终是有限的。把这些限制想清楚之后,它才真正从一台碎钞机,变成一台偶尔值得开动的工具。最后再多说一句:任何标榜"免费劳动力"的新热词,都值得先看一眼它背后的模型调用清单,那才是你真实的付费账单。