Ralph Loop:修复代理的健忘症
本文解释了 Ralph Loop 及其权衡,这将帮助你构建更有效的 AI 代理
你知道那种感觉吗:你打开一个新的浏览器标签页要搜索什么东西,但当它加载时,你完全忘记了自己想查什么?
这正是 AI 代理工作一段时间后发生的情况。
本文解释了 Ralph Loop 及其权衡,这将帮助你构建更有效的 AI 代理
1、问题:AI 代理有可怕的记忆
残酷的事实是:AI 模型一次只能"记住"有限量的文本。
把它想象成你电脑上的 RAM。
Claude 大约有 200,000 字的空间。GPT-4 大约有 128,000 字。听起来很多,对吧?
错了。
当你要求 AI 代理构建东西时,以下是填满那个记忆的内容:
- 你的原始指令* 它正在阅读的代码
- 每一次来回对话
- 错误消息
- 它创建的文件
- 它自己的思考过程
工作 10-15 分钟后,那个记忆就满了。当它满了,AI 开始表现不稳定。它忘记了你要求什么。它重写同一个函数两次。它自相矛盾。
这被称为上下文腐烂。你的代理没有变笨——它只是再也看不到对话的开头了。
就像在打电话时,有人不断往你耳朵里塞棉花。
2、解决方案:Ralph Loop

Ralph Loop(也称为 Ralph Wiggum 技术)是一种运行 AI 代理的方法论,使其在连续、自我纠正的循环中运行,直到任务完全完成。
它在 2024-2025 年由开发者 Geoffrey Huntley 推广,现在广泛用于像 Claude Code 这样的自主编码代理。
这个名字来自Ralph Wiggum,《辛普森一家》中可爱的固执孩子。Ralph 以他的短期记忆问题和童真的困惑而闻名——他不断忘记自己在做什么,说像"我是爱达荷州!"和"我猫的呼吸闻起来像猫粮"这样的话。
但 Ralph 有一个救赎性的品质:他从不放弃。他只是不断尝试,一次又一次,每次都以新鲜的眼光。
这就是 Ralph Loop 背后的哲学:
"迭代胜过完美。"
代理不是试图一次做对所有事情,而是不断尝试直到成功,每次都从错误中学习。
核心概念是:代理尝试一项任务,检查是否成功,如果没有,则用完全知道刚才失败的知识再试一次。
就像这样:
普通代理:尝试一次,失败,放弃或问你下一步该怎么做。
Ralph Loop 代理:尝试,失败,阅读错误消息,尝试不同的方法,再次失败,也从那中学习,继续直到成功。
3、它实际上是如何工作的:技术方面

