Cursor Agent 偷看消息队列提前干活 这个 Bug 怎么绕
Cursor 3.19 Agent 会读取排队中的后续消息并提前执行,完成后队列消息自动发送导致重复执行。Cursor 团队已确认在修,暂时没有完美绕行方案。

如果你在 Cursor 里给 Agent 排了一条后续消息(等当前任务完成后再发),Agent 可能会在当前任务进行中偷看排队内容并提前开始执行。等当前任务结束后,排队消息自动发送,Agent 又会再执行一遍同样的事情。这个 Bug 在 2026 年 9 月 9 日被用户 Ben Walker 在 Cursor 论坛报告。
Bug 的表现
复现步骤如下:给 Agent 下达一个长任务(比如多文件重构),然后在任务进行中排一条后续消息(比如"字体全换成 Inter")。这条消息应该等 Agent 完成当前任务后才发送。
但实际发生的是:Agent 在工作过程中调用了一个内部工具 check queue for follow up messages,读到了排队消息的内容,然后把它当作当前任务的一部分开始执行。执行完后,排队消息按原计划自动发送,Agent 收到了同样的指令并再次执行。
Ben Walker 在 Bug 报告里贴了 Agent 的工具调用日志,能看到 Agent 读取到了一个 JSON 结构,包含 hasQueuedMessages: true 和排队消息的完整文本。Agent 随后说:"队列里有一条关于字体的后续消息,我先把当前的改动回退,然后处理字体。"
为什么会这样
Cursor 的消息队列设计本意是让用户可以预排后续指令,Agent 按顺序逐条处理。但队列的内容对 Agent 可见(通过一个内置工具),Agent 可以在任务进行中主动查看"接下来要做什么"。
Ben Walker 的评价很直接:"Agent 不应该在正常工作流中看到队列的任何内容。队列是给我用的,让我预发一些消息等 Agent 忙完再处理。Agent 在工作中偷看队列然后提前动手,这不是正确的行为。"
他也提到一个可能的例外:上下文压缩(compaction)时知道"接下来要做什么"可能有助于保留相关上下文。但即使这样,队列内容也不应该在 Agent 的常规工作流中暴露。
暂时怎么绕
目前没有完美的绕行方案。几个可以降低影响的做法:
- 不要在 Agent 执行长任务时排队后续消息。等当前任务结束、Agent 停下来后再发
- 如果已经排了队列消息且发现 Agent 开始偷看,手动停止 Agent,删除队列消息,等 Agent 完成当前任务后重新发
- 把需要分步执行的任务写在一条消息里(用分点列表),而不是拆成主消息 + 排队后续消息
Cursor 工程师 Mohit 在论坛的类似队列 Bug 帖子里确认了问题存在且在追踪中。这个特定的"偷看队列"行为报告于 9 月 9 日,修复时间线未公布。
关联的队列问题
这不是消息队列唯一的问题。同期论坛上还有几个相关报告:编辑已排队消息时模型选择不保存(工程师已确认是 Bug,临时方案是删掉再重新排);每条消息都被排队需要手动点 Send Now(即使 Agent 空闲也要点,Developer: Reload Window 可临时解决)。
消息队列是 Cursor Agent 工作流里的核心交互机制,目前的稳定性还有提升空间。如果这些 Bug 影响了你的工作效率,在论坛对应帖子里留言和 upvote 能帮助 Cursor 团队排优先级。