如何停止在 OpenClaw 上烧钱

0 阅读8分钟

如何停止在 OpenClaw 上烧钱

OpenClaw 是近年来增长最快的开源项目之一。23万 GitHub stars,11.6万 Discord 成员,每周200万访问量。这一切仅用了两个月。人们在 Mac Mini 和云服务器上运行个人 AI 代理。它确实好用,也确实有价值。

但和所有技术变革一样,它也有代价。在与一百多位 OpenClaw 用户交流后,成本是几乎每次对话都会提到的话题。有人搭好代理,日常使用两周后发现花了254美元的 API token。另一位一个月花了800美元。这些都不是极端用户,而是普通配置、普通用法。

钱花在了哪里

你的代理把每个请求都发送到主模型。心跳检测、日历查询、简单的网页搜索。如果你的主模型是 Opus 4.6,所有请求都走最贵的接口。

你的成本主要来自四个方面:

系统上下文SOUL.md 在每次调用时都会加载到 prompt 中。其他引导文件如 AGENTS.md 也会根据代理需求加载。即使记忆是通过搜索而非原始加载引入的,基础系统上下文依然不小。在典型配置下,每个请求都要计费数千个 token。

对话历史 — 你的历史记录随每次交互增长。活跃使用几小时后,一个会话可能携带大量 token。整个历史都会随每个新请求一起发送。

心跳检测 — 心跳默认每30分钟在后台运行一次。每次检测都是一次完整的 API 调用,包含上述所有内容。

模型选择 — 没有路由的情况下,每个请求都发送到同一个主模型,无论任务简单还是复杂,这就阻止了成本优化。

有用户一觉醒来发现141美元的账单,因为心跳打到了错误的模型上。

把这些加在一起,一个未优化的 Opus 配置,你每天的花费很容易超过大多数人预期的月支出。

costs.gif

用一个带技能的代理代替多个代理

这是影响最大的改变,但几乎没人讨论。

很多用户搭建多代理系统。一个写作,一个研究,一个编码,一个协调。每个代理作为独立实例运行,有自己的记忆、上下文和配置文件。代理间每次交接都在消耗 token。每个代理都增加固定的上下文开销,所以成本随实例数量增长。

OpenClaw 有内置的替代方案。技能(skill)是一个 markdown 文件,可以给代理增加新能力而不创建新实例。同一个大脑,同一份记忆,同一个上下文。有用户从每周花费数百美元的多代理系统,切换到一个代理加十几个技能后,月费降到了90美元。质量反而提高了,因为上下文不再在交接中丢失。

保持一个主代理。给它每种工作类型一个技能。只有在需要几分钟且需要并行运行的后台任务时,才启动子代理。

将每个任务路由到合适的模型

你的代理做的大部分事情都很简单。状态检查、消息格式化、基本查询。这些不需要前沿模型。只有一小部分请求真正受益于高级推理。

没有路由的话,所有请求默认都打到最贵的接口。有人追踪了实施路由前后的成本,从每月150美元降到了35美元。另一位从347美元降到了68美元。智能路由工具平均可以降低70%的成本。

OpenClaw 没有内置路由引擎,所以需要外部工具来实现。Manifest 开箱即用地处理这个问题。它自动分类每个请求并路由到合适的模型,让心跳和简单查询走 Haiku,复杂推理仍然走 Opus。仅此一项就能大幅降低账单,无需按任务手动配置。

如果你倾向于 DIY,可以设置多个模型配置或自己编写路由技能,但要做好会花更多精力。

缓存不变的内容

你的 SOUL.mdMEMORY.md 和系统指令每次调用都是一样的。没有缓存的话,提供商每次都从头处理所有这些 token。你每次都为未改变的内容支付全价。

Prompt 缓存是提供商侧的能力。Anthropic 提供了明确的 prompt 缓存机制,有文档化的 TTL,缓存读取的费用远低于重新处理。其他提供商的缓存方式不同或自动处理,具体取决于你使用的模型。核心点是一样的:命中热缓存的静态 token 比从头处理的 token 便宜。

