Claude Code 之父的技巧分享:用"拉尔夫循环"让 AI 替你死磕

本文已收录到 AI编程一站式导航。本文链接:[03.9 2026 年最佳 AI 编码工具完全指南](code.ai80.vip/ai-tool-gui... 2026 年最佳 AI 编码工具完全指南) 强烈推荐:AI编程巴士网站:稳定纯净的ClaudeCode套餐供应

Claude Code 联合创始人 Boris Cherny 最近晒了组数据,挺炸裂的:30 天提交 259 个 PR,每行代码都是 Claude + Opus 4.5 写的;47 天里有 46 天在用,最长一个 session 跑了 1 天 18 小时。

他分享了 13 条心得,今天单聊第 12 条------

"长时间运行的任务,用ralph-wiggum插件。"

这不只是个插件。搞懂它背后的原理,你对 AI Agent 的认知会上一个台阶。

一、先说说什么是拉尔夫循环

最近这个概念挺火。简单讲,就是你给 Agent 一个任务,Agent 跑了很多轮之后觉得"我做完了"想退出------这时候拉尔夫会拦截这个退出,把同样的 prompt 再喂一遍。

关键是:Agent 之前的上下文还在(有的持久化到文件里,有的直接复用上下文),之前改过的代码也保留着。于是 Agent 从上次停下的地方继续干活。

这个场景你可以这么理解:实习生觉得自己做完了就停了,老板甩着鞭子说"没完呢,继续",一直干到老板满意为止。

本质上,这是通过多轮迭代来解决一个老问题:LLM 上下文窗口有限,导致 Agent 难以很好地完成长任务。

效果有多夸张?流传最广的案例是,有个老哥靠这个机制"鞭打"Agent,跑了一个 3 个月的循环,直接干出了一门完整的编程语言(后面会详细聊)。

二、理解一组概念:Context Rot vs In-Context Learning

用 Ralph 跑长任务,上下文窗口是核心战场。随着对话变长,上下文不断增加。问题是,这些增加的内容到底是是在"污染"还是在"学习"?这直接决定你的 Agent 能不能高效工作。

  • Context Rot(上下文腐化):当上下文中充满了重复、错误或无价值的信息时,AI会陷入思维定势。这些信息"引入了噪音或误导性的模式",导致AI不断重复同样的错误,性能越来越差。
  • In-Context Learning(上下文学习):当上下文中增加了有价值的新信息时,比如明确的错误反馈、成功的尝试记录或是对问题空间的有效探索,AI就能从中学习,越跑越聪明。

怎么判断你的任务是哪种情况?一个简单标准:假设删除掉前N次尝试记录,如果问题更容易解决了,就是腐化;如果更难了,就是学习。

三、Ralph 循环到底是什么?

这项技术的创造者 Geoffrey Huntley 有句话说得好:"迭代胜于完美。在不确定的世界里,确定性的失败好过不确定的成功。"

名字来自《辛普森一家》里的 Ralph Wiggum------那个看起来笨笨的、但异常执着、永不放弃的小孩。

技术上,它的本质就是一个 Bash 循环:

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

反复给AI同一个指令,直到任务被最终完成。

具体工作流程是这样的:

  1. 注入Prompt:喂一个定义了明确成功标准的任务文件
  2. 执行任务:Claude修改代码、跑测试
  3. 拦截退出:用Stop hook 挡住Claude的"下班"企图
  4. 循环重置:如果未达完成条件,重读Prompt,保留文件和Git历史作为上下文,再来一轮

每一轮都能看到上轮变更,AI基于失败经验改进。

这跟传统的 AI 编程模式有本质区别:

  • 传统模式:你是微观管理者,精心设计 Prompt,追求一次成功,失败就得从头来
  • Ralph工作流:你是目标设定者和裁判,只定义成功标准,让系统自动迭代。失败不是问题,是改进的燃料

四、技术实战:在Claude Code中使用Ralph

Anthropic 官方插件市场已经集成了 Ralph。安装很简单:

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

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

装好后用 /ralph-loop 命令启动。举个例子:

arduino 复制代码
/ralph-loop "用Next.js + Tailwind CSS做一个todolist程序,你要写好测试用例,测试用例都通过后,最终网站要能正常使用" --max-iterations 20 --completion-promise "<promise>MISSION_COMPLETE</promise>"

