Ralph Loop:不知疲倦的牛马

这个古怪的名字让它更加火爆,但别被它迷惑了。Ralph Loop 是 Claude Code 缺失的关键组件之一,它正在提升 Claude Code 的性能。

Ralph Loop:不知疲倦的牛马

这个古怪的名字让它更加火爆,但别被它迷惑了。Ralph Loop 是 Claude Code 缺失的关键组件之一,它正在提升 Claude Code 的性能。

Claude Code 一直存在一个根本性的问题:它以单轮模式运行。

尽管 Claude 的推理能力非常出色,但一旦它认为输出“足够好”,就会停止运行。实际上,如果它能不断迭代自身工作,效果会更好。

Ralph Loop 解决了这个问题。

它强制 Claude Code 在一个持续循环中运行,自主迭代其工作,直到任务真正完成。

它阻止了程序过早退出或满足于“差不多就行”。

在本教程中,我将带您了解 Ralph Loop 的工作原理、安装方法以及如何有效地使用它。

我们将一起构建一些东西,以便您亲身体验它带来的变化。

1、什么是 Ralph Loop

循环名称的由来

Ralph Wiggum可以说是《辛普森一家》中最愚蠢的角色​​之一。
他不断失败,犯下愚蠢的错误,却固执地陷入一个无限循环,直到最终成功。

这种孩子般的坚持正是该插件名称的灵感来源。

有了 Ralph Loop,Claude 就不能再轻易退出了。

它必须持续运行,直到任务真正完成。

2、Ralph Loop工作原理

Ralph Loop 的核心很简单。

它本质上是一个 bash while 循环,它会接收你的提示,将其传递给 Claude,等待响应,然后再次传递相同的提示:

while :; do cat PROMPT.md | claude ; done

但他们并没有简单地将一行 bash 脚本封装成插件。

他们使用停止钩子机制将其正确地集成到了 Claude Code 中。

以下是运行 Ralph Loop 的流程:

  • 你向它提供提示和一个完成承诺(例如“DONE”或“COMPLETE”)。
  • Claude 处理任务并尝试退出。
  • 停止钩子阻止退出。
  • 相同的提示信息被反馈给 Claude。
  • Claude 查看之前的工作并进行改进。
  • 此过程重复进行,直到找到完成承诺。

3、Ralph Loop的理念

Ralph Loop 基于以下几个关键原则:

  • 迭代胜于完美——不要追求第一次就完美。让循环不断完善工作。
  • 失败即数据——每次失败都是可预测的,并且具有参考价值。它能教会系统需要修复的问题。
  • 操作员技能至关重要——成功取决于编写好的提示信息,而不仅仅是拥有一个好的模型。
  • 坚持不懈——不断尝试直到成功。循环会自动处理重试逻辑。

4、Ralph Loop的实际应用

Ralph Loop 已经在实际场景中证明了自身的价值。

在 Y Combinator 的一次黑客马拉松上,这项技术被用于一夜之间交付 6 个不同的代码库。

其中一个代码库是将browser-use的 Python 代码完全重写为 TypeScript。

更令人印象深刻的是,一个通常需要花费 5 万美元开发的项目,仅花费 297 美元的 API 开发成本就完成了开发、测试和评审。

甚至有人使用 Ralph Loop 创建了一种名为 CURSED 的全新编程语言。

它自主运行了大约 30 个小时来构建所有组件。

这些结果展示了当 Claude 不轻易放弃时,一切皆有可能。

5、安装及快速上手

在安装 Ralph Loop 之前,请确保您已安装并更新 Claude Code。

你可以使用以下命令安装 Claude Code:

npm install -g @anthropic-ai/claude-code

你还需要使用支持 /plugins 命令的版本。

2.0.76 或更高版本应该可以正常工作。

要检查您的版本,请运行:

claude --version

6、安装 Ralph 插件

Claude Code 准备就绪后,安装 Ralph 非常简单。

在终端中运行以下命令:

/plugin install ralph-wiggum@anthropics