这就是心跳变得有意义的地方。如果心跳频率足够高,能在两次调用之间保持提供商的缓存热度,每次检测都能复用缓存的系统上下文,而不是从零开始重新处理。缓存 TTL 因提供商和配置而异。Anthropic 的标准 TTL 约为5分钟,根据设置可以有更长的窗口。社区成员发现,将心跳间隔设置在 TTL 之内可以保持缓存活跃。再加上将心跳路由到便宜的模型,每次后台检测的成本只是冷启动 Opus 调用的一小部分。

关键原则很简单。确保静态内容(系统指令、引导文件)放在 prompt 开头,可变内容放在末尾。这种结构能最大化提供商可缓存的内容。有用户记录了主要通过这种方法从每月720美元降到72美元。

router-system.gif

缩小上下文窗口

你发送的每条消息都包含完整的对话历史。几小时后,仅历史本身的成本就可能超过实际回答。三件事可以帮到你。

经常开始新对话。 这是最简单的优化。不要一整天跑一个对话,每隔几小时开一个新的。你的代理在对话之间保留长期记忆,但丢弃累积的来回。上下文重置为仅引导文件。

清理你的 SOUL.md 这个文件的所有内容在每次调用时都会加载。如果你把特定任务的指令和性格规则放在一起,你每次都在为所有内容付费。把专门的部分移到技能中。它们只在代理真正需要时才加载。

优化记忆的上下文加载方式。 OpenClaw 使用 memory_search 将相关记忆拉入 prompt,而不是原始文件。但随着使用数周后记忆的积累,这些搜索可能返回越来越多的上下文。配置 QMD 后端并调优检索内容可以保持紧凑。一些社区成员在此基础上构建了结构化记忆层,将基础上下文缩减到了原来的一小部分。

用本地模型处理简单任务

在自己的硬件上运行模型可以消除不需要云模型的任务的 API 成本。

硬件只需一次性付费。之后每次推理都是免费的。对于心跳、分类和常规查询,本地模型完全胜任。

目前最受欢迎的选择是 Qwen 3 32B。在 RTX 4090 上运行速度超过每秒40个 token。Mac Mini 全天候运行处理轻量级工作负载,复杂推理才调用云模型。

Ollama 让集成变得简单。安装,拉取模型,将 OpenClaw 配置指向本地端点用于特定任务类型。它通过 OpenAI 兼容的 HTTP 端点工作。

openclaw-search.png

每天追踪你的成本

每个成功降低账单的用户都说同一句话。关键不是某个具体技术,而是看清钱花在了哪里。

每月只查一次账单会隐藏一切。你会错过某天定时任务出错。你会错过某个技能本应走 Haiku 却路由到了 Opus。

使用可观测性工具,查看每个 prompt、每个模型的成本明细。当你能准确看到每个请求走了哪个模型、花了多少钱时,问题就变得显而易见。看到数据后,修复通常只需几分钟。

一些路由工具提供实时追踪、每日预算和告警,让你在问题叠加前就能发现。你的提供商仪表板已经在追踪支出,但粒度各不相同。

从哪里开始

从可见性开始。搭建可观测性工具,让你能看到每个 prompt 的成本和模型。你无法优化你看不到的东西。

如果你在运行多个代理,切换到一个带技能的代理。这是最省力、回报最高的改变。

将心跳路由到便宜的模型。仅此一项对全天候运行的代理就有明显效果。

启用 prompt 缓存。设置只需几分钟。

保持上下文精简。清理你的 SOUL.md,定期开始新对话,将记忆切换到向量搜索。

如果你有硬件,添加本地模型。它以零边际成本处理心跳和简单任务。

根据我们在多个 OpenClaw 部署中的观察,应用这些改变可以将月度成本降低五倍。