Cursor Agent Auto 模式无限循环读同一段文件怎么办

Cursor Agent 在 Auto 模式下可能反复调用同一个文件读取操作上百次,耗尽用量不停下来。把模型从 Auto 切到具体型号可以避免,Cursor 团队已确认在修。

Cursor Agent Auto 模式无限循环读同一段文件怎么办

Cursor Agent 在 Auto 模式下会偶发进入无限循环,反复对同一个文件的同一段范围执行读取操作,循环上百次直到你手动中断。在这个过程中用量正常计费,不会自动停止。2026 年 9 月 8 日论坛用户 Yamazaki Yasuhiro 报告了这个问题。

作者CodePass 技术编辑

Bug 的表现

Yamazaki 描述的场景是:在 Agent 模式下使用 Auto 模型(当时路由到 Claude 3.7 Sonnet),Agent 在处理一个任务时进入了完全无用的工具调用循环。它反复调用同一个文件读取操作(相同的文件名、相同的行范围),每次调用之间没有任何有意义的输出或状态变化。

循环在上下文压缩(compaction)之后触发。当会话上下文过长被压缩后,模型似乎丢失了之前的进度信息,开始重复它在压缩前做过的操作。由于 Cursor 客户端没有检测重复工具调用的断路器(circuit breaker),循环可以无限继续。

用户需要手动发现并中断这个循环,但在这期间的所有工具调用都正常计费。

触发条件

基于论坛报告和 Cursor 工程师的回复,这个 Bug 的触发条件是:

  1. 使用 Auto 模式(模型由 Cursor 自动选择和路由)
  2. 会话足够长,触发了上下文压缩
  3. 压缩后模型的行为发生了退化

不是每次使用 Auto 模式都会触发,但一旦触发就没有自动停止机制。Cursor 工程师 Mohit 确认这不是用户配置问题:"压缩后 Agent 持续重复同一个文件读取操作且没有任何阻止机制,这不是预期行为。"

怎么避免

Cursor 工程师给出的建议是:在模型选择器里选一个具体模型(比如 Claude Fable 5.1),不要用 Auto。Auto 模式下 Cursor 会根据任务特征选择模型,但模型切换可能增加压缩后行为退化的概率。

如果你已经在 Auto 模式下遇到了循环:

  1. 立即在聊天面板里点击停止按钮中断 Agent
  2. 检查你的用量(Settings → Usage),确认这次循环消耗了多少额度
  3. 如果消耗异常,联系 Cursor 支持要求退款(Mohit 在帖子里暗示了这个可能性:"如果你对用量有疑问……")
  4. 切到具体模型后重试任务

用户提出的改进建议

Yamazaki 在报告里提了三个建议,都指向同一个缺失:客户端侧的安全机制。

相同工具调用阈值:如果完全相同的工具调用(同名、同参数)连续重复超过 3 次,自动中断并提醒用户。

每轮工具调用上限:在单次用户轮次内设置可配置的最大工具调用次数,超出需要用户确认。

压缩后的失效检测:上下文压缩后如果模型开始重复之前的动作,强制切换到请求用户指导的模式。

这些机制在当前版本(3.19.13)中都不存在。考虑到 Agent 越来越多地被用于长时间无人值守的任务,缺少断路器是一个实际的经济风险。

参考资料