
01、OpenClaw 如何消耗 Token:你看不见的隐藏成本
-
第一层:核心指令(无法修改)
OpenClaw 自己的系统指令,告诉它怎么运作、怎么响应、怎么调用工具。这部分你改不了,每次都会发送。
-
第二层:上下文文件
agents.md– 你的代理指令和行为规则soul.md– 你设定的代理性格和沟通风格memory.md– 代理的长期记忆,每次对话后都会追加内容
-
第三层:历史对话
所有之前的对话记录。你问 “天气怎么样”,它答 “20 度晴天”。然后你问 “我该穿什么”,这时候它会把前面那轮对话也一起发送过去。每一轮新对话,都会带着所有旧对话。这就是为什么 OpenClaw 这么贵。
如果你一天发 10 条消息(真的不多),那就是 2 美元。如果你一个会话保持 7 天不刷新,后面的消息会越来越贵,因为上下文越积越多。
7 天 × 一天 10 条 × 平均 15 美分 = 大约 15 美元。
对比一下普通的 ChatGPT API 调用:
如果你直接用 OpenAI 的 chat completions API,发送 “天气怎么样”,收到 “20 度晴天”,可能只消耗 1000 个 token,成本大约 1-2 美分。10 条消息 10 美分。
- 拉取更新信息
- 重启服务器
- 做健康检查
- 如果有问题就修复
- 回来告诉你完成了
02、文件管理:控制 agents.md、soul.md、memory.md 的大小
agents.md– 7.7KB? 70KB?soul.md– 3.2KB? 30KB?memory.md– 这个会随时间暴涨,10KB? 100KB? 500KB?
agents.md超过 15KB,你可能在浪费钱。agents.md的核心原则:简洁、明确、不重复agents.md里写一大堆详细指令:“如果我说 A 你就做 B,如果我说 C 你就做 D…”。别这么干。正确的做法:- 核心行为规则:每条不超过 1-2 句话
- 常用技能:写成简短的关键词或命令
- 参考示例:给 1-2 个例子就够了,不要写 10 个
“当我要求你做研究时,你应该先问我研究的主题是什么,然后问我需要多深入的研究,然后问我…(巴拉巴拉 500 字)”
“研究任务:询问主题和深度,使用子代理完成,交付摘要”
soul.md也一样。不要写一整篇小说描述你的代理。应该 “有同理心、专业、友好、幽默…”。写 3-5 个关键词就够了。模型会理解的。memory.md是最大的问题。
这个文件会在每次对话后追加新内容。用了一个月?几百 KB。用了六个月?可能上 MB。而这个文件在每次请求时都会被完整发送。
解决方法:定期清理memory.md
每个月或每两周,让你的代理帮你做一次 “记忆压缩”:
“请总结 memory.md 中最重要的 10 件事,删除重复和过时的信息,将文件压缩到 5KB 以内”
03、用子代理处理大任务:保持主会话轻量化
- 研究某个技术话题
- 写一个完整的代码项目
- 分析一大堆数据
正确的做法:创建子代理。
在agents.md里加一条指令:
“对于复杂任务(研究、编程、数据分析),创建临时子代理完成。子代理完成后,只返回最终结果给主会话。”
- 它有自己的会话和 token
- 它完成工作后,只把结果(比如 10% 的关键信息)返回给主会话
- 主会话保持轻量,后续对话不会被之前的大任务拖累
当你说 “帮我研究一下 xx 技术”,代理会:
- 创建一个临时的研究子代理
- 子代理去做深度研究(消耗它自己的 token)
- 完成后,子代理返回一个简短摘要给主代理
- 主会话只记录这个摘要,不记录整个研究过程
04、Codex 免费策略:用 ChatGPT 订阅里的 token 跑编程任务
核心思路:
你的 OpenClaw 运行在一台服务器或电脑上。你可以在同一台机器上安装 Cursor 或其他使用 Codex 的工具,然后用 OAuth 认证你的 ChatGPT 账号。
- 在运行 OpenClaw 的机器上打开新的终端
- 安装 Cursor 或 Codex 客户端
- 用 OAuth 认证(不是 API key,是直接登录 ChatGPT 账号)
- 在
agents.md里添加指令:
“编程任务:启动本地 Codex 会话,使用 OAuth 认证的免费 token。完成后返回代码,我会在localhost查看。”
- 不消耗你的 OpenClaw API 配额
- 用你已经付费的 ChatGPT 订阅里的 token
- 代码质量往往更高(Codex 专门为编程优化)
- 你的主 OpenClaw 代理只需要等待,不需要自己写代码
05、 数据库替代 MD 文件:长期数据不要放文本里
health_log.md,然后每天追加一行:- 2026-02-01: 跑步 30 分钟,吃了沙拉
- 2026-02-02: 健身房 1 小时,吃了鸡胸肉
- 2026-02-03: …
正确的做法:用数据库。
OpenClaw 自带数据库功能。在agents.md里加这条指令:
“所有长期数据(任务、健康记录、项目进度)存入数据库,不要写入 MD 文件。”
- 数据存在数据库里,不占用会话上下文
- 你想看数据时,打开localhost上的面板,直接查看
- 不需要问代理 “给我看最近 30 天的数据”(这又是一次昂贵的 token 消耗)
一个实际例子:
假设你用 OpenClaw 做健康追踪:
- 每天记录饮食和运动
- 90 天后有 90 条记录
- 如果存 MD 文件:每次对话 + 5-10 美分(因为要发送整个文件)
- 如果存数据库:每次对话 + 0 美分(数据库不在上下文里)
06、模型选择的平衡:不要无脑选最便宜的
- 上下文理解能力差:很容易丢失之前的对话
- 工具调用能力弱:需要连续执行 5 个工具调用时经常卡住
- 容易被 prompt injection:安全性差
- 频繁出错:导致你要重复发送请求,反而更贵
举个例子:
你用小模型,让它 “更新服务器”。它可能:
- 第一次尝试失败
- 你重发指令
- 第二次尝试还是失败
- 你再重发
- 第三次才成功
- 主代理用好模型:Sonnet 4.6 或 Opus 4.6,保证可靠性
- 子代理可以用中等模型:Minimax 2.5,便宜但能完成简单任务
- Heartbeat 用中等模型:不要用最小的,但也不用最大的
价值判断:
如果 OpenClaw 每天帮你:
- 追踪健康数据,让你 3 个月减掉 10 公斤
- 管理项目任务,让你效率提升 30%
- 自动化重复工作,每天省 1 小时
07、Cron Jobs 和 Heartbeats:定时任务的成本陷阱
- Cron Jobs(定时任务):在特定时间执行任务
- Heartbeats(心跳检测):定期 “醒来” 检查状态,会带着当前会话的所有历史对话,非常容易变得昂贵
Cron Jobs 的成本:
- 加载所有上下文文件(
agents.md、soul.md、memory.md) - 执行网络搜索
- 生成报告
- 发送给你
Heartbeats 更可怕:
假设你设置心跳每 15 分钟检查一次。一天 24 小时 = 96 次检查。
如果你的主会话已经有 20-30 条历史消息,每次心跳都要带着这些消息。一次心跳可能 10-20 美分,96 次 = 一天 10-20 美元!
- Cron Jobs 用中等模型:不要用 Opus,用 Minimax 2.5 或类似的
- Heartbeats 设置长间隔:不要 15 分钟,至少 1 小时或更长
- Heartbeats 用轻量模型:除非真的需要高质量推理
- 默认关闭 Heartbeats:在 config 文件里设置为 0 分钟(完全关闭)
如何在 config 文件里关闭 Heartbeats:
找到你的 config 文件,设置:
heartbeat_interval: 0
- 监控长时间运行的任务(比如 Codex 编程会话可能跑 6 小时)
- 夜间需要自动修复问题的场景
08、n8n 的妙用:日报、提醒这些不需要 AI
新闻:调用新闻 API,拿到标题,排序
YouTube 推荐:调用 YouTube API,按关键词筛选
假设你想要每天早上的报告,包括:
- 当地天气
- 3 条 AI trending 新闻
- 推荐 YouTube 视频
- 触发 Cron
- OpenClaw 调用天气 API(AI token)
- OpenClaw 搜索新闻(AI token)
- OpenClaw 筛选 YouTube(AI token)
- OpenClaw 格式化(AI token)
- 发送到 Telegram(AI token)
- n8n 定时触发(免费)
- 调用天气 API(免费)
- 调用新闻 API(免费)
- 调用 YouTube API(免费)
- 格式化数据(免费)
- 发送到 Telegram(免费)
- 只在必要时调用一次 AI(比如总结新闻)(~2 美分)
- 在 Docker 容器里安装 n8n
- 把 n8n 连接到 OpenClaw
- 用 Tailscale 保证安全
- 设置基本的 workflow
不是说完全不用 OpenClaw,而是:
- 简单的数据抓取、格式化、定时发送 → n8n
- 需要推理、决策、复杂工具调用 → OpenClaw
假设你要用 OpenClaw 设置 n8n(上一节提到的):
- 开始用 Opus 4.6 处理复杂的安装配置
- 安装完成后,输入
/models - 切换到 Minimax 2.5
- 用便宜模型继续日常对话和测试
09、会话管理命令:随时控制成本的工具
/status– 查看当前会话状态在 Telegram 或 Discord 里输入
/status,你会看到:
- 当前使用的模型(可能你以为用的 Minimax,其实在用 Opus)
- 已消耗的 token 数量
- 当前上下文的 token 数量(这个很关键)
/compact– 压缩当前会话如果你正在处理一个大项目,不想开新会话(因为需要保留所有上下文),但又发现 token 用得太多,可以用
/compact。
比如你有 80 万 token 的上下文,压缩后可能只剩 10 万。下一条消息立刻省 70 万 token 的成本。
compact:- 会话很长,但你还需要继续
- 上下文超过 50 万 token
- 不想丢失当前的工作进度
/new– 开启全新会话这个命令会清空所有历史对话,给你一个全新的会话。
“请把我们当前的工作进度、遇到的问题、已尝试的方案、下一步计划写入 temporary.md 文件”
/new开新会话。
新会话里,告诉代理:
“读取 temporary.md,继续之前的工作”
/models– 切换模型在同一个会话中途,你可以切换模型。
10、设置支出限制:硬性控制烧钱速度
如果你用 OpenRouter、Anthropic 或 OpenAI,你可以在 API 密钥层面设置消费上限。
- 登录你的 API 提供商(OpenRouter/Anthropic/OpenAI)
- 找到你的 API 密钥
- 点击 “编辑” 或 “设置”
- 设置每日 / 每周 / 每月消费上限
- 一旦达到 5 美元,API 会自动停止响应
- 第二天重置,继续可用
- 防止某个配置错误导致一天烧掉 100 美元
你还可以更高级一点,搭建一个监控系统:
- 每天从 OpenClaw 导出 token 消耗数据到数据库
- 从 API 提供商导出账单数据到数据库
- 用 Codex 策略(第 4 节)让代理帮你搭建一个仪表板
- 在仪表板里查看:
- 按天 / 周 / 月的消费
- 按任务类型的消费
- 按模型的消费
- 按代理的消费
- 这周花了多少钱
- 主要花在哪些模型上
- 是否符合预期
- 少发消息
- 换便宜模型
- 关闭某些 Cron
- 更频繁地刷新会话
11、 进阶技巧:让 OpenClaw 教你怎么用它
agents.md里加这样的指令“观察我的对话模式。如果我多次提到某个话题(比如健康、项目、学习),主动问我是否要:
- 创建追踪系统
- 设置提醒
- 建立数据库
- 搭建仪表板
不要等我提出,要主动建议。”
“我注意到你 3 次提到想减肥了。要不要我帮你:
- 搭建一个每日饮食和运动记录系统
- 设置每天晚上 8 点的提醒,问你今天吃了什么、运动了没
- 创建一个数据库,90 天后可以看图表
- 用 Codex 搭建一个简单的仪表板
这样我能更好地帮你实现目标。”
工作项目管理、学习进度追踪、财务记录、阅读列表、任何你反复提到的事情
12、 最后的建议:从一个代理开始,慢慢扩展
财务代理、YouTube 代理、研究代理、个人助理代理、项目管理代理
- 同时有 5 个对话在进行
- 每个都在消耗 token
- 但其中 3 个其实没啥用
- 只用一个代理
- 让它观察你的需求
- 让它主动建议功能
- 慢慢建立起你真正需要的系统
- 如果发现某个领域需要专门的代理(比如确实需要一个专门做 YouTube 研究的)
- 那时候再创建第二个代理
- 用不同的模型(主代理 Sonnet,专项代理 Minimax)
❌ 把 OpenClaw 当 ChatGPT 用 → 随便聊天,问天气,看新闻
✅ 把 OpenClaw 当系统构建工具 → 搭建追踪系统、自动化流程、管理项目
💥 token 消耗的真相 —— 每次对话背后 OpenClaw 都在发送巨量隐藏上下文
💥 文件管理是关键 —— agents.md、soul.md、memory.md会越来越大,不控制就是烧钱
💥 用子代理处理大任务 —— 主会话保持轻量,复杂工作交给临时代理
💥 Codex 免费策略 —— 用 ChatGPT 订阅里自带的 token 跑编程任务,不花额外的钱
💥 数据库替代 MD 文件 —— 90 天的记录存 MD 会炸,存数据库几乎不耗 token
💥 模型选择的平衡 —— 不要无脑用最便宜的,小模型容易掉链子反而更贵
💥 Cron 和 Heartbeat 的陷阱 —— 15 分钟跑一次心跳,一天 96 次执行要 10-20 美元
💥 n8n 的妙用 —— 日报、天气、新闻这些不需要 AI,用 workflow 省 90% 成本
💥 会话管理命令 —— /status、/compact、/new、/models随时控制成本
💥 支出限制必须设 —— API 密钥设每日 5 美元上限,硬性控制烧钱速度









































用数据库代替MD文件这招确实管用
这招我也试过,省不少
子代理这个技巧有点东西,之前没想到