通过文件分割、提示缓存、上下文修剪和模型路由,将 OpenClaw 每次对话的提示成本降低 70% 以上。已在生产环境中测试...
Token OpenClaw 优化
功能概述
Token OpenClaw 优化是一项面向实际任务的技能,主要用于系统化指南将每回合的令牌消费减少70% , 但不失去任何功能;当使用此特性时;
核心要点
- session status 显示上下文 > 30%在简单化上。
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
使用与执行
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
OpenClaw 的 Token 优化指南
系统性操作指南:在不损失任何功能的前提下,将每轮对话的 Token 消耗降低 70% 以上。
何时使用本技能
session_status显示 Context 占比 > 30%(即使发送简单消息)- 缓存命中率(Cache hit rate)为 0%,或持续偏低
AGENTS.md文件大小 > 5KB,或MEMORY.md> 3KB- 你希望降低 Anthropic 模型的 API 成本
前提条件
- OpenClaw 2026.3.x 或更高版本
- 具备编辑
openclaw.json的权限 - 已至少配置一个 Anthropic 模型
步骤 1:评估当前状态
运行 session_status 并记录以下输出:
Cache: X% hit · Y cached, Z new Context: Xk/200k (X%)
然后检查各工作区文件大小:
wc -c ~/.openclaw/workspace/*.md
异常信号(Red flags):
- 任一单个文件 > 10KB → 需拆分
- 所有工作区文件总大小 > 30KB → 冗余严重
- 缓存命中率为 0% → 缓存未启用
- 发送简单消息时 Context 占比 > 40% → 上下文裁剪策略过宽松
步骤 2:拆分大文件(第一层优化)
AGENTS.md(最大瓶颈)
将使用频率较低的内容迁移至独立文件:
| 内容 | 迁移至 | 加载时机 |
|---|---|---|
| 子代理协议(Subagent protocols) | AGENTS_SUBAGENT.md |
仅在创建子代理(spawning)时加载 |
| 心跳规则(Heartbeat rules) | AGENTS_HEARTBEAT.md |
仅在执行心跳(heartbeat)时加载 |
| 详细示例(Detailed examples) | memory/ 目录 |
按需通过 read 加载 |
目标:AGENTS.md ≤ 5KB
仅保留:会话规则、安全策略、格式规范、高频使用的子代理速查表。
在文件顶部添加引用说明:
> Subagent protocol → `AGENTS_SUBAGENT.md` (read on demand) > Heartbeat protocol → `AGENTS_HEARTBEAT.md` (read during heartbeat)
MEMORY.md
将详细的 SOP 和操作流程迁移至 memory/ 子目录下的独立文件;仅保留在多轮对话中高频引用的核心条目。
目标:MEMORY.md ≤ 3KB
BOOTSTRAP.md
初始设置完成后即可删除。该文件每轮均被加载,但无实际价值。
mv ~/.openclaw/workspace/BOOTSTRAP.md ~/.openclaw/workspace/BOOTSTRAP.md.bak
验证
# 仅统计每轮必加载的文件总大小
cat ~/.openclaw/workspace/{AGENTS,SOUL,TOOLS,IDENTITY,USER,HEARTBEAT,MEMORY}.md | wc -c
# 目标:总和 < 15KB
步骤 3:启用提示缓存(第二层优化)
在 openclaw.json 中为每个 Anthropic 模型添加 cacheRetention 参数:
{
"agents": {
"defaults": {
"models": {
"anthropic/claude-opus-4-6": {
"params": { "cacheRetention": "long" }
},
"anthropic/claude-sonnet-4-6": {
"params": { "cacheRetention": "long" }
},
"openrouter/anthropic/claude-3.5-sonnet": {
"params": { "cacheRetention": "short" }
}
}
}
}
}
参数取值说明
| 取值 | 缓存窗口 | 适用场景 |
|---|---|---|
none |
不启用缓存 | 突发型 / 通知型代理 |
short |
约 5 分钟 | OpenRouter 上的 Anthropic 模型 |
long |
约 1 小时 | 主代理(推荐) |
厂商支持情况
| 厂商 | 是否支持 |
|---|---|
| Anthropic 直连 API | ✅ 完全支持 |
OpenRouter anthropic/* |
✅ 自动注入 cache_control |
| Bedrock Anthropic Claude | ✅ 透传支持 |
| 其他厂商 | ❌ 不生效 |
缓存常驻技巧(Keep-Warm Tip)
将 cacheRetention: "long" 与约 55 分钟一次的心跳配合使用,可使缓存长期保持活跃:
"heartbeat": {
"every": "55m",
"model": "your/cheap-model"
}
步骤 4:调优上下文裁剪(第三层优化)
{
"agents": {
"defaults": {
"contextPruning": {
"mode": "cache-ttl",
"ttl": "3m",
"keepLastAssistants": 2,
"softTrimRatio": 0.25,
"hardClearRatio": 0.45,
"tools": {
"allow": ["exec", "read", "browser"],
"deny": ["web_search", "web_fetch"]
}
}
}
}
}
参数参考指南
| 参数 | 激进模式 | 平衡模式 | 保守模式 |
|---|---|---|---|
ttl |
2m | 3m | 5m |
keepLastAssistants |
1 | 2 | 3 |
softTrimRatio |
0.20 | 0.25 | 0.30 |
hardClearRatio |
0.40 | 0.45 | 0.50 |
工具拒绝列表(Tool Deny List)
将体积大、一次性使用的工具输出移入 deny 列表:
web_fetch— 页面内容体积大,且极少复用web_search— 每次搜索结果均不同
将高频复用的工具保留在 allow 列表中:
exec— 命令输出常被后续对话引用read— 文件内容可能跨多轮讨论browser— 快照数据可能被反复引用
步骤 5:优化模型路由策略
对低价值任务使用低成本或免费模型:
"heartbeat": {
"every": "4h",
"model": "your/free-flash-model"
}
| 任务类型 | 模型层级 | 原因 |
|---|---|---|
| 心跳 / 定时任务(Heartbeat/cron) | 免费 / Flash 级别 | 仅需简单校验,零成本 |
| 简单问答(Simple Q&A) | 免费 / Flash 级别 | 无需强推理能力 |
| 中等复杂度任务 | 中端模型 | 兼顾成本与质量 |
| 复杂 / 多步骤任务 | 高端模型(Premium) | 投入产出比合理 |
步骤 6:验证与监控
完成全部配置后,重启网关并检查效果:
openclaw gateway restart
随后发送一条简单消息,并运行 session_status:
关键指标(KPI)目标值
| 指标 | 目标值 | 查看方式 |
|---|---|---|
| 缓存命中率(Cache Hit Rate) | > 80% | Cache: X% hit |
| 简单问答输入 Token 数 | < 20k tokens | Tokens: X in |
| 空闲状态下 Context 占比 | < 30% | Context: Xk/200k |
| 每日上下文压缩次数(Compactions/day) | < 2 | Compactions: X |
故障排查
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| 缓存命中率仍为 0% | 所用模型不支持缓存 | 确认厂商为 Anthropic |
每轮均产生高 cacheWrite |
系统提示词中存在易变内容(volatile content) | 将易变文件迁移至按需加载 |
| Context 占比迅速升至 > 50% | 上下文裁剪策略过宽松 | 降低 ttl 和 softTrimRatio |
| 每日压缩次数 > 3 次 | 长对话未触发有效裁剪 | 启用 cache-ttl 模式 |
总结检查清单
- 评估:运行
wc -c统计工作区文件大小 + 执行session_status - 拆分:
AGENTS.md≤ 5KB,MEMORY.md≤ 3KB - 删除:
BOOTSTRAP.md(如存在) - 缓存:为 Anthropic 模型配置
cacheRetention: "long" - 裁剪:配置
contextPruning并采用激进参数 - 路由:为心跳及简单任务指定低成本模型
- 验证:
session_status显示高缓存命中率 + 低 Context 占比 - 监控:每周审查 KPI 表现
热门AI工具
相关专题
token是一种用于表示用户权限、记录交易信息、支付虚拟货币的数字货币。可以用来在特定的网络上进行交易,用来购买或出售特定的虚拟货币,也可以用来支付特定的服务费用。想了解更多token什么意思的相关内容可以访问本专题下面的文章。
4721
2024.03.01
获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。
2597
2023.12.21
登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。
1245
2023.09.14
登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。
9906
2023.09.14
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
热门下载
相关下载
精品课程
共0课时 | 0人学习
共9课时 | 1.3万人学习
最新文章