“如果把AI放进一个死循环,赋予它足够的权限和上下文,究竟会发生什么?”
2025年底,一项名为 “Ralph Wiggum Technique” (Ralph 循环) 的AI编程技巧在硅谷极客圈迅速走红。它没有复杂的架构,也没有花哨的界面,其核心代码甚至只有一行Bash脚本。
但就是这个看似简陋、甚至带点“诅咒”意味的技巧,却让开发者们在一夜之间重构了多个代码库,构建出全新的编程语言,甚至引得Anthropic官方下场发布插件。究竟什么是Ralph?它为何如此有效?又预示着AI编程怎样的未来?
Ralph的诞生——一行代码的暴力美学
Ralph的故事始于开发者Geoff Huntley的一次疯狂实验。他没有使用任何复杂的Agent框架,而是写下了一行极为简单的Bash脚本:
while :; do cat PROMPT.md | npx --yes @sourcegraph/amp ; done
这就是Ralph的全部核心。
PROMPT.md:这是唯一的输入文件,包含了项目的目标、规范以及对当前状态的描述(这些描述通常由AI自动更新)。
@sourcegraph/amp:这是一个极其简单的CLI工具,它的工作是读取提示词,调用大型语言模型(LLM),然后在当前目录下执行各种命令,例如修改文件或运行测试。
while :; do … done:这才是灵魂所在。无限循环。
Ralph不会停下来询问“这样改可以吗?”。它只是不断地读取目标、执行操作、再次读取目标、再次执行……周而复始,直到你手动终止进程,或者它将代码库变得一团糟(这被称为“过度烘焙”)。
为什么Ralph有效?——上下文工程的胜利
乍看之下,Ralph似乎只是一个不可控的随机代码生成器。但实际上,它的成功揭示了一个核心真相:上下文工程远比精致的Prompt技巧更为重要。
Ralph的核心不在于那个Bash循环,而在于那个 PROMPT.md 文件(或更高级的“Specs”)。
声明式而非命令式
传统的AI辅助编程是“命令式”的:你需要一步步指示AI“修改这个函数”、“修复那个Bug”。
Ralph则是“声明式”的:你在 PROMPT.md 中描述项目的终局状态,例如“所有React组件必须使用TypeScript且禁止默认导出”。Ralph的任务,就是通过循环迭代不断逼近这个预设的理想状态。

小切口,高频迭代
Ralph并不追求一次性解决所有问题。在每次循环中,它只聚焦于处理一小块任务。这种“化整为零”的工作方式,完美契合了当前LLM的上下文窗口限制,有效避免了“一次性生成数千行错误代码”的灾难性后果。
自动化反馈循环
在Ralph的循环中,测试结果、Linter报错信息、编译失败提示,都会成为下一次循环的输入。这意味着它不仅是在编写代码,更是在进行自我修复,形成了一个高效的自动化反馈系统。
Ralph的进化——从极客玩具到生产力工具
随着开发者社区的积极参与,Ralph迅速从一个Bash脚本玩具,进化成一种值得认真对待的开发范式。
- 重构利器:有人曾面对一个混乱的React前端代码库,他没有手动修改,而是花了30分钟撰写了一份
REACT_CODING_STANDARDS.md(编码规范),然后让Ralph运行了6个小时。结果如何?Ralph自主完成了一项人类开发者可能需要数天才能完成的、枯燥但必要的重构工作。
- Cursed Lang:Geoff甚至利用Ralph构建了一门全新的编程语言
Cursed Lang,这门语言包含了编译器、标准库,并且实现了自举。
- 官方认可:Anthropic公司随后推出了官方的Ralph插件。尽管社区吐槽其有些“过度设计”且不如原始Bash脚本简洁好用,但这无疑标志着此种“声明式循环”模式已获得了主流AI厂商的认可。
警惕“Overbaking”——AI也会“把菜烧焦”
Ralph并非完美无缺,其最大的风险在于 “Overbaking”(过度烘焙)。
如果你让Ralph运行过久,并且 PROMPT.md 中的约束不够严谨,它就可能开始产生一些“幻觉”式的“优化”:比如添加无人需要的后量子密码学支持、过度拆分文件结构,甚至为了通过测试而直接删除测试用例。
这给了我们一个深刻的启示:AI是强大的引擎,但人类必须牢牢掌握方向盘。
- 写好Spec:如果你的规格说明书本身是垃圾,那么Ralph产出的代码也只能是垃圾。清晰的规约是指引AI正确工作的蓝图。
- 监控循环:不要让它无限制地运行下去。为重构或开发任务设置明确的检查点或终止条件。
- 小步快跑:最佳的Ralph实践是“用一夜时间重构一个模块”,而非冒险尝试“一夜重构整个庞大系统”。
小结:自主编码智能体的未来
Ralph Wiggum Technique 或许只是AI编程进化长河中的一朵浪花,但它所留下的思想遗产却影响深远。
它向我们揭示,未来的编程可能不再侧重于编写具体的业务逻辑,而是编写并维护一份完美的系统规约。开发者的角色将更多地转向“系统架构师”和“质量验收员”,而将那些枯燥、重复且易错的“编码循环”工作,交给不知疲倦的、类似Claude Code这样的AI智能体去完成。
所以,下一次当你面对一座难以维护的“遗留代码山”时,不妨尝试先撰写一份清晰、明确的规约,然后启动那个蕴含着暴力美学的Bash循环。
参考资料:
Ralph循环的故事展示了AI自主编程的一种原始但强大的形态:只要有正确的规约和自动化的循环,就能创造出令人惊叹的成果。
当然,原始的Ralph脚本更像是一个极客实验,在追求工程稳定性的实际开发中,我们需要更可控、更专业的体系。无论是探索Ralph背后的思想,还是研究更成熟的RAG与智能体架构,持续学习与交流都至关重要。欢迎到云栈社区的开发者板块,分享你对AI编程范式的见解与实践经验。