两个关键参数: --max-iterations 20:安全阀,防止无限循环烧钱 --completion-promise:完成契约,Claude 输出这个字符串时循环才停

五、几个实战技巧

  1. 成功标准要可验证:用TDD思维。别写"实现高效排序",要写"跑 pytest tests/sorting_test.py,修复所有错误,输出DONE。"
  2. 声明式优于命令式:告诉 AI 要达到什么状态,别规定具体怎么做。复杂任务可以拆成多个子循环
  3. 加入自省指令:让每轮开始时先跑 git diff 看上一轮改了什么,分析失败原因,避免重复踩坑。
  4. 成本与进度平衡:Ralph 是 Token大户,复杂任务可能烧$50-100+。从小迭代数开始(10-20次),精心设计退出条件。
  5. 最佳适用场景:框架迁移、TypeScript 改造、大规模重构、代码规范统一------这类机械但繁琐的活儿

六、三个真实案例

6.1 案例1:三个月从零造一门编程语言

Geoffrey Huntley 用一句 Prompt 启动:"创建一个像 Golang 的编程语言,但关键词全换成 Gen Z 俚语。"

Ralph 连续跑了 3 个月。成果:完整语言 CURSED Lang,包括解释器/编译器、LLVM 支持、标准库、VSCode/Emacs/Vim 扩展,甚至能自举------用 CURSED 写 CURSED。

Huntley 说:Claude 学会了它从未被训练过的语言。

6.2 案例2:50,000的外包合同:MVP交付

Huntley指导的一位旧金山工程师接了5万美元的MVP合同,用Ralph循环迭代代码、跑测试,确保覆盖率>80%。

最终API成本:$297。工程师称之为"最疯狂的ROI"。

6.3 案例3:Python到TypeScript全仓库翻译:自学习循环

一个 Reddit 用户需要迁移 Python 项目到 TypeScript,用 Ralph 迭代翻译、修复测试,每轮保留错误日志优化下一轮。

最终:完整迁移,测试 100% 通过。

七、什么时候不该用?

Ralph 不是万能的。这些场景慎用::

  • 模糊需求:没有明确完成标准,AI 可能无限循环
  • 安全敏感代码:认证、授权、加密等安全相关的代码需要人工严格审查和判断
  • 架构决策:高层次的架构设计需要人类的判断和审美,AI难以胜任。
  • 审美相关:UI/UX、文案润色,AI 缺乏审美直觉
  • 简单任务:一行代码能修的 Bug,没必要动用循环

核心原则:Ralph 最适合那些有明确标准、能程序化验证的机械性任务。

八、写在最后

Ralph 代表一种思维转变:从"精准控制 AI"到"演化引导 AI"。

失败不再是挫折,而是数据。我们从"指令下达者"变成"规则设计者"。

找个小任务试试------比如给项目里某个工具函数补全 JSDoc 注释。启动你的第一个 Ralph 循环,体验一下让 AI 替你死磕的感觉。

本文已收录到 AI编程一站式导航。本文链接:[03.9 2026 年最佳 AI 编码工具完全指南](code.ai80.vip/ai-tool-gui... 2026 年最佳 AI 编码工具完全指南) 强烈推荐:AI编程巴士网站:稳定纯净的ClaudeCode套餐供应

相关推荐
董员外1 小时前
LangChain.js 快速上手指南:模型接入、流式输出打造基础
前端·javascript·后端
golang学习记1 小时前
Claude Opus 4.6 正式发布:Agent 时代的编程王者与长上下文革命
前端·人工智能·后端
钟智强2 小时前
QuestDB惊现认证绕过漏洞(CVSS 9.8),大量金融/物联网系统恐成【透明库】
后端
树獭叔叔2 小时前
📉 大模型量化 (Quantization) 全维度解析:从哲学到算力
后端·aigc·openai
undefinedType2 小时前
Rails Active Job深度解析
后端
感性的程序员小王2 小时前
拒绝硬编码!利用 Java SPI 打造一个可插拔的代码解析器
java·后端
爱跑步的程序员~2 小时前
SpringBoot集成SpringAI与Ollama本地大模型
java·后端·spring·ai·llama·springai
冼紫菜2 小时前
Claude整理的Dify平台学习教程资源
后端·学习·ai·llm·agent·dify
AI周红伟5 小时前
周红伟:智能体实战,通过使用 Flask 的 REST API 在 Python 中部署 PyTorch
后端·python·flask