Ralph Wiggum: Claude Code 的自主循环

转载

Claude Code 的官方插件市场中有一个引人注目的条目:ralph-wiggum。它以《辛普森一家》中的角色命名,实现了自主开发循环,让 Claude 在没有人类干预的情况下工作数小时。

这个插件很简单。但其意义深远。

它的作用

Ralph Wiggum 将 Claude Code 变成一个持久循环。你给它一个提示词,它会一直工作直到完成(或直到你停止它)。

arduino 复制代码
/ralph-loop "将所有测试从 Jest 迁移到 Vitest" --max-iterations 50 --completion-promise "所有测试已完成迁移"

Claude 尝试进行迁移。当它认为完成时,插件的 Stop hook 会拦截退出,重新注入原始提示词,Claude 继续工作。每次迭代都能看到之前运行修改的文件和 git 历史。循环持续进行,直到满足完成标准或达到迭代次数上限。

Stop hook 的工作原理

我之前详细介绍了 Stop hook 机制。Ralph Wiggum 使用退出代码 2 来阻止 Claude 停止并重新注入原始提示词。

背后的理念

这个技术来自 Geoffrey Huntley,他简单地描述道:"Ralph 就是一个 Bash 循环。"

bash 复制代码
while :; do cat PROMPT.md | claude ; done

官方插件用安全控制和更好的用户体验包装了这个模式,但核心思想保持不变:让 Claude 反复失败直到成功。(软件工程的本质。)

这种技术在不确定的世界中是确定性糟糕的。可预测的失败胜过不可预测的成功。

--- Geoffrey Huntley

这颠覆了通常的 AI 编码工作流程。你不是仔细审查每一步,而是预先定义成功标准,让 agent 向这些标准迭代。失败变成数据。每次迭代根据出现的问题改进方法。

技能从"一步步指导 Claude"转变为"编写能收敛到正确解决方案的提示词"。

何时自主循环大放异彩

Ralph Wiggum 最适用于具有明确完成标准和机械执行的任务:

  • 大型重构:框架迁移、依赖升级、跨数百个文件的 API 版本升级
  • 批量操作:支持工单分类、文档生成、代码标准化
  • 测试覆盖率: "为 src/ 中所有未覆盖的函数添加测试"
  • 全新构建:通过迭代改进进行的过夜项目脚手架

共同点:明确定义的成功指标。如果你能精确描述"完成",Ralph 就可以向着它迭代。

真实成果

Huntley 用一个提示词连续运行了三个月的循环:"给我做一个像 Golang 这样的编程语言,但用 Gen Z 俚语作为关键字。"结果是 Cursed:一个功能完整的编译器,有两种执行模式,LLVM 编译为原生二进制文件,标准库和部分编辑器支持。关键字包括 slay(函数)、sus(变量)和 based(真)。

在 Y Combinator 黑客马拉松上,使用该技术的团队 overnight 交付了 6+ 个仓库,API 成本为 297 美元。这些工作如果由承包商完成将花费 5 万美元。

一位开发人员将集成测试迁移到单元测试,将测试运行时间从 4 分钟减少到 2 秒。循环在他们睡觉时处理机械转换。

这些是精挑细选的成功案例。对于每个 overnight 胜利,都有循环在未收敛的情况下耗尽了迭代次数。失败的尝试仍然花费金钱。当你能够以编程方式验证成功(测试通过、构建成功),而不是依赖 Claude 自我评估完成时,该技术效果最好。

成本意识

自主循环会消耗大量 token。在大型代码库上运行 50 次迭代的循环,根据上下文大小,很容易花费 50-100+ 美元的 API 积分。在 Claude Code 订阅上,你会更快达到使用限制。保守设置 ---max-iterations 并监控使用情况。

何时不应使用它

我之前写过关于在追求自动化之前先掌握核心循环。这个建议仍然成立。Ralph Wiggum 不会取代人类判断:它自动化机械执行。

不要将自主循环用于:

  • 模糊的需求:如果你不能精确定义"完成",循环就不会收敛
  • 架构决策:新颖的抽象需要人类推理,而不是迭代
  • 安全敏感代码:Auth、支付、数据处理需要每一步的人工审查
  • 探索:理解代码库需要人类的好奇心,而不是自动化处理

自主循环自动化机械执行。它们不自动化关于值得构建什么的决策。

agent harness 的模式也适用于此。

更广阔的背景

Ralph Wiggum 是更大转变的一种实现。正如我在《SDLC 正在崩溃》中所写,agent 现在能够维持多小时的推理。规划、构建、测试和部署之间的传统阶段边界正在溶解为连续流动。

自主循环是这种流动的基础设施。不是在人类会话之间进行交接,agent 在迭代之间维护上下文。进度持续存在于 git 历史和修改的文件中。每个"会话"从上一个会话停止的地方继续。

社区在这个模式基础上构建:

  • ralph-claude-code 添加了速率限制、tmux 仪表板和用于故障恢复的断路器
  • ralph-orchestrator 添加了 token 追踪、支出限制、git 检查点和多 AI 支持

这些实现解决了运营挑战:成本控制、状态恢复、监控。官方插件提供核心机制。生态系统构建生产包装器。

安装

bash 复制代码
# 添加官方市场
/plugin marketplace add anthropics/claude-code

# 安装插件
/plugin install ralph-wiggum@claude-code-plugins

# 重启 Claude Code

安装后可用的命令:

  • /ralph-loop "<prompt>" --max-iterations N - 启动循环
  • /ralph-loop "<prompt>" --max-iterations N --completion-promise "text" - 当 Claude 输出确切文本时停止
  • /cancel-ralph - 终止活动循环

安全第一

始终设置 ---max-iterations。---completion-promise 标志使用精确字符串匹配,这是不可靠的。迭代限制是你真正的安全网。

自己试试

选择一个具有明确成功标准的机械任务:

  1. 安装插件(30 秒)
  2. 从小范围开始:"为 src/utils/ 中所有导出的函数添加 JSDoc 注释"
  3. 设置保守的迭代次数:--max-iterations 10
  4. 完成后查看 git diff

该技术奖励提示词工程。如果第一次尝试没有收敛,改进你的成功标准并重试。

睡觉时写代码

对于需要大量判断的工作,坚持使用基础方法。对于具有明确完成标准的批量机械工作,Ralph Wiggum 让你醒来时看到可工作的代码。

相关推荐
jj008u1 天前
Garmin 中国区活动同步到国际区的一个简单实现方案
python·ai编程
北城小林1 天前
【Claude Code】1、ClaudeCode安装(Winddows系统)
ai·ai编程
jarreyer1 天前
【AI编程】claudecode插件配置记录和trae软件相关配置
前端·chrome·ai编程
CoCo的编程之路2 天前
从“手写UI”到“智能生成”的工具深度评测
人工智能·ai编程·comate·智能编程助手·文心快码baiducomate
Aliex_git2 天前
Claude Code 使用笔记(一)- 配置和基础
人工智能·笔记·学习·ai编程
. . . . .2 天前
Agent Skills、SubAgent、Hooks、Plugin一览表
ai编程
Ftsom2 天前
【3】kilo 消息交互完整示例
agent·ai编程·kilo
光影少年3 天前
flex布局和grid布局区别,实现两边固定布局中间自适应
前端·css3·web·ai编程
cjqbg3 天前
灵芽API:企业级大模型API聚合网关架构解析与成本效益对比
人工智能·架构·aigc·ai编程