看着像弱智,干活像战神,这个黄胖子横扫AI编程
编程大神玛特·波科克(Matt Pocock),外号TypeScript巫师,他在最新的编程课里这么形容一个工具。
“之前你无论用哪个模型编程都只能得到半成品,AI只能做一些杂活。但是这玩意可不一样,你能把整个待办列表交给它解决。”
这节课时长4个小时,售价375美元,容量是40人,而玛特卖完它只用了半个小时。
关注vibe coding的程序员们,这两天一定被一个挖着鼻孔、面容痴呆、头发稀疏,一只眼睛站岗、另一只眼睛放哨的黄色胖子刷屏了。
这就是Ralph。
简单来说,Ralph是一个Agent插件,开发者可以在输入需求后就能当个甩手掌柜。
它自己会监督自己运行,通过不断的测试代码,直至最后跑出完全符合需求的结果才会停止。
一个真实的使用场景是,在睡觉之前打开Ralph,输入明天的开发内容,到了第二天,Ralph就会完成所有代码,等待你进行最后审阅。
而你没有花费1秒钟在编程上,甚至更不用像使用之前的vibe coding工具那样,守在电脑前,一行一行地帮着听不懂话的AI改代码。
你唯一做的事情就是睡了个好觉。
自从Ralph被上传到Github以后,不到两周时间就收获了7000颗星星。这个速度非常恐怖,在Github上,即使是头部爆款项目,两周时间也很难突破7000颗星。
要知道,哪怕是DeepSeek的主仓库,在上线后同样的时间里,也才将近8000颗星星。
在线编程教育平台Treehouse的创始人瑞安·卡松(Ryan Carson)更是直言,“所有人都在讨论Ralph”(Everyone is raving about Ralph)。
01
Ralph这个名字来源于动画《辛普森一家》中的一个角色,Ralph Wiggum。他的特点就是不太聪明,但是执着不懈。
Ralph的开发者叫做杰弗里·亨特利(Geoffrey Huntley),不过在中文互联网上,大家更愿意叫他的外号“澳洲放羊大叔”。
因为他并不是真正意义上的程序员,实际上他是在澳大利亚以放牧为生。而且澳洲放羊大叔从不住房子里,只住在自己的房车里。
回归正题,Ralph并非一个全新的、独立的软件产品,而更像是一种工作哲学或一套可被执行的脚本,旨在让现有的AI编程代理(如Anthropic的Claude Code、Cursor等)在你离开电脑时也能持续工作。
用澳洲放羊大叔自己的话来说,Ralph的核心简单到可以概括为一行代码,但其威力却不容小觑,就像while true一样。
它的工作流程可以分解为几个关键步骤。
第一步是任务分解。它要求开发者将一个庞大的功能需求,拆分成一系列足够小、可独立完成的原子任务。关键在于,每个小任务都必须有明确的、可被机器自动检测的“通过”或“失败”标准。
模糊的指令,比如“让界面更好看”,在这里是行不通的。任务必须是具体的,例如“添加一个优先级列,其默认值为中等”。
任务清单准备好后,Ralph便开始循环执行。
在每一轮迭代中,它会从任务列表中选择一个尚未完成的任务。它会读取项目的当前状态,包括git的版本历史、记录工作进度的progress.txt文件,以及包含所有待办事项的prd.json产品需求文档。
然后,它会调用AI模型来编写实现该任务所需的代码。
代码编写完成后,流程自动进入测试环节。Ralph会运行预设的测试脚本来验证新代码是否正常工作,以及是否满足了任务的验收标准。
如果测试通过,它会自动将这次的代码变更提交到git版本控制系统中,并在prd.json里将该任务标记为完成。这次成功的经验,连同可能遇到的问题和解决方案,会被记录在progress.txt中,作为后续迭代的参考。
如果测试失败,它不会停下来等待用户干预,而是会将错误信息记录到errors.log文件中。在下一轮循环开始时,AI会读取这些错误日志,从中学习,并尝试用不同的方法来解决同一个问题,避免重复之前的错误。
这种工作方式解决了当前AI编程工具普遍面临的难题——上下文窗口限制。
当开发者与AI进行长时间的连续对话,想要去构建一个复杂功能时。随着代码量的增加和对话轮次的增多,AI会逐渐忘记最初的指令和约束。
它可能会开始自相矛盾,或者在修改一处代码时无意中破坏了另一处的功能。最终,开发者发现自己像在照顾一个记忆力不佳的小学生,需要不断提醒和纠正,效率大打折扣。
问题出在任务的规模上。
通常来说,一个功能包含二十个部分,AI试图将所有细节都保留在它的短期记忆里时,它往往力不从心。
Ralph的策略有点像“少食多餐”。它每次只专注于一个极小的任务,完成后就通过git提交来固化成果,然后清空自己的短期记忆(上下文),以一个全新的、干净的状态迎接下一个任务。
这意味着,理论上它可以构建无限复杂的软件,而不会被越来越长的对话历史所困扰。
它不是没有上下文,而是把记忆转化成了结构化的文件。
1. git历史成为了AI的长期记忆,每一次提交都是知识的积累。
2. progress.txt文件记录了已完成的工作和当前状态,是项目进度的流水账。
3. prd.json文件是产品需求文档,明确所有待完成的任务。
4. AGENTS.md文件是操作指南,记录构建和测试项目的具体方法。
5. errors.log用于下个循环时避免相同的错误。
02
虽然前面讲了那么多,但Ralph的核心机制可以被浓缩为一行简单的Bash脚本:
while :; do cat PROMPT.md | claude-code ; done
这行代码的本质是一个无限循环。它不断地将一个包含指令的提示文件喂给一个AI代理,让其反复迭代,直到外部条件被满足才停止。
这个看似“笨拙”的循环,恰恰是Ralph模式的创新所在。
许多AI模型在完成一轮输出后,会认为任务已经“差不多完成”并自行退出。它们可能会忽略掉测试、构建、修复报错等关键的收尾步骤。
Ralph的机制则接管了AI的退出信号。例如,在与Claude Code集成时,一个插件会拦截AI的退出指令。
它会检查工作成果是否满足预设的完成条件,在输出中是否包含一个特定的完成标记。
如果没有找到这个标记,插件就不会让AI进程停止,而是强制它进入下一轮迭代。这种机制让整个开发流程脱离了人工的“卡点”,实现了从编码到测试再到修正的完全自动化。这是它能够在开发者睡觉时也无人值守运行的底层基础。
然而,托管的关键并非简单地“让AI一直跑下去”,而是“让AI知道要跑到什么时候为止”。
如果没有一个明确的、可被机器理解的完成标准,AI自己的迭代循环就会变成无目的的资源消耗,最终产出的结果可能依然无法使用。
因此,Ralph模式强调在启动前就定义好明确、可量化、可被机器检测的完成条件。这个条件被编码在任务的验收标准中。
在每一轮循环的末尾,AI都会自行检查这些条件。如果条件未满足,它就会阻止自己退出,并触发下一轮迭代。这个过程会一直持续,直到所有任务的验收标准都被满足,最终的完成标记出现为止。
这相当于用机器替代了人工来完成“结果验收”这一环节。
这种模式也提供了两种主要的协作方式。一种是“离线Ralph”(AFK Ralph),开发者在晚上睡觉前设定好任务,然后让它通宵运行。第二天早上醒来,新的功能可能已经开发完成并等待审阅。这种方式适合那些需求明确、直接了当的任务。
另一种是“手动挡Ralph”(Hands-on Ralph),开发者一次只运行一轮循环。在每一轮结束后,开发者会审查AI的提交,并在必要时进行引导和调整。这种方式更适合那些复杂的、探索性的功能,开发者希望在过程中保持更多的控制权。
但即便是在手动模式下,由于其结构化的任务和清晰的反馈循环,它通常也比传统的Vibe Coding要高效得多。
03
除了工作模式上的创新,Ralph的另一个显著特点是其运行成本相对较低。
根据一些开发者的分享,一次包含10轮迭代的典型Ralph运行,其API调用成本大约在30美元左右。
有一位开发者使用这种模式交付、审查并测试了一个完整的应用程序,总花费不到300美元。
而在过去,他开发同等复杂度的产品,外包成本可能高达50000美元。
即使Ralph只能完成90%的工作,开发者只需花费少量时间进行最后的清理和收尾,也相当于将数天的工作压缩到了几个小时。
这实际上有些反直觉,Ralph运行多个循环,却比其他产品要便宜。
Ralph低成本的原因,与它独特的工作流程相关。
当使用其他AI模型进行长对话时,为了让模型记住半小时前讨论过的内容,每一次发送新请求时,通常需要将之前的全部聊天记录重新发送给它。
随着对话变长,每次API调用所消耗的Token数量会呈指数级增长,导致费用急剧上升。
前文提到,整个项目的“记忆”被存储在git和本地文件中,而不是昂贵的AI模型上下文里。
那么Ralph每次请求AI时,只需要提供与当前任务相关的最少信息。完成任务后,这个短暂的上下文就被抛弃。因为上下文很短,所以单次调用的成本非常低。
一些实际案例也印证了这种模式的潜力。在一个创业黑客松活动中,有团队利用Ralph在一夜之间交付了6个不同的项目原型。澳洲放羊大叔本人,更是据称在不到三个月的时间里,主要通过Ralph构建了一门完整的编程语言。
严格意义来说Ralph没有竞品,但Codeiu在2025年推出的Cascade可以在工程上实现和Ralph差不多的效果。
它和Ralph在目标上是一致的,托管开发,直至最终完成复杂编程。但是它没有Ralph那么简单直接,而是以“plan-act-verify”(规划、执行、验证)这个逻辑来运行。
从代码执行上来讲,Ralph是无限Bash循环+单次执行。在第一次运行之前,由于没有建立logs,所以它就是会出错,然后再到第二个循环,根据以前出过的错改正。
而Cascade是先去规划好整个流程,再执行,最后验证。
由于经过一开始的编排和规划,它的编程和验证过程,都比Ralph的运行时间要少。
但问题就在于,Cascade无法无限循环。所以存在一个阈值,一旦项目的复杂程度超过这个阈值,Cascade就无法实现像Ralph那样的托管。
此外,一个围绕Ralph的生态系统也正在快速形成。
Anthropic已经将Ralph作为其AI编程工具Claude Code的官方插件之一。而前端开发平台Vercel的实验室也发布了支持该模式的AI SDK版本。
这些官方和半官方的采纳,表明Ralph模式已经从一个项目,逐渐演变为一种被行业认可的、解决实际问题的有效范式。
本文来自微信公众号“字母AI”,作者:苗正,36氪经授权发布。