无尘阁日记

无尘阁日记

Ralph Loop:从提示词到反馈闭环,AI Agent 真正开始干活的方法
2026-04-29

拉尔夫·维古姆循环:AI时代“笨办法”的高级用法

你记的这个词,大概率不是“拉洛夫滚动思维”,而是 Ralph Wiggum Loop,中文可以叫:

拉尔夫·维古姆循环
或者更口语一点:拉尔夫式滚动迭代法

它的名字来自《辛普森一家》里的角色 Ralph Wiggum / 拉尔夫·维古姆。拉尔夫是警长 Wiggum 的儿子,也是斯普林菲尔德小学的学生,形象上是那种天真、迟钝、经常说出离谱金句的小孩。(simpsons.fandom.com)

但在 AI 编程圈里,这个名字被借来形容一种很有意思的方法:不追求一次性聪明,而是让 AI 在循环中不断试错、运行、检查、修复,直到任务完成。


一句话解释

拉尔夫循环 = 给 AI 一个任务,让它反复执行、测试、失败、修正、再执行,靠持续迭代把事情做出来。

它的核心不是“AI 一次想明白”,而是:

先让它动起来,再让错误反馈推动它变好。

Anthropic 的 Claude Code 插件文档里对 Ralph 的定义很直接:它是一种基于“连续 AI agent 循环”的开发方法,本质上就是一个不断把提示词文件喂给 AI agent 的 while true 循环,让它持续改进直到完成。(GitHub)


它为什么叫 Ralph?

这个命名有点黑色幽默。

Ralph Wiggum 在《辛普森一家》里不是“聪明天才型”角色,而是“傻乎乎、可爱、经常搞错,但一直往前走”的角色。Ralph Loop 的创造者 Geoffrey Huntley 在访谈里说,这个方法“有点笨、有点可爱、永不放弃”,所以叫 Ralph。(线性基础)

这就很妙:
它不是把 AI 神化成“天才程序员”,而是承认 AI 会犯错、会幻觉、会乱改代码,然后用工程化循环把它关进一个“不断试错的笼子”里。


Ralph Loop 的基本机制

它大概是这样的:

while true; do
  cat PROMPT.md | agent
done

当然,真实工程里不会这么裸奔,通常会加上测试、日志、Git 提交、错误退出条件、人工审批、安全沙箱等机制。

它的完整流程可以理解为:

1. 给 AI 一个明确目标

比如:

“修复这个截图日期识别技能,让它能找到卡片左上角日期,并把识别结果写入日志。”

2. AI 修改代码

它会去读文件、改逻辑、补日志、调整识别区域。

3. 自动运行测试或脚本

比如执行:

python run_skill.py --input test.png

4. 读取错误和日志

如果失败,它不是停下来等你,而是把错误信息重新喂给自己。

5. 再改,再跑,再看结果

直到满足验收条件,比如:

  • 能识别日期;

  • 日志里写入日期;

  • 不破坏原有稳定功能;

  • 测试截图标记位置正确。

这就是“滚动”的意思:不是一次性交付,而是循环推进。


它和普通提示词有什么区别?

普通提示词像是:

“请你帮我写一个功能。”

Ralph Loop 像是:

“你自己读需求、改代码、运行、看错误、再改,直到测试通过。”

两者差别非常大。

对比项普通 AI 对话Ralph Loop
工作方式一问一答连续执行
错误处理人发现错误后再追问AI 自动读取错误并修复
目标生成答案完成任务
适合场景写文案、解释概念、小代码复杂代码修复、自动化技能升级、测试驱动开发
风险输出可能不准可能越改越乱,必须加边界

VentureBeat 对它的总结也很到位:Ralph 代表一种新的自主 AI 编码方式,它依赖的不只是模型“聪明”,还依赖暴力尝试、失败和重复。(Venturebeat)


这套思维真正高级在哪里?

它高级的地方不是“让 AI 无限循环”。这太粗糙了。

真正高级的是:把人的监督,从“盯着每一步”变成“设计反馈系统”。

也就是说,以前你是这样用 AI:

AI 写一点 → 你看一点 → 你指出问题 → AI 再改一点。