安装完成后,运行以下命令验证是否成功:

/plugin

你应该会看到 Ralph 插件已列出。

7、可用命令

安装后,您将可以使用以下三个命令:

  • /ralph-wiggum:ralph-loop — 在当前会话中启动 Ralph 循环
  • /ralph-wiggum:cancel-ralph — 取消正在进行的 Ralph 循环
  • /ralph-wiggum:help — 获取帮助和技术说明

8、了解命令结构

基本的 Ralph Loop 命令如下所示:

/ralph-loop "<your prompt>" --completion-promise "DONE" --max-iterations 10

以下是各部分的作用:

  • "<your prompt>" — 您希望 Claude 完成的任务
  • --completion-promise — Claude 完成任务后必须输出的确切单词(例如,“DONE”、“COMPLETE”)
  • --max-iterations — 用于防止无限循环和控制成本的安全机制

--max-iterations 标志很重要。如果没有它,Claude 可能会无限循环执行一个不可能完成的任务,并耗尽你的token。

9、循环的实际工作原理

当你启动一个 Ralph 循环时,幕后会发生以下情况:

  • 它会创建一个 .claude/.ralph-loop.local.md 状态文件
  • 你开始执行任务
  • 当 Claude 尝试退出时,停止钩子会拦截它
  • 它会返回相同的提示
  • Claude 会查看文件中之前的工作
  • 这个过程会一直持续,直到检测到完成 Promise 或达到最大迭代次数

为了表明任务已完成,Claude 需要输出用 <prompse>标签包裹的 Promise:

<promise>DONE</promise>

循环就是这样知道任务真正完成的。

11、运行你的第一个 Ralph 循环

让我们从一个简单的例子开始,看看 Ralph 是如何工作的。

运行以下命令:

/ralph-wiggum:ralph-loop "Create a simple Python function that validates email
 addresses. Include edge case handling and write 3 test cases. 
Output DONE when complete." --completion-promise "DONE" --max-iterations 5

观察会发生什么:

  • Claude 开始处理任务
  • 它生成函数并进行测试
  • 它尝试退出
  • 停止钩子捕获到退出并返回提示符
  • Claude 检查其工作并进行改进
  • 此过程持续进行,直到输出 "DONE" 或达到最大迭代次数

你会注意到 Claude 的输出随着每次迭代而改进。

第一次迭代可能比较基础,但到最后一次迭代时,它会更加完善和完整。

如果需要提前停止循环,请运行:

/ralph-wiggum:cancel-ralph

12、编写有效的提示和高级用法

关于 Ralph Loop 的真相是:

模型本身并不神奇,你的提示才是关键。Ralph Loop 会放大你输入的任何内容。

模糊的提示会导致无限循环,毫无进展。

清晰、结构良好的提示会产生显著的效果。

12.1 明确的完成标准

最大的错误是对“完成”的定义含糊不清。

糟糕的提示:

Build a todo API and make it good.

Claude 不知道“完善”是什么意思。它会一直循环猜测。

好的提示:

Build a REST API for todos.

When complete:
- All CRUD endpoints working
- Input validation in place
- Tests passing with coverage above 80%
- README with API documentation
Output <promise>COMPLETE</promise> when all criteria are met.

看出区别了吗?

Claude 现在有了一份清单。它知道何时停止。

12.2 增量目标

对于复杂的任务,请将其分解为多个阶段。

错误提示:

Create a complete e-commerce platform.

这太大了。Claude 会迷失方向。

正确提示:

Build an e-commerce platform in phases:

Phase 1: User authentication with JWT and tests
Phase 2: Product catalog with list and search functionality
Phase 3: Shopping cart with add and remove features
Complete each phase before moving to the next.
Output <promise>COMPLETE</promise> when all phases are done.

每个阶段都易于管理。

Claude 可以集中精力,完成任务,然后继续前进。

12.3 自我纠错模式

您可以将错误检查直接集成到提示中。

错误提示:

Write code for feature X.

正确提示:

Implement feature X using TDD:

