Claude Code 2.1.281 修复恢复会话丢缓存

Claude Code 2.1.281 修复恢复会话时改写早先回合、导致 API 丢掉已有推理的问题,也修复 MCP 断开且工具搜索关闭时提示缓存丢失。超大会话有时只恢复最后几条的问题一并修了。先对 claude --version 是不是低于 2.1.281。

Claude Code 2.1.281 修复恢复会话丢缓存

长会话最贵的部分常常是已经写入的提示缓存和推理。Claude Code 2.1.281 修了几条会把它们弄丢的恢复路径。claude code 恢复会话丢缓存 如果出现在 2.1.280 或更早,发行说明给出的原因包括:恢复时把早先回合换了一种形式再发送,API 因此丢掉这段对话已有的推理。

作者CodePass 技术编辑

恢复时哪几种改写会丢推理

发行说明点名的改写形式有:并行工具调用那一轮、MCP 工具调用的输入、工具搜索结果在服务器还在重连时被发出,以及工具搜索结果所属的加载回合被中断。这些情况下,恢复后的请求和当初发出去的历史不一致,提示缓存从那一点断开,已有推理也可能被丢掉。

另一条写:恢复一个非常大的会话,有时只还原最后几条消息。还有一条:重启发生在权限提示还挂着的时候,恢复后发出的历史和之前不同,提示缓存从那里断开。工具调用进行到一半就结束的会话,恢复后模型能看见那次调用,并被告知结果未知;手动恢复不再塞进一条隐藏的 Continue。

这些都记在 2.1.281。更早版本的发行说明没有写同样的修复。遇到「续上之后从零开始想」时,先看 claude --version 是不是低于 2.1.281,再考虑是不是模型本身换了。

MCP 断开也会拆缓存

另一条 Fixed:MCP 服务器在对话中途断开,或恢复后还在连接,同时工具搜索是关的(例如走代理或网关),提示缓存会丢。2.1.281 修的是这条路径。工具搜索开着时的行为,这句没有写。

代理或网关若把流干净地关掉,旧版本会把截断的回答显示成完整结束,重复的流事件还会让工具调用跑两次。2.1.281 改为截断时给出警告。这和缓存丢失同属「网关改写了会话」,但一个是显示完整,一个是历史对不上。升级同时盖住这两条,不能只用其中一条解释账单突然变高。

参考资料