简要总结
Session Pruning
这页说明书讲的是“会话修剪”。它就像一个小园丁,会在你和AI助手聊天太久、工具结果太多时,帮你把一些旧的、不重要的工具结果从AI的“短期记忆”里清理掉。这样可以让AI助手下次回答时更快、更省钱。当你发现AI助手记不住很久以前的工具结果,或者想节省一些费用时,可以看看这页。
五岁小孩版解释
会话修剪是做什么的呢?想象一下,你和AI助手聊天时,用了很多小工具(比如查天气、算数学),这些工具会留下很多结果。如果聊天太久,这些结果会把AI的“短期记忆”塞满。会话修剪这个小园丁,就会在AI助手准备思考回答前,悄悄地把一些旧的工具结果清理一下,让AI的“短期记忆”保持清爽。注意哦:它只清理AI的“短期记忆”,不会删掉你们聊天记录的本子(那些 *.jsonl 文件)。
这个小园丁什么时候会工作呢? 它只在满足下面所有条件时才工作:
- 你把它的工作模式设置成了
mode: "cache-ttl"。 - 距离上次AI助手(Anthropic家的)回答已经过去了
ttl这么长的时间(比如5分钟)。 - 它只影响这一次发送给AI助手看的聊天内容。
- 它只对Anthropic家的AI助手(或者通过OpenRouter使用的Anthropic模型)有效。
- 为了让效果最好,你可以把
ttl的时间和AI助手自己的记忆规则cacheRetention设成一样(short是5分钟,long是1小时)。 - 小园丁工作一次后,计时器会重新开始,直到下一个
ttl时间过去,它才会再次工作。
它会修剪哪些东西呢?
- 它只修剪那些叫
toolResult的消息(就是各种小工具产生的结果)。 - 你(用户)和AI助手(助理)说的话,它绝对不会改动。
- 它会保护最近的
keepLastAssistants条AI助手消息(默认是3条),这些消息后面的工具结果不会被修剪。 - 如果聊天里AI助手的消息太少,不够确定保护范围,那小园丁这次就不工作了。
- 如果工具结果里有图片,那小园丁会跳过它,永远不会清理它。
小园丁有两种工作方式:
- 软修剪:只对那些特别特别长的工具结果使用。
- 它会保留结果的开头和结尾,中间用
...代替,并加个小纸条说明原来有多长。 - 有图片的结果会被跳过。
- 它会保留结果的开头和结尾,中间用
- 硬清除:如果工具结果太长,超过了某个比例,小园丁就会用一句话
hardClear.placeholder(默认是"[Old tool result content cleared]")替换掉整个结果。
你可以告诉小园丁只修剪哪些工具:
你可以用 tools.allow(允许列表)和 tools.deny(拒绝列表)来指定工具名字,支持用 * 号代表任意字符(比如 *image* 代表所有名字里有“image”的工具)。
deny列表的优先级更高(拒绝说了算)。- 名字不区分大小写。
- 如果
allow列表是空的,那就默认所有工具都允许修剪。
一些重要的提醒和默认设置:
- 这个小园丁和另一个叫“压缩”的功能是分开的。压缩是总结聊天并永久保存,修剪只是临时清理一下,为了单次请求更高效。
- 有些工具自己就会缩短输出,修剪是在它们之上再加一层保护,防止聊天太久工具结果堆积太多。
- 如果你自己设置了任何值,OpenClaw就不会用它的默认值覆盖你的设置。
- 默认的设置是:
ttl为"5m"(5分钟),保护最近3条助手消息,软修剪比例是0.3,硬清除比例是0.5,等等。
怎么打开它呢?
在配置里,把 mode 从 "off" 改成 "cache-ttl" 就可以啦!你还可以设置 ttl 时间和指定 tools.allow 或 tools.deny 列表。