
一文读懂 Ralph Loop 的四种变体:从 Claude 官方插件到…
与其让人类一步步指导 AI,不如定义好目标,然后让 AI 自己反复尝试直到完成。这个想法来自一位澳大利亚山羊农场主的编程实践,以及一个只有 5 行代码的 Bash 脚本。
起源:5 行 Bash 脚本的故事
Geoffrey Huntley 遇到的问题
2025 年 5 月,Geoffrey Huntley 在澳大利亚乡村养山羊的同时,也在做软件开发。他发现 AI 编码工具有个很大的问题:每次遇到错误都要停下来等人类审查和指导。
这个流程有两个麻烦:
Huntley 想,如果 AI 能看到自己的失败输出并自动重试,效率不就高多了?
一个极简的解决方案
他写了这样一个脚本:
while :; do
cat [PROMPT.md](//PROMPT.md) | claude-code --continue
done
就这么简单。一个无限循环,不停地把同一个提示文件喂给 AI。没有复杂的逻辑,没有状态管理,就是不停地重试。
他给这个技术起名叫 “Ralph Wiggum”—— 那个在《辛普森一家》里永远乐观、不怕失败、一直坚持的小男孩。
Huntley 后来解释说:“Ralph 会考验你。每次 Ralph 在开发 CURSED 语言时走错方向,我不会怪工具,而是检查自己的提示,然后调整它 —— 就像调吉他一样。”
核心原理:为什么让 AI 反复失败反而有效
“确定性地失败” 比 “不确定性地成功” 更有用
Huntley 提出了一个看起来很反直觉的观点:
“在不确定的世界中,确定性地糟糕胜过不确定性地成功。可预测地失败比不可预测地成功更好。”
这是什么意思?传统开发中,我们追求一次性写对。但 AI 的特点是:
失败不是灾难,而是有用的反馈信息。每个失败的测试、每条编译错误、每个类型检查失败,都在告诉 AI 下一步该怎么改。
自引用反馈循环的工作方式
Ralph 创建了一个自引用反馈循环:
虽然每次都是同样的提示文件,但文件系统状态在不断变化。AI 不是在重复同样的工作,而是在一个不断积累历史的环境中改进代码。

Stop Hook: Claude Code 的实现方式
Anthropic 的 Claude Code 团队把 Ralph 做成了官方插件,引入了 Stop Hook 拦截机制。
传统的 Ralph 靠外部 Bash 循环重启会话。Claude Code 插件是在会话内部创建循环,核心逻辑是:
拦截 Claude 的退出尝试 → 检查完成条件(查找特定的
这种实现的好处:
两种实现方式
Claude Code 官方版
Anthropic 的官方插件是工程化的版本:安全、可控、好用。
安装:
/plugin install ralph-loop@claude-plugins-official
使用示例:
/ralph-loop "构建 TODO 的 REST API。要求: CRUD、验证、测试。完成时输出
<promise>COMPLETE</promise>" \
--max-iterations 50 \
--completion-promise "COMPLETE"
特点:
适合:
Ryan Carson 版
Ryan Carson 的实现遵循 Huntley 的原始思路:显式控制、工具无关。
核心脚本逻辑:
for i in $(seq 1 [$MAX](https://x.com/search?q=%24MAX&src=cashtag_click)_ITERATIONS); do
OUTPUT=$(cat [prompt.md](//prompt.md) | amp --dangerously-allow-all 2>&1)
if echo "$OUTPUT" | grep -q "<promise>COMPLETE</promise>"; then
exit 0
fi
done
项目结构:
scripts/ralph/
├── [ralph.sh](//ralph.sh) # 主循环脚本
├── [prompt.md](//prompt.md) # AI 指令
├── prd.json # 用户故事任务列表
└── progress.txt # 学习日志
核心特点:
适合:
来源: Ryan Carson GitHub 仓库
生产化改进:两个代表性实现
原始的 Ralph Loop 虽然简单有效,但在生产环境中存在明显的问题:成本失控、漂移风险、缺乏可视化。开源社区很快开发出多种改进版本,其中 Vercel Labs 和 Zenflow 代表了两个不同的演进方向。

Vercel Labs:双层循环架构
Vercel Labs 的实现是对 Ralph 理念的编程化封装,完全集成到 Vercel AI SDK 生态。它的核心创新是双层循环架构:
与传统 AI SDK 的区别:传统 AI SDK 的 generateText 在 LLM 完成工具调用后就停止了。即使测试失败、编译报错,Agent 也不会自动重试。
Vercel 的 Ralph Loop Agent 引入外层循环:内层的工具调用完成后,运行 verifyCompletion 函数检查任务是否真正完成。如果未达标,将反馈注入下一轮迭代,继续执行。
关键机制:verifyCompletion 反馈
这是 Vercel 实现的核心创新。验证函数返回的原因字符串会作为系统消息注入到下一次迭代的上下文中,让 Agent 能够根据具体失败原因调整策略,而不是盲目重试。
成本控制示例:
stopWhen: [
iterationCountIs (50), // 最多 50 次迭代
totalCostIs (10.0), // 最多花费 $10
totalTokenUsageIs (200000) // 最多 20 万 Token
]
适用场景:
Zenflow:规格驱动的受控循环
Zenflow 是独立桌面应用,它的核心理念是:“没有锚点的循环会漂移”。Zenflow 不是简单地让 Agent 反复尝试,而是将循环嵌入到 Spec-Driven Development (SDD) 工作流中。
核心架构:plan.md 作为状态机
工作流定义在 Markdown 文件中:
.zenflow/tasks/{task_id}/
├── [plan.md](//plan.md) # 可执行的工作流定义
├── [spec.md](//spec.md) # 需求规格 (锚点)
├── [report.md](//report.md) # 执行报告
└── changes/ # 代码变更记录
plan.md 有双重角色:既是执行指令,又是执行日志。
自修改计划机制
Zenflow 的循环不靠外部脚本重启,而是让 Agent 自己修改 plan.md 来延续循环。
循环原理:
这种机制的优势:循环有明确的进展方向。不是盲目重试同一个任务,而是完成一个目标后自动设置下一个目标。
“委员会方法”:多模型交叉验证
Zenflow 的研究发现:让不同模型互相审查比单一模型迭代更有效。典型的三步工作流:

不同模型有不同的 “盲点”。Claude 可能擅长生成简洁代码但忽略边界条件;GPT 可能更严格但过于保守。让它们互相审查能捕获单一模型会漏掉的问题。
“黄金地带”:3 次迭代限制
Zenflow 团队的实践经验:
超过 3 轮说明任务定义不清,需要人工介入。这种 “失败快速”(Fail Fast)哲学防止了无意义的 Token 消耗。
防止漂移的机制
纯 Ralph 循环的最大问题是 “漂移”:Agent 经过多次迭代后,逐渐偏离原始意图。Zenflow 用两种机制防止:
适用场景:
技术权衡对比
Vercel Ralph Loop Agent:
Zenflow 受控循环:
选择建议:
来源:Vercel Labs GitHub、Zencoder 博客
真实案例
案例 1:CURSED 编程语言 ——3 个月的长跑
Geoffrey Huntley 用 Ralph 技术,花 3 个月时间,完全自主开发了一门叫 CURSED 的编程语言。成果包括:
Huntley 只是定期调整 prompt.md 中的指令,Ralph 在后台持续工作。这证明 Ralph 不只适合短期任务,也能支持长达数月的复杂开发。
案例 2:YC 黑客马拉松一夜生成 6 个仓库
Y Combinator 黑客马拉松的参与者用 Ralph,一夜之间生成了 6 个完整的代码仓库。报告标题很直接:“我们把编码代理放进 While 循环,它一夜之间交付了 6 个仓库”。
这个案例展示了 Ralph 的批量生成能力:并行运行多个 Ralph 实例,利用夜间时间无人值守开发。
案例 3:$50,000 合同只花 $297
有开发者用 amp 配合 Ralph 循环,完成了一个价值 $50,000 的商业合同,实际 API 成本只有 $297。成本比率仅 0.594%。
这个案例引发了关于 AI 开发经济学的讨论:当 AI 能以不到 1% 的成本交付软件时,传统定价模型还能维持多久?
案例 4:Reddit 上的真实问题
Reddit 的 r / ClaudeCode 社区有更现实的反馈。有用户报告了个 bug:“第一次运行 Ralph-Wiggum—— 它接管了另一个会话!!”
原因是 Ralph 的 Stop Hook 是全局的,在不同项目间切换时会相互干扰:
解决办法:用 Git Worktrees 为每个 Ralph 实例创建独立的工作目录。
另一位用户说:“Ralph 很厉害…… 但第一次用需要信念和对最终结果的信任。Ralph 会考验你。”
来源: Reddit r / ClaudeCode 社区
争议与现实问题
“让 AI 反复失败直到成功” 的争论
Ralph 的核心思路 —— 让 AI 无限重试直到成功 —— 挑战了传统软件工程思维。
传统思维:
Ralph 的做法:
VentureBeat 的报道说这是 “把模型逼到极限,直到它为了逃离循环而‘梦见’正确解决方案”。
批评者说:这不就是暴力破解吗?为什么不一开始就写好 prompt?
支持者反驳:人类自己就是这样工作的。没有程序员能一次性写出完美代码。我们都是写、测试、调试、重构 ——Ralph 只是把这个循环自动化了。
Token 成本的现实
Ralph 最大的问题是成本。Reddit 用户分享的数据:
Better Stack 在 Twitter 警告:“Ralph Wiggum 插件在自主循环中运行 Claude Code…… 成本可能无限增长。”
实际应对策略:
从 “人在循环” 到 “人定义目标”
Ralph 改变了 AI 辅助开发的模式。Matt Pocock (YouTube 技术博主)的说法是:
“不再强迫 AI 遵循脆弱的多步计划,而是让代理简单地‘从看板上抓任务卡片’,完成它,然后找下一个。”
传统模式:
人类计划 → AI 执行步骤 1 → 人类审查 → AI 执行步骤 2 → ……(每一步都需要人工确认)
Ralph 模式:
人类定义成功标准 → Ralph 自主迭代 → 达成目标(文件系统反馈、测试结果反馈、Git 历史反馈)
这要求开发者掌握新技能:写好目标而不是写好步骤。好的 prompt 不是 “做 A,然后做 B”,而是 “达成 X 状态,证据是 Y 测试通过”。
安全问题
Ralph 的自主性带来了安全担忧。2025 年的研究论文《AI 代码生成中的迭代安全降级》发现:
“当最初安全的代码经过多轮 AI‘改进’时,在没有人工干预的情况下,可能会系统性地引入新漏洞。”
实验表明,纯 LLM 反馈循环(无人类审查)在 5-7 次迭代后,代码安全性开始下降:
Reddit 用户的建议:“我的工作流中有一个只读权限的代理来验证和拒绝不安全的更改。”
来源:arXiv 研究论文、Reddit 社区
如何使用 Ralph

适合用 Ralph 的场景
/ralph-loop "让 tests/auth/ 下的所有测试通过。npm test -- auth 返回 0 退出码时输出
--max-iterations 30
不适合用 Ralph 的场景

写好 Prompt 的技巧
不好的例子:
构建一个电商平台。
好的例子:
markdown## 目标 实现用户认证系统 ## 成功标准 1. 所有测试通过 (npm test -- auth) 2. TypeScript 编译无错误 (npm run typecheck) 3. 包含功能: - JWT 令牌生成和验证 - 密码哈希 (bcrypt) - 刷新令牌机制 ## 验证步骤 每次迭代: 1. 运行 `npm test -- auth` 2. 检查 `npm run typecheck` 3. 如果都通过, 输出:<promise>AUTH_COMPLETE</promise> ## 约束 - 使用项目中现有的 lib/jwt.ts 工具 - 遵循 docs/security-guidelines.md - 密码最小长度 8 位 ## 如果卡住 15 次迭代后仍有失败: - 记录当前问题 - 列出已尝试的方法 - 建议替代方案 - 输出:<promise>BLOCKED</promise>
要点:
监控和调试
熔断器模式
增强版 Ralph 实现了智能熔断器,防止无意义循环消耗资源。三种熔断策略:
熔断触发时会自动停止,输出诊断信息,建议下一步操作。
监控仪表盘
增强版本提供实时可视化:

Git 安全网:
# Ralph 运行前
git checkout -b ralph/experiment-$(date +% s)
# 出错时回滚
git reset --hard origin/main
来源: frankbria GitHub 仓库
未来可能的方向
递归自我改进的风险
Ralph 本质上是受限的递归自我改进:AI 通过读取自己的输出来改进下一次迭代。但这种机制走极端会怎样?
2025 年的研究论文《AI 系统中的递归自我改进》警告:
“递归发展可能触发失控场景,AI 系统在反馈循环中不断增强能力,不受外部约束。”
失控场景:
Ralph 的安全机制(--max-iterations、人类定义的目标)是第一道防线。但够吗?
反馈循环安全降级研究
2026 年 IEEE - ISTAS 会议即将发表的论文《迭代 AI 代码生成中的安全降级》提出了 “反馈循环安全降级” 问题:
“在纯 LLM 交互中,安全性似乎随迭代而系统性恶化,而非改善。这说明人类专业知识在开发循环中很重要。”
研究发现:

这对 Ralph 类工具提出了挑战:需要智能熔断器,不仅检测无进展,还要检测安全性退化。
Human-in-the-Loop 的回归?
讽刺的是,Ralph 最初想消除 “人在循环” 瓶颈,但最新研究表明可能需要重新引入 —— 以更智能的方式。
可能的方向:
HumanLayer 的方法可能是个方向:不是 “人审查每一步”,而是 “AI 自主运行,但在关键点等人类确认”。
从 Ralph 到 AGI 还有多远?
Ralph 展示了 AI 代理在受限域(明确目标、可验证结果、有限上下文)的自主能力。但离 AGI 还很远:
Ralph 能做的:
Ralph 不能做的:
Geoffrey Huntley 总结:
“Ralph 需要信念和对最终结果的信任。每次 Ralph 走错方向,我不怪工具 —— 我检查自己的 prompt 并调整。就像调吉他。”
这说明:Ralph 把人类技能从 “逐步指导 AI” 转移到了 “设计正确的目标”。这是进步,但离 AGI 的自主定义目标还有质的差距。
来源:学术研究论文、HumanLayer 博客
总结
Ralph Wiggum 技术从 5 行 Bash 脚本到全球现象,不到一年时间。它带来的不只是工具,更是思维方式的改变:
VentureBeat 说得好:
“Ralph 不只是生成代码 —— 它生成了一个市场。从加密货币代币到企业 SaaS,从 YouTube 教程到学术论文,Ralph 证明了一个简单的循环可以改变整个生态。”
下次运行 /ralph-loop 时,记住:你不只是在启动脚本,而是在参与一场关于 AI 自主性的实验 —— 从山羊农场开始,用辛普森角色命名,正在改变软件开发的实验。
正如 Ralph Wiggum 本人可能会说:“我在帮忙!”
如果您对 AI 或 AI Agent 感兴趣,推荐更多我的文章:
https://x.com/wquguru/status/2007669143378727203?s=46