OpenClaw 框架中的智能体(agent)本质上就是一个拥有超长记忆的数字助手。它会把你所有的对话历史、工具调用结果、文件操作记录都保存在一个叫做"上下文窗口"的地方。这个窗口就像一张无限延伸的草稿纸,写满了就不再换纸,而是继续挤在边角。两小时后,这张纸已经密密麻麻写满了三小时前的调试信息、一小时前的错误日志、以及无数中间状态的代码片段。这时候你输入新指令,模型需要在这堆信息中找到相关的部分,难度堪比在垃圾场里找一枚戒指。
OpenClaw里有个隐藏设置,能彻底改变游戏规则:在你的配置文件里,加上 cache-ttl: 15m 这一行。
这意味着,如果你的代理(智能体)闲着超过15分钟,它的会话就会自动重置,而不是一直累积信息直到最后彻底崩溃。
大多数智能体运行两三个小时后就会开始犯傻,因为它的上下文窗口(可以理解为短期记忆)被填满了。然后它就开始忘记规则,胡说八道,不听指令。
设置了15分钟的缓存时间后,每次你离开一会儿再回来,你的智能体都会像重启了一样焕然一新——但它会在回来时读取它存好的记忆文件。这样一来,每次都是干净的状态,但又拥有完整的记忆,完美。
把这个设置和一个两小时的无操作重置结合起来,你的智能体就真的永远不会性能下降了。
那些说自己能让智能体连续跑几周不出问题的?这就是他们的秘密。
真相:那个15分钟的魔法数字
现在我要揭开那个传说中的配置项。在 OpenClaw 的配置文件里,有一个被大多数人忽略的参数叫做 cache-ttl: 15m。这串字符看起来平平无奇,但它实际上是智能体世界的"记忆刷新按钮"。
让我拆解这个术语。TTL 是 Time To Live 的缩写,意思是"存活时间"。Cache 是缓存,也就是模型临时存放计算结果的地方。组合起来,cache-ttl: 15m 就是在告诉系统:任何缓存的内容,如果15分钟内没被用到,就视为过期。
但这还不是全部真相,真正的魔法在于 OpenClaw 的上下文修剪机制。
当你设置这个参数后,OpenClaw 不会简单粗暴地删除所有旧记忆。它采用了一种精密的手术刀式操作:只修剪工具调用的结果(toolResult),而保留用户和助手的对话记录。
这就好比一个整理狂魔,他不会把你和朋友的聊天记录扔掉,但会把那些"正在连接服务器..."、"文件加载中..."的系统提示统统丢进碎纸机。
更妙的是,它会保护最近的三条助手消息,确保对话的连贯性不受影响。
15分钟这个时间长度经过精心计算。人类的工作模式通常是专注一段时间然后休息,可能是去倒杯咖啡、上个厕所、或者盯着窗外发呆。当你离开15分钟后回来,系统已经悄悄完成了一次"记忆排毒",把那些不再相关的中间计算结果清理干净。你回来看到的AI助手,虽然记得你们之前的对话主题,但大脑里没有堆积如山的过期技术细节,反应速度和精神状态都保持在最佳水平。
机制:为什么这不是简单的重启
很多人误解这个机制,以为15分钟后智能体会完全重启,像电脑关机再开机那样从零开始。如果真是这样,那你每次回来都要重新介绍项目背景、重新上传文件、重新建立上下文,体验会糟糕透顶。OpenClaw 的设计远比这聪明。
实际的流程是这样的:当15分钟的静默期过去,系统检测到没有新的交互,于是触发上下文修剪程序。这个程序首先扫描整个对话历史,识别出所有的工具结果消息。这些消息通常包含大量的技术细节,比如API返回的JSON数据、文件系统的目录结构、代码执行的输出日志。然后程序会检查这些消息的时效性,将超过15分钟且后续未被引用的内容标记为可删除。
但这里有个关键的设计:系统会保留最近的三条助手消息。这三条消息就像是记忆的锚点,确保当你回来时,AI助手仍然记得"我们在讨论用户登录功能的重构"这个大方向。同时,系统会重置缓存窗口,这意味着后续的新请求可以重新利用缓存机制,而不需要重新计算或重新传输大量数据。
这种设计产生了一个美妙的副作用:每次你回来,AI助手都处于一种"半新鲜"状态。它记得你们的故事主线,但忘记了那些繁琐的技术细节。这就好比你跟朋友聊电影,你们记得正在讨论《星际穿越》,但不需要记得半小时前为了查证某个情节而打开过的十几个网页内容。这种选择性遗忘让对话始终保持高效和专注。
组合拳:心跳保持与长期缓存
单独使用 cache-ttl: 15m 只能解决短期记忆膨胀问题。如果你想让智能体连续运行数周都不出问题,还需要另外两个配置的配合:心跳保持(heartbeat)和长期缓存保留(cacheRetention)。
心跳保持的机制听起来很浪漫:系统每隔一段时间(比如55分钟)自动发送一个轻量级请求,就像心跳脉冲一样,告诉模型"我还在这里,记得保持温热"。这个机制的存在是为了配合 Anthropic 的 Prompt Caching 功能。当你使用 Claude 系列模型时,系统会将频繁使用的上下文内容缓存起来,避免每次请求都重复传输相同的数据。但缓存有有效期,通常是1小时。如果在这1小时内没有任何请求,缓存就会失效,下次对话需要重新建立,产生额外的成本和时间开销。
通过设置 heartbeat: { every: "55m" },系统会在缓存即将过期前自动刷新它,确保缓存始终保持"温热"状态。这就好比你在冬天使用保温杯,每隔一段时间喝一口水保持温度,而不是等到水完全凉掉再重新加热。结合15分钟的修剪机制,你得到了一个完美的平衡:活跃时保持完整上下文,闲置时自动清理垃圾,长期运行时通过心跳维持基础设施。
长期缓存保留(cacheRetention)的设置通常是 "long",对应1小时的保留期。这与15分钟的修剪周期形成互补:15分钟处理的是短期工具输出的膨胀,1小时处理的是中期上下文的稳定性。两者结合,再加上心跳保持,构成了一个三层防御体系:第一层快速清理过期技术细节,第二层维持中期对话连贯性,第三层确保长期运行的基础设施稳定。
实战:配置文件的完整形态
让我展示一个生产级的配置示例,这是那些运行数周无故障的智能体背后的真实代码。不要眨眼,这些JSON结构就是数字世界的魔法咒语。
json
{
"agents": {
"defaults": {
"model": {
"primary": "anthropic/claude-opus-4-6"
},
"models": {
"anthropic/claude-opus-4-6": {
"params": {
"cacheRetention": "long"
}
}
},
"contextPruning": {
"mode": "cache-ttl",
"ttl": "15m",
"keepLastAssistants": 3
},
"heartbeat": {
"every": "55m"
}
}
}
}
这段配置的含义层层递进。
首先,它指定了主模型为 Claude Opus 4.6,这是 Anthropic 的旗舰模型,支持 Prompt Caching 功能。
然后,在模型参数中设置了 cacheRetention: "long",启用1小时的长期缓存保留。
接下来是核心部分:contextPruning 对象定义了修剪模式为 cache-ttl,TTL 值为15分钟,同时保留最近3条助手消息。
最后,heartbeat 配置确保每55分钟自动刷新缓存,避免过期。
当你把这个配置部署到生产环境后,观察到的行为模式是这样的:用户活跃对话时,所有上下文完整保留,工具调用频繁,缓存持续命中;用户离开15分钟后,系统自动修剪旧的工具结果,但保留对话主线;用户回来时,系统从修剪后的状态继续,响应迅速且专注;如果用户长时间离开(超过55分钟),心跳机制已经提前刷新了缓存,确保回来时无需等待重新建立上下文。
这种配置特别适合需要长期运行的场景,比如24/7的客服智能体、持续监控的代码审查助手、或者长期项目的开发伙伴。那些声称"我的智能体已经运行三周没重启"的开发者,秘密就在这组配置中。
效果:数字不会撒谎
理论再好也需要数据验证。根据社区的实际测试和阿里云的部署报告,这种配置组合产生了显著的效果。首先是缓存写入频率降低了90%,这意味着模型不需要频繁地重新计算和存储上下文,节省了大量的计算资源和时间。其次是上下文长度减少了45%,这直接转化为更快的响应速度和更低的API成本。
更重要的是用户体验的质变。没有这种配置的智能体,通常在2到3小时后出现明显的"认知衰退":开始重复之前的错误、忽略最新的指令、或者在代码中引入已经修复过的bug。而配置了15分钟修剪周期的智能体,即使连续运行数周,也能保持第一天的敏锐度和准确性。
这种效果的原理在于信息新鲜度的管理。人类大脑有短期记忆和长期记忆的区分,短期记忆容量有限但访问速度快,长期记忆容量大但访问速度慢。OpenClaw 的这个机制实际上是在模拟这种分层记忆结构:15分钟内的工具结果保持在"短期记忆"中,随时可用;超过15分钟的内容被转移到"长期记忆"的归档区,不再占用宝贵的上下文窗口空间;而对话的主线通过保留的助手消息和心跳机制,始终保持在可访问状态。
哲学:遗忘是一种美德
这个技术机制背后有一个深刻的哲学启示:遗忘不是缺陷,而是智能的必要组成部分。人类的大脑每天都会遗忘大量的信息,这不是bug,而是feature。如果我们记得每一秒钟的所有细节,大脑会被信息淹没,无法做出有效的决策。
AI智能体面临同样的困境。上下文窗口的有限性(即使是号称20万token的模型)本质上是一种约束,迫使系统必须选择性地保留重要信息。OpenClaw 的 cache-ttl 机制提供了一种自动化的遗忘策略:让系统自己判断什么是重要的(对话主线)什么是可丢弃的(过期的工具输出)。
这种自动化遗忘解决了长期运行AI系统的一个核心难题:如何在保持连贯性的同时避免信息过载。传统的解决方案要么是完全重启(损失所有上下文),要么是无限累积(最终崩溃)。15分钟的修剪周期找到了一个甜蜜点:足够长以支持正常的工作流程,足够短以防止垃圾堆积。
当你理解了这个机制后,你会开始用新的眼光看待所有的AI交互。那些"变笨"的智能体不是因为模型能力不足,而是因为配置没有给它们遗忘的自由。就像一个人如果被迫记住一生中的每一个细节,最终会精神崩溃一样,AI也需要遗忘的权利来保持清醒。
结语
OpenClaw配置中加入cache-ttl: 15m,能彻底解决AI智能体运行几小时后因上下文填满而变笨、遗忘规则的问题。这个设置让代理在闲置15分钟后自动重启,既保持记忆又拥有干净状态,结合两小时闲置重置,可实现智能体永久不降智,这是高手能持续运行数周的真正秘诀。