1. Write failing tests first
2. Implement the feature
3. Run the tests
4. If any tests fail, debug and fix
5. Refactor if needed
6. Repeat until all tests pass
Output <promise>DONE</promise> when all tests are green.

这强制 Claude 验证自身的工作。

每次迭代都会捕获并修复前一次迭代中的错误。

12.4 最大迭代次数安全机制

始终使用 --max-iterations 参数。

这可以避免两个问题:

  • 成本失控——Claude 不会在不可能完成的任务上浪费代币
  • 无限循环——如果任务不明确,循环最终会停止

对于大多数任务,10-20 次迭代是一个不错的起点。

对于复杂的项目,您可以增加到 30-50 次迭代。

/ralph-wiggum:ralph-loop "Your task" --max-iterations 20 --completion-promise "DONE"

12.5 高级模式:卡住处理

你可以告诉 Claude 在卡住时该怎么做。

Implement feature X with full test coverage.

If after 10 iterations you cannot complete the task:
- Document what's blocking progress
- List approaches you've tried
- Suggest alternative solutions
Output <promise>DONE</promise> when complete or <promise>STUCK</promise> if blocked.

这样,即使循环失败也能提供有用的信息。

13、适用于大多数任务的提示模板

这里有一个您可以灵活调整的实用模板:

[Clear task description]

Requirements:
- [Specific requirement 1]
- [Specific requirement 2]
- [Specific requirement 3]
Success criteria:
- [Measurable outcome 1]
- [Measurable outcome 2]
- [Measurable outcome 3]
Output <promise>COMPLETE</promise> when all criteria are met.

保持具体和可衡量。让 Claude 知道“完成”是什么样子。

14、何时使用 Ralph Loop

Ralph Loop并非适用于所有情况。但当它适用时,它确实能带来显著的效果。

好的使用场景:

  • 定义明确、成功标准清晰的任务——只要你能描述出“完成”是什么样子,Ralph 就能帮你达成目标。
  • 需要迭代和改进的任务——例如,通过测试、修复问题等等。内部错误,提升代码质量
  • 全新项目 — 从零开始,Claude 可以逐步构建
  • 需要自动验证的任务 — 任何可以通过测试、代码检查或构建来确认成功的任务
  • 通宵开发 — 睡前设置运行,醒来即可看到完成的工作

何时不适合使用 Ralph Loop

有些任务并不适合循环模型。

不适用于:

  • 需要人工判断的任务 — 设计决策、用户体验选择、主观质量
  • 一次性操作 — 无需迭代的快速修复
  • 不明确的成功标准 — 如果您无法定义“完成”,Ralph 就无法找到它
  • 生产环境调试 — 请改用定向调试
  • 需要外部审批的任务 — 任何需要人工参与决策的任务

15、成本考量

Ralph Loop 既可以省钱,也可以烧钱。

区别在于您如何使用它。

为了控制成本:

  • 始终使用 --max-iterations 作为安全保障
  • 从较小的迭代次数限制开始,并根据需要增加
  • 编写清晰的提示,避免 Claude 浪费时间进行猜测
  • 对简单的任务使用成本更低的模型

还记得那个只花了 297 美元就完成了价值 5 万美元的项目吗?这得益于清晰的提示和明确的任务定义。在复杂任务中使用模糊的提示会迅速耗尽你的预算。

16、结束语

Ralph Loop 解决了 AI 编码工具的一个实际问题。

单次执行的方式无法充分发挥性能。如果允许 Claude 迭代执行自己的工作,它就能做得更好。

使用 Ralph Loop,您可以获得:

  • 持续执行,直到任务真正完成
  • 通过迭代进行自我改进
  • 能够放手让 Claude 自主工作

抛开这个略显怪异的、受《辛普森一家》启发的名字不谈,对于任何认真对待 AI 编码的人来说,这款插件都是一款实用的工具。


原文链接:Ralph Wiggum: Claude Code New Way to Run Autonomously (For Hours Without Drama)

汇智网翻译整理,转载请标明出处