Claude code resume后的缓存失效问题
- 内容介绍
- 文章标签
- 相关推荐
看到了顺便转过来。这个原文是claude写的就不贴过来了。
https://www.reddit.com/r/ClaudeAI/comments/1s7mkn3/psa_claude_code_has_two_cache_bugs_that_can/
验证脚本
https://gitlab.com/treetank/cc-diag/-/raw/c126a7890f2ee12f76d91bfb1cc92612ae95284e/test_cache.py
主要说了两个问题,一个是做替换的时候没做位置检查,直接把第一个找到的cch=00000里面的数字替换成指定值,但是问题是用户prompt的位置在系统字符串的前面。
这导致用户正常的prompt里面如果也出现了cch=00000,那就会优先把用户prompt里面这个字符串换掉了,导致缓存寄掉。
另一个问题是tool search patch导致的。之前还用过佬友脚本强开过来着,不过现在好像是默认开启了。这个bug的原因是--resume恢复会话之后tool描述插入的位置和结束会话之前不一致,导致每次恢复会话都会触发一次缓存重建。
我本地让cursor帮我分析了一下,基本确定tool search patch是有问题的。实际抓包测试还没跑。
网友解答:--【壹】--:
那以后还真的不能用老对话了,最好尽量用新对话
--【贰】--:
也就是说,如果是用resume指令恢复的对话的话,缓存是失效的。
这个Resume的对话如果很长,尤其是现在一M上下文的背景下,那resume一次就要消耗一次巨量的tokens啊,A处这尼玛是故意的吧。
我说这最近的额度掉得跟自由落体一样,基本上5h限额只能聊2h就没了(max 5x),以前很少打满
--【叁】--:
npm主要是版本比较旧吧,我记得最新版本好像只有bun打包的了。
不过我也尝试让claude帮我搓了一份hook请求的脚本,把问题二解决了
--【肆】--:
感谢佬友,这是个很重要的发现,用cc分析了下,搓了个修补补丁,放在原贴里提到的issue下面了:Issue
PS:原贴提到的两个问题中,问题一只存在于native安装的二进制文件,npm安装我实测没有问题。问题二在最新的2.1.88中仍然存在,打上补丁后可以恢复
--【伍】--:
Cursor跑的报告见此
https://pastebin.com/XcamyCFp
--【陆】--:
对的,而且这个bug貌似很久了(2.1.68之后一直存在)。我本地跑了一下验证脚本也可以确定这个事。
不过本身缓存也就1h,所以1h之外的对话的resume一定是会消耗多得多的token的
看到了顺便转过来。这个原文是claude写的就不贴过来了。
https://www.reddit.com/r/ClaudeAI/comments/1s7mkn3/psa_claude_code_has_two_cache_bugs_that_can/
验证脚本
https://gitlab.com/treetank/cc-diag/-/raw/c126a7890f2ee12f76d91bfb1cc92612ae95284e/test_cache.py
主要说了两个问题,一个是做替换的时候没做位置检查,直接把第一个找到的cch=00000里面的数字替换成指定值,但是问题是用户prompt的位置在系统字符串的前面。
这导致用户正常的prompt里面如果也出现了cch=00000,那就会优先把用户prompt里面这个字符串换掉了,导致缓存寄掉。
另一个问题是tool search patch导致的。之前还用过佬友脚本强开过来着,不过现在好像是默认开启了。这个bug的原因是--resume恢复会话之后tool描述插入的位置和结束会话之前不一致,导致每次恢复会话都会触发一次缓存重建。
我本地让cursor帮我分析了一下,基本确定tool search patch是有问题的。实际抓包测试还没跑。
网友解答:--【壹】--:
那以后还真的不能用老对话了,最好尽量用新对话
--【贰】--:
也就是说,如果是用resume指令恢复的对话的话,缓存是失效的。
这个Resume的对话如果很长,尤其是现在一M上下文的背景下,那resume一次就要消耗一次巨量的tokens啊,A处这尼玛是故意的吧。
我说这最近的额度掉得跟自由落体一样,基本上5h限额只能聊2h就没了(max 5x),以前很少打满
--【叁】--:
npm主要是版本比较旧吧,我记得最新版本好像只有bun打包的了。
不过我也尝试让claude帮我搓了一份hook请求的脚本,把问题二解决了
--【肆】--:
感谢佬友,这是个很重要的发现,用cc分析了下,搓了个修补补丁,放在原贴里提到的issue下面了:Issue
PS:原贴提到的两个问题中,问题一只存在于native安装的二进制文件,npm安装我实测没有问题。问题二在最新的2.1.88中仍然存在,打上补丁后可以恢复
--【伍】--:
Cursor跑的报告见此
https://pastebin.com/XcamyCFp
--【陆】--:
对的,而且这个bug貌似很久了(2.1.68之后一直存在)。我本地跑了一下验证脚本也可以确定这个事。
不过本身缓存也就1h,所以1h之外的对话的resume一定是会消耗多得多的token的

