教程

OpenClaw Prompt Caching 调优指南:cacheRetention、cache-ttl 修剪与心跳保温三件套

详解 OpenClaw 提示缓存调优三大配置项:cacheRetention 缓存保留策略、contextPruning cache-ttl 上下文修剪、heartbeat 心跳保温,附配置合并优先级和不同场景的调优建议。

2026/8/123分钟 阅读ClaudeEagle

对于长时间运行的 OpenClaw Agent 会话,Prompt Caching(提示缓存)是控制 Token 成本最直接的杠杆之一——本文基于官方文档,详解 cacheRetentioncontextPruning 和心跳保温三个核心配置项如何配合使用。

提示缓存解决什么问题

提示缓存让模型提供商能复用未变化的提示前缀 (通常是系统/开发者指令和其他稳定的上下文), 而不是每一轮都重新处理一遍 首次匹配的请求会写入缓存 token(cacheWrite) 后续匹配的请求可以读取缓存(cacheRead)

价值很直接——更低的 token 成本、更快的响应速度,以及长时间运行会话中更可预期的性能表现。没有缓存的话,即便大部分输入内容没变,每一轮对话都要为完整提示付费。

核心配置一:cacheRetention

yaml
# 全局默认值,适用于所有模型
agents:
  defaults:
    params:
      cacheRetention: "long" # none | short | long
yaml
# 针对特定模型覆盖
agents:
  defaults:
    models:
      "anthropic/claude-opus-4-6":
        params:
          cacheRetention: "short" # none | short | long
yaml
# 针对特定 agent 覆盖
agents:
  list:
    - id: "alerts"
      params:
        cacheRetention: "none"

配置合并优先级(从低到高):

1. agents.defaults.params (全局默认,适用所有模型) 2. agents.defaults.models[provider/model].params (按模型覆盖) 3. agents.list[].params (匹配到具体agent id时覆盖)

旧版配置兼容——如果你的配置里还在用 cacheControlTtl,系统依然接受并自动映射:5m 映射为 short1h 映射为 long。不过新配置建议直接用 cacheRetention

核心配置二:contextPruning cache-ttl 模式

yaml
agents:
  defaults:
    contextPruning:
      mode: "cache-ttl"
      ttl: "1h"

这个配置的作用是——在缓存 TTL 窗口过期后,修剪掉旧的工具调用结果上下文,避免会话空闲一段时间后重新触发的请求要为过大的历史记录重新写入缓存。这一点和 Session Pruning 机制紧密相关(详见下文)。

核心配置三:心跳保温(Heartbeat keep-warm)

yaml
agents:
  defaults:
    heartbeat:
      every: "55m"

心跳可以让缓存窗口保持"温热"状态,减少空闲间隔后的重复缓存写入开销。也支持在 agents.list[].heartbeat 层级做 per-agent 的心跳配置。

这三个配置项配合起来的逻辑很清晰——cacheRetention 决定缓存本身保留多久,contextPruning 在缓存过期时顺手把过大的旧上下文修剪掉,heartbeat 则通过定期"探活"防止缓存因为空闲太久而失效重来一遍。

实战建议

1. 高频交互、上下文相对稳定的 Agent(如客服类): 优先用 cacheRetention: "long" + heartbeat 保温组合, 最大化缓存命中率 2. 低频、偶发触发的 Agent(如告警响应类): 可以考虑 cacheRetention: "none", 避免为极少复用的缓存支付写入开销 3. 会大量调用工具、产生长输出的场景: 务必搭配 contextPruning: cache-ttl, 否则每次缓存重写都要为累积的工具输出买单 4. 多模型/多agent混用场景: 善用配置合并优先级,只在真正需要差异化的层级 (模型级或agent级)做覆盖,减少配置维护复杂度

总结

Prompt Caching 调优本质上是在"缓存命中率"和"缓存写入开销"之间找平衡——cacheRetention 管保留策略,contextPruning 管上下文体积,heartbeat 管缓存保温,三者组合使用才能真正把长会话的 Token 成本压下来。


来源:Prompt Caching — OpenClaw 官方文档

相关文章推荐

教程OpenClaw Session Pruning 与 Compaction 的区别:谁在悄悄给你的会话上下文瘦身详解 OpenClaw Session Pruning 会话修剪机制:如何在每次 LLM 调用前修剪旧的工具调用结果以降低成本,与 Compaction 压缩机制的区别与配合方式,附智能默认值和手动配置方法。2026/8/12教程Claude Cache Diagnostics 教程:定位 Prompt Cache Miss 的真正原因Claude Cache Diagnostics 解决 prompt cache miss 难排查问题。通过传入上一次 response id,API 会比较请求 fingerprint,告诉你 model/system/tools/messages 哪个部分破坏了缓存 prefix。2026/6/6教程Claude Prompt Caching 完整指南:降低长上下文成本与延迟的 API 实战Claude Prompt Caching 官方能力中文整理:适合缓存的内容、cache_control 使用方法、缓存断点策略、长文档和工具定义复用、成本/延迟收益、常见坑和生产环境落地建议。2026/5/21教程OpenClaw SecretRef 完全教程:让 API Key 不用再以明文躺在配置文件里详解 OpenClaw SecretRef 密钥引用机制:内存快照运行时模型、active/inactive Surface 判定逻辑、env/file/exec 三种引用来源写法,以及生产环境凭据管理的实战建议。2026/8/12教程OpenClaw "Sandbox 越狱"排障指南:Sandbox / Tool Policy / Elevated 三层控制到底谁说了算详解 OpenClaw 三套独立又叠加的权限控制机制:Sandbox 决定工具运行位置、Tool Policy 决定工具是否可用、Elevated 是仅针对 exec 的提权逃生舱,附 sandbox explain 排障命令和常见问题修复清单。2026/8/12教程OpenClaw Standing Orders 完全教程:让 Agent 拥有"常设授权",不再事事请示详解 OpenClaw Standing Orders(常设指令)机制:如何在 AGENTS.md 中定义授权范围、触发条件、审批关卡和升级规则,让 Agent 在边界内自主执行常规工作,配合 Cron Jobs 实现定时自动化。2026/8/12