后台子代理的 Shell 命令 3 分钟转后台:2.1.318 为了不让提示缓存过期
让子代理在后台跑长任务,是 Claude Code 里很常用的玩法。但长时间卡在一条慢命令上,会带来一个不太显眼的代价:提示缓存会过期。CLI 2.1.318 针对这一点做了调整。
改了什么
按更新说明:
后台子代理会在 3 分钟后把一条 Shell 命令移到后台,所有提供商一致。
原因也写得很直白:这样做是为了让提示缓存不会在命令运行期间过期。
换句话说,如果后台子代理执行的某条命令(比如大型构建、长时间测试)迟迟不结束,它不会一直占着这一轮不放,3 分钟一到,命令就被转到后台继续跑,子代理得以继续往下走。
为什么这和缓存有关
提示缓存有存活时间。一轮对话如果长时间没有新请求发出去,缓存就可能过期,之后再继续时,上下文要重新计算,响应更慢、也更费。让命令超过 3 分钟就转后台,是在「等命令」和「保缓存」之间划了一条线。
同一版本里的相关调整
2.1.318 还提到一处与等待时间有关的变化:在 Bedrock、Vertex、Foundry,或者关闭了遥测的情况下,子代理的进度摘要在提示缓存是冷的时,现在最多可能要等子代理待处理的响应 5 分钟。
所以如果你在这些环境里发现进度摘要偶尔晚一些出现,不一定是卡住了,可能只是在等冷缓存下的响应。
对日常使用的影响
- 任务设计:给后台子代理的命令,如果预计会超过 3 分钟,要预期它会被转到后台,最好让脚本能把结果写到文件或日志里,方便之后查看;
- 别依赖「同步等完」:不要假设后台子代理会一直守着一条命令直到结束再继续;
- 多云环境:Bedrock、Vertex、Foundry 用户看到进度摘要稍晚,属于预期内的行为。
更新说明没有提到这个 3 分钟是否可配置,也没有说明转后台后结果如何回收,细节请以实际行为为准。
小结
2.1.318 让后台子代理的 Shell 命令在 3 分钟后转入后台,目的是不让提示缓存在漫长的命令里过期,并且在各个提供商上保持一致。对长任务依赖较多的流程,值得顺手检查一下命令是否会撞上这个时间点。