Ralph Loop 是一个面向迭代式自引用开发的技能,适用于用户希望启动 Ralph 循环、开启迭代循环,或需要反复执行同一提示的场景。其核心机制是:每一轮结束后,把相同的提示重新反馈给智能体,让智能体在每次迭代中都能看到自己上一轮的工作结果,从而在连续迭代中逐步推进任务。
触发条件:当用户想要启动 Ralph 循环时使用。这是一种迭代开发循环,每轮结束后同一提示会被重新反馈,智能体每次迭代都能看到自己之前的工作。
工作流程:
- 收集用户的任务提示以及可选参数:max_iterations(数字,默认 0 表示不限制)、completion_promise(文本,若未设置则为 "null")。
- 若 .cursor/ralph/ 目录不存在则创建,然后在 .cursor/ralph/scratchpad.md 写入状态文件,格式如下:
iteration: 1 max_iterations: <N 或 0> completion_promise: "<TEXT>" 或 null
<用户的任务提示写在这里>
示例:
iteration: 1 max_iterations: 20 completion_promise: "COMPLETE"
Build a REST API for todos with CRUD operations, input validation, and tests.
- 向用户确认 Ralph 循环已激活,然后开始处理任务。
- 停止钩子会自动拦截每一轮的结束,并把相同提示作为后续消息重新反馈。该消息会带有 [Ralph loop iteration N.] 前缀。
防护规则:
- 若设置了完成承诺,只有在陈述完全且真实成立时,才可以输出 <promise>TEXT</promise>。
- 不要输出虚假承诺来逃离循环。
- 始终建议设置 max_iterations 作为安全网。
- 若 completion_promise 值包含特殊字符,请在 YAML frontmatter 中为其加引号。
输出:确认循环已激活(提示、迭代上限、承诺(若已设置)),然后立即开始处理任务。