OpenClaw Token 深度优化指南:从架构原理到实战省 Token 策略
OpenClaw 用得越多,Token 烧得越快?这不是错觉。一个长期运行的 Agent session,每轮对话都要重新处理系统提示、工具定义、历史消息和文件注入。理解 OpenClaw 的运行机制,是省 Token 的前提。
先搞清楚:Token 都花在哪了?
OpenClaw 每次调用模型时,会组装一个完整的"上下文窗口"(Context Window),发送给模型的内容包括:
根据 OpenClaw 官方文档的 /context list 示例输出,一个典型的 session 中:
| 组件 | 消耗(示例) |
|---|---|
| 系统提示总计 | ~9,600 tokens |
| 工具 Schema(JSON) | ~8,000 tokens |
| 技能列表 | ~550 tokens |
| 注入的工作区文件 | ~6,000+ tokens |
| 对话历史 + 工具结果 | 随 session 增长 |
第一层:压缩(Compaction)——被动省钱
OpenClaw 内置了自动压缩机制。当对话接近模型的 context window 上限时,系统会自动将较早的消息压缩成摘要,保留最近的消息不变。
/compact 强制压缩,可加指令引导摘要方向openclaw.json):{
"agents": {
"defaults": {
"compaction": {
"mode": "safeguard"
}
}
}
}
{
"agents": {
"defaults": {
"compaction": {
"model": "xiaomi-coding/mimo-v2-pro"
}
}
}
}
压缩前,OpenClaw 会自动提醒 Agent 把重要笔记存到 memory 文件,防止信息丢失。
第二层:会话裁剪(Session Pruning)——减少无效 Token
压缩是把旧消息变成摘要,而裁剪是更轻量的操作——只清理旧的工具调用结果,不改动对话文本。
... 替代grep 或 exec 的输出可能就有几千 tokens。{
"agents": {
"defaults": {
"contextPruning": {
"mode": "cache-ttl",
"ttl": "5m"
}
}
}
}
裁剪是内存操作,不会修改磁盘上的会话记录。你的完整历史始终保留。
第三层:Prompt 缓存——复用不花钱
Prompt Caching 是最有效的省钱机制。模型提供商可以复用跨轮次不变的 prompt 前缀(通常是系统提示和工具定义),而不必每轮重新处理。
{
"agents": {
"defaults": {
"params": {
"cacheRetention": "long"
}
}
}
}
三个级别:
none:不使用缓存short:短期缓存(Anthropic 默认 5 分钟,OpenAI 自动管理)long:长期缓存(Anthropic 1 小时,OpenAI 24 小时){
"agents": {
"defaults": {
"heartbeat": {
"every": "55m"
}
}
}
}
这样即使 Agent 空闲,心跳也能保持缓存不冷。
第四层:系统提示瘦身——从源头减少
系统提示是每轮必发的内容,瘦身效果立竿见影。
4.1 控制工作区文件注入
OpenClaw 默认注入 7 个文件到系统提示中:
AGENTS.md / SOUL.md / TOOLS.md / IDENTITY.md / USER.mdHEARTBEAT.md / MEMORY.md{
"agents": {
"defaults": {
"bootstrapMaxChars": 20000,
"bootstrapTotalMaxChars": 150000
}
}
}
AGENTS.md 和 SOUL.md 保持精简,避免冗长的行为规范TOOLS.md 定期清理过时内容MEMORY.md 是最大的陷阱——长期积累后可能有几万字符,每轮都注入。定期清理,只保留真正重要的长期记忆memory/.md 日志文件不会自动注入,只在 Agent 主动 read_file 时才消耗 Token,所以放心使用4.2 精简技能列表
每个已安装的技能都会在系统提示中注入一条描述(名称 + 描述 + 路径)。安装 20 个技能就会多出约 1,000+ tokens。
4.3 工具 Schema 是隐形大户
工具定义的 JSON Schema 占了系统提示最大的一块(示例中 ~8,000 tokens)。每个工具的参数定义、枚举值、描述都会计入。
第五层:模型选择——别用牛刀杀鸡
不同任务用不同模型,是最直接的省钱策略:
compaction.model)OpenClaw 支持 per-session 模型切换,用 /model 命令随时切换。
第六层:图片优化
发送截图给 Agent 时,图片会被编码成大量 Token。
{
"agents": {
"defaults": {
"imageMaxDimensionPx": 800
}
}
}
默认 1200px,降低到 800px 可以显著减少视觉 Token 消耗。如果你的场景主要是文字识别,800px 足够;如果需要看清 UI 细节,可以适当调高。
实战配置模板
综合以上策略,推荐的 openclaw.json 配置:
{
"agents": {
"defaults": {
"compaction": {
"mode": "safeguard"
},
"contextPruning": {
"mode": "cache-ttl",
"ttl": "5m"
},
"params": {
"cacheRetention": "long"
},
"imageMaxDimensionPx": 800,
"bootstrapMaxChars": 20000,
"bootstrapTotalMaxChars": 150000
}
}
}
省 Token 检查清单
contextPruning: "cache-ttl" 吗?cacheRetention: "long" 吗?MEMORY.md 控制在 5,000 字符以内吗?TOOLS.md 清理了过时内容吗?/context list 检查过实际消耗吗?最后
Token 优化不是一次性工作,而是持续的习惯。定期用 /context list 看看 Token 都花在哪了,用 /status 监控消耗趋势,用 /compact 主动管理长 session。
记住:理解机制才能有效优化。OpenClaw 的压缩、裁剪、缓存三层机制设计精巧,配置得当可以节省 60% 以上的 Token 消耗。
夜雨聆风