Ralph 思路是:

你定义目标、边界、验收标准、测试方法,然后让 AI 自己在这个范围里循环。

这其实从“提示词工程”升级到了“反馈系统工程”。


用人话讲,它像什么?

它像一个很笨但很勤快的实习生。

你不能只说:

“把系统做好。”

你得说:

“只改这三个文件;每次改完运行这个测试;如果报错,先读日志;不能动其他模块;成功标准是日志里出现 date_text,并且截图上红框位置准确。”

这样一来,哪怕它第一版很蠢,它也能靠反馈慢慢爬上来。

这就是 Ralph 的灵魂:

不怕第一步笨,怕没有反馈闭环。


它对你做 OpenClaw / Skills 很有启发

你最近一直在做“桌面微信自动搜索、截图、识别日期、标记公众号卡片”等技能,这个场景特别适合 Ralph 思维。

因为这类任务最大的问题不是“写一段代码”,而是:

  • 截图环境会变;

  • OCR 会误识别;

  • 坐标会偏;

  • 页面加载有延迟;

  • 鼠标可能点不中;

  • 日志不够清楚;

  • 修一个地方容易破坏另一个稳定功能。

所以你要的不是一次性提示词,而是一套循环:

读取需求
→ 运行当前技能
→ 保存截图和日志
→ 判断失败点
→ 只修改相关模块
→ 再运行
→ 对比截图标记
→ 写入结果日志
→ 达到验收条件后停止

你之前说“其他不要动”“基于版本15来做”“只在搜索结果页标记账号两个字”,这些其实就是 Ralph Loop 里非常关键的边界条件。

没有边界,AI 会乱改。
有边界,循环才会变成工程能力。


Ralph Loop 的关键原则

1. 不追求一次完美

它承认 AI 第一版经常不靠谱。
但第一版不靠谱没关系,只要能通过日志和测试继续改。

2. 错误就是燃料

报错不是失败,而是下一轮输入。

比如:

date_ocr_error: No module named 'paddleocr'

这不是终点,而是告诉 AI:

  • install.ps1 没装好;

  • 依赖没写进去;

  • 当前环境 Python 包缺失;

  • 需要增加安装检测和错误提示。

3. 验收标准必须具体

不能说:

“把它优化好。”

要说:

“进入搜索结果页后,找到‘账号’两个字,用红框框起来;前面的点击搜索流程不能改变;输出 debug 截图;日志里记录 bbox。”

这就是可循环、可检查、可修复的任务。

4. 必须有安全边界

Ralph Loop 如果没有边界,很容易变成“AI 自动拆家”。

Geoffrey Huntley 在访谈里也强调,自动循环带来的问题不是简单写代码,而是工程问题:你要用测试、权限、审计日志、预提交检查等方式,把失败场景工程化地挡住。(线性基础)


它适合做什么?

特别适合

  • 自动修复代码 bug;

  • GUI Agent 技能调试;

  • OCR 识别反复优化;

  • 爬虫/自动化流程稳定性提升;

  • 测试驱动开发;

  • 批量重构;

  • 根据日志修复脚本;

  • 搭建小工具、小插件、小型原型。

不太适合

  • 没有验收标准的创意任务;

  • 高风险生产环境直接执行;

  • 涉及数据库删除、支付、权限、隐私数据的裸奔操作;

  • 业务规则还没想清楚的大系统设计。


最大风险是什么?

1. 它会“很勤奋地犯错”

AI 不会因为进入循环就变聪明。
它只是会更持久。

如果目标错了,它会朝错误方向努力很久。

2. 它可能改坏稳定部分

这就是你经常遇到的:

“你把我版本16改坏了。”

所以 Ralph Loop 必须加一句铁律:

除明确要求修改的模块外,不得改动其他逻辑。
每次改动前列出将修改的文件。
每次改动后跑回归测试。

3. 它会消耗大量 token / API 成本

循环不是免费魔法。
它本质上是用算力换人工盯梢。

4. 它会制造“看起来完成了”的假象

所以必须有可验证输出:

  • 截图;

  • 日志;

  • 测试结果;

  • Git diff;

  • 成功/失败判定;

  • 回滚点。