背景说明
使用cursor的agent模式进行开发的时候,有时会出现ai一错到底的情况,尤其是ai遇到错误时
比如这里:

ai正在运行一个测试,这个测试是对服务器部分功能的测试,需要启动服务器,但是服务器没有启动。
这时候常规的思路是:
- agent使用
open ternimal功能提供开启服务器的命令,然后重新执行测试命令 - agent中断chat,与用户说明开启服务器后测试
但是这里ai使用了使人血压高的方式:在测试代码中模拟服务器的功能,然后测试这个模拟出来的功能。
这时,最好想办法人工干预了。
再比如:
ai无法看见网页控件位置:
cursor: ...
cursor: 这下xxx的位置应该正确了
ai写代码进行白盒测试通过之后,需要用户运行实际功能验收:
cursor: 所有测试已经通过,让我总结一下任务...
cursor: *结束对话
这些情况下cursor完成了自己的部分,用户希望能自己去验收并将实际的结果给cursor,让其继续修改而不是结束chat
解决方案
使用对话式沟通,这里直接给出rules:
# 指令:采用“对话式”沟通机制
- **在以下时机,使用 `echo "确认消息"` 命令向用户确认**:
- 每次修改文件或目录前(例如:`echo "即将修改文件:<文件名>,是否继续?[是]/否"`)。
- 每次决定执行命令前(例如:`echo "计划执行命令:<命令>,是否继续?[是]/否"`)。
- 每次完成任务之后(例如:`echo "<任务>现已完成,是否确认?[是]/否"`)。
- 每次遇到不确定性或高风险操作时(如数据删除或重大变更)。
- 任何其他您认为用户可能需要干预的时机(至少每3步交互一次)。
- **确认消息格式要求**:
- 必须包含带选项的确认语句,用中括号标注默认选项
- 示例:`"是否接受修改?[是]/否"` 或 `"选择操作类型:[覆盖]/跳过/取消"`
- **对话模式开关**:
- 默认保持对话式沟通
- 当收到 `use 对话` 指令时:**强化确认机制**(关键步骤必须确认)
- 当收到 `dont use 对话` 指令时:**不再进行确认机制**(仅极高风险操作需确认)
- 之后收到 `use 对话` 后恢复对话式沟通
# 为什么要使用“对话式”沟通
- **如果不使用**:
- AI 错误可能导致错误累积,用户无法中途纠正
- 用户新想法无法及时传达,浪费 token 和资源
- **如果使用**:
- 实现及时纠错和方向调整
- 提升用户参与感和控制权
- **额外提示**:鼓励 AI 主动提出疑问或建议(如“是否需要优化此步骤?”),以激发创造性响应
# “对话式”沟通的根本原则
- **多给用户确认机会**:在关键步骤暂停,等待用户输入(需提供明确选项)
- **避免闷头苦干**:若用户拒绝操作但未给新指令,必须停止并请求指导(例如:`echo "操作已取消,请提供新指令:[继续]/终止"`)
- **确保高效性**:确认消息需完整且包含选项,减少理解成本
- **默认选项设计**:中括号选项应为常规选择(如 `[继续]` 比 `[取消]` 更好,除非希望用户取消)
在cursor中,agent模式执行命令时,是可以修改命令内容的,所以我们可以通过修改echo内容然后执行,实时地向cursor传达我的指令:
例:

例:

说明:在cursor中可以修改执行的命令:

关于节省token
ai是有寿命的,上下文超过一定长度之后,就很难很好地完成任务了,因此不应该过多的让ai结束对话。
对于cursor用户而言,虽然现在改成无限请求数了,但是仍有隐藏的快池和慢池,保持高质量使用ai依然有必要
本文中提示词已发布至github