Ralph Loop 创建一个自引用的反馈循环,使代理持续工作直到任务完成。
机制如下:
3.1 完成的承诺
你给代理一个任务,信号意味着"我完成了":
修复此仓库中所有失败的测试。
当你完全完成时,输出:<promise>COMPLETE</promise>
3.2 停止 Hook
这是巧妙的部分。
系统监视代理试图退出。如果代理试图停止但没有输出 <promise>COMPLETE</promise>,系统阻止退出并将原始任务重新注入对话。
代理直到成功才能逃脱。
3.3 通过文件实现持久记忆
这是它变得聪明的地方。因为代理在真实的文件系统(通常是 git 仓库)中工作,每次新迭代都可以看到前一次迭代做了什么。
- 代理看到来自尝试 #1 的代码更改
- 它看到来自尝试 #2 的错误日志
- 它看到显示哪些方法已经失败的 git 历史
- 它从自己的错误中学习,而不需要记住它们
文件系统成为记忆。
每次循环迭代都像 Ralph 醒来头脑空白,但发现一本详细的日记,记录"昨天的 Ralph"尝试的一切。
3.4 循环继续
周期重复:
- 代理尝试修复问题
- 系统检查是否出现
<promise>COMPLETE</promise> - 如果是:任务完成,循环退出
- 如果否:循环继续,代理获得另一次机会
4、真实实现:人们实际上如何使用这个
在 2026 年,有几种运行 Ralph Loop 的方式:
4.1 Claude Code 插件(官方)
最简单的方式:
/ralph-loop "migrate all tests from Jest to Vitest" --max-iterations 20 --completion-promise "DONE"
4.2 简单 Bash 循环
DIY 方法:
while true; do
cat PROMPT.md | claude-code
done
4.3 Ralph-Claude-Code(社区工具)
生产就绪版本,具有:
- 速率限制以避免消耗你的 API 预算
- tmux 仪表板,让你看着代理工作
- 断路器以停止无限循环
- 迭代计数器和进度跟踪
5、为什么这实际上有效
代理永远不会忘记目标,因为原始提示在每次迭代中被重新注入。
代理从失败中学习,因为它可以读取错误日志并看到哪些代码更改不工作。
代理不能提前放弃,因为循环直到成功才不会让它退出。
就像区别在于:
- Ralph 曾经尝试制作一个立体模型,失败,然后走开
- Ralph 正在尝试制作一个立体模型,失败,检查他的错误,再试一次,更好地失败,再试一次,直到最终成功
6、陷阱:它不是魔法
Ralph Loop 有真正的成本和限制:
API 成本快速增加:每次迭代消耗令牌。复杂任务上的 20 次迭代循环可能花费 $5-15 的 API 费用。设置 --max-iterations 来保护你的预算。
时间投入:有些任务需要 30+ 次迭代。那可能是 2-4 小时的计算时间。这就是为什么人们对于大型任务通宵运行 Ralph Loop。
可能陷入局部最小值:有时代理连续 5 次尝试相同的破坏性方法。好的实现会检测到这一点并强制重置或尝试完全不同的策略。
仅适用于客观任务:循环需要一种方式知道它是否成功了。"所有测试通过"效果很好。"让 UI 更漂亮"不起作用——没有客观的完成信号。
上下文窗口仍然重要:如果你的任务太大而无法适应一个上下文窗口,即使完美的迭代,代理也会产生垃圾代码。将大任务分解成更小的原子故事。
7、何时使用 Ralph Loop
在以下情况下使用:
- 任务有明确的成功条件(测试通过,linter 干净,构建成功)
- 你正在进行机械重构(迁移 500 个文件,添加类型,更新依赖项)
- 你可以让它运行数小时而无需监督* 失败是便宜的,迭代是容易的
完美的用例:
- 通宵功能构建:当你睡觉时发送 6 个仓库的更改
- TDD 开发:编写代码直到你所有预定义的单元测试变绿
- 机械重构:跨 200 个测试文件将 Jest 迁移到 Vitest
- 依赖项更新:升级框架并修复所有破坏性更改
在以下情况下不要使用:
- 任务是创造性的或主观的
- 你需要在 5 分钟内得到结果
- 没有程序化的方式检查成功
- 任务需要人为判断
8、真实示例:修复破碎的测试套件
假设在重大重构后你有 47 个失败的测试。
没有 Ralph Loop(2 小时你的时间):
- 你手动阅读每个测试失败
- 修复你认为破碎的东西
- 再次运行测试
- 12 仍然失败
- 修复那些
- 出现了 3 个新失败(你破坏了某些东西)
- 重复直到完成
- 你筋疲力尽
使用 Ralph Loop(20 分钟设置,90 分钟代理时间):
- 你写道:"修复所有失败的测试。当
npm test显示 0 失败时输出 COMPLETE。" - 使用
--max-迭代次数 30启动 Ralph Loop - 去冲咖啡* 回来发现:
- 迭代 1–3:代理修复了明显的语法错误
- 迭代 4–7:代理修复了导入路径
- 迭代 8–12:代理意识到一个测试帮助器坏了,修复了它
- 迭代 13–15:代理清理了边缘情况
- 迭代 16:所有测试通过,代理输出 COMPLETE
- 循环退出
- 成本:$2.40 的 API 费用
代理尝试了 16 种不同的方法,从每次失败中学习,最终成功。你没有监督任何部分。
9、2026 年的最佳实践
人们在生产中运行 Ralph Loop 两年后,以下是实际有效的:
1. 程序化定义成功。不要使用"让它更好"。使用"npm test 返回退出码 0"或"eslint 报告 0 错误"。
2. 始终设置最大迭代次数。从 20 开始。如果它在没有成功的情况下达到限制,任务可能太大或定义不清。
3. 使用小的原子任务 "向认证系统添加 TypeScript 类型"比"向整个代码库添加 TypeScript"更好。你可以运行 10 个小的 Ralph Loop,而不是一个巨大的。
4. 用仪表板监控。像 Ralph-Claude-Code 这样的工具给你实时可见性。你可以看到它在哪个迭代以及它当前正在尝试什么。
5. 使用紧急出口。添加像"如果你尝试同样的事情 3 次,停止并寻求帮助"这样的条件以防止无限循环。
10、底线
还记得那个忘记你想搜索什么的浏览器标签页吗?
Ralph Loop 就像书签该标签页,反复刷新它,并检查你的答案是否出现了。
天才不在于让 AI 更聪明。它在于让 AI 持久。Ralph Wiggum 不聪明,但如果你给他一个清单告诉他继续尝试直到每个框都被勾选,他最终会完成。
这就是 Ralph Loop 做的。它给代理:
- "完成"的明确定义
- 允许反复失败
- 从每次失败中学习的能力
- 成功之前没有逃脱
它完美吗?不。它很贵且慢。但它是"我尝试一次然后放弃"与"我尝试了 15 次最终弄清楚"之间的区别。
大多数 AI 工具在一次尝试后放弃。Ralph Loop 不会放弃直到工作完成。
它不花哨。它只是作为系统设计的持久性。
Ralph Wiggum 最终学会了系鞋带的方式(经过 47 次尝试),你的 AI 代理最终会修复那些测试,迁移那个代码库,或构建那个功能。
你只需要让它继续尝试。
正如 Ralph 自己会说的:"我在帮忙!而这次我不会停止直到完成!"
原文链接:The Ralph Loop: Fix Your AI Agent's Forgetfulness Forever
汇智网翻译整理,版权归原作者所有