AI 怎么自己跑完一个 6 小时的任务?

Ralph 循环:让 AI 自己干活、自己查、自己改

人类坐在循环上,不坐在循环里。


什么是 Ralph 循环?

Ralph Wiggum 循环是驭缰工程最核心的实现模式。

名字来自《辛普森一家》里那个不太聪明的角色 Ralph Wiggum--讽刺的是,这个模式比它的名字机灵多了:

说白了,人只管给目标,AI 自己跑循环、自己查、自己改,达标了再叫你。

这种循环一跑经常就是 6 小时以上--通常你还在睡觉。


六条核心信条

Ralph 循环的哲学被总结为六条信条,跟驭缰工程的几个核心概念是对得上号的。

1. Fresh Context Is Reliability(新鲜上下文 = 可靠性)

每次迭代重新读取上下文,不积累错误。

传统的人类编码中,经验积累是好事。但在 AI 编码中,上下文窗口的"记忆"是负担--它会累积过时信息、错误假设、不相关的细节。

Ralph 的做法:每次循环迭代,清空上下文,重新读取仓库。 智能体像第一天上班一样重新理解代码库--但这次它已经知道了任务目标。

2. Backpressure Over Prescription(用背压,不用指令)

不规定怎么做,但门控拒绝坏结果。

你不告诉智能体"先写测试再写实现"。你设置一道门:lint 检查 + 测试运行 + 类型检查。结果不达标,门就不开。

这比写 50 行的"编码规范"有效得多。因为智能体会找到你没想到的路径--有些是好路径,有些是坏路径。背压机制只拦截坏路径。

3. The Plan Is Disposable(计划是可抛弃的)

重新生成的成本只是一次 planning loop。

在 Ralph 循环中,计划不是神圣不可侵犯的。如果智能体发现计划走不通,它直接重来。

这和传统工程完全不同--传统工程里,推翻计划意味着前功尽弃。但在 Ralph 模式下,计划的成本很低,因为编码本身是 AI 做的

4. Disk Is State, Git Is Memory(磁盘是状态,Git 是记忆)

文件是交接机制,Git 是时间机器。

Ralph 循环的核心设计:所有中间状态都写入文件。这样即使上下文窗口被清空,智能体也能从磁盘恢复状态。

Git 则记录了每一次尝试的轨迹。成功了,合并。失败了,回退。不需要人类手动保存任何东西。

5. Steer With Signals, Not Scripts(用信号引导,不用脚本)

加路标,不加方向盘。

你不说"在第 47 行加一个 if 判断"。你说"这个函数不应该返回 null"--然后让 lint 规则和测试来表达这个约束。

信号是方向性的("这个方向是对的"),脚本是操作性的("做这个动作")。智能体需要信号,不需要脚本。

6. Let Ralph Ralph(让 Ralph 做它的事)

坐在循环上,不坐在循环里。

这是最重要的信条。人类的工作不是盯着 AI 每一步操作,而是:

  • 设计好约束系统(AGENTS.md + Lint + CI)
  • 设定好目标
  • 让 Ralph 跑
  • 醒来检查结果

OpenAI 的 Codex 经常在人类睡觉的时候跑 6 个小时。早上起来,PR 已经准备好等人审查了。


Mitchell Hashimoto 的个人版 Ralph

HashiCorp 创始人 Mitchell Hashimoto 说了句更接地气的:

"每当发现 AI 犯了一个错误,你就花时间 engineering 一个解决方案,使 AI 永远不再犯那个错误。"

他的做法分两种:一是改 AGENTS.md(堵住 AI 反复犯的错),二是写工具(截图脚本、过滤测试之类),然后在 AGENTS.md 里告诉 AI 这些工具的存在。

Mitchell 的目标是:始终有一个 AI 在后台跑。目前他大约 10-20% 的工作时间有 AI 在处理任务。


Ralph 循环的三代进化

第一代:snarktank/ralph(13.6k ⭐)

最原始的实现--一个 bash 脚本,反复启动 AI,每次迭代清空上下文,直到 PRD 全部完成。

简单粗暴,但证明了核心概念。

第二代:ralph-orchestrator(2.3k ⭐)

Rust 重写的进化版:

  • Hat 角色系统 - 不同角色(架构师、开发者、审查者)有不同的权限和工具
  • 事件驱动协调 - 不再是简单的顺序循环,而是基于事件的异步流程
  • 多后端支持 - Claude / Kiro / Gemini / Codex 都能用
  • 背压门控 - 每一步都有质量门槛
  • 持久化记忆 - 跨迭代保持关键状态

第三代:bmad-ralph

结合 BMAD 方法论的进化版:

  • 并行 Claude Code worktree - 多个智能体在不同 worktree 上并行工作
  • 三层自愈 - retry(重试)→ restart(重启)→ diagnose(诊断)
  • SQLite 状态机 - 精确追踪每次迭代的状态

一个真实的 Ralph 循环长什么样

以 OpenAI 的实践为例:

bash 复制代码
08:00 PM - 人类描述任务:"给支付模块加退款功能,需要处理部分退款和超时场景"
           附带执行计划和验收标准

08:01 PM - Codex 启动,读取 AGENTS.md、架构文档、支付模块代码
08:15 PM - 生成初始实现,创建 PR
08:16 PM - 自动触发 lint + 测试 → 3 个 lint 错误
08:20 PM - 根据 lint 错误信息修复(无需人类)
08:21 PM - 重新跑 lint → 全过
08:25 PM - 自动触发 AI review agent → 2 条反馈
08:35 PM - 根据反馈修改实现
08:36 PM - 重新跑 AI review → 通过
08:40 PM - 自动合并 PR
          (如果中途出了严重问题,会在 PR 中标注,等人类早上处理)

06:00 AM - 人类起床,看到 PR 已合并
           审查变更记录,确认符合预期
           发现一个小问题 → 留评论
06:05 AM - 新一轮 Ralph 循环自动处理评论
06:15 AM - 修复 PR 合并,完成

人类参与时间:总共约 10 分钟。

AI 工作时间:约 10 小时。


什么时候该用 Ralph,什么时候不该

✅ 适合 Ralph 循环

  • 任务目标明确,有清晰的"完成"定义
  • 有自动化验证手段(测试、lint、CI)
  • 任务可以拆分成独立的小步骤
  • 需求可测试

⚠️ 不适合 Ralph 循环

  • 需求模糊,"完成"标准不清晰
  • 需要人类的创意判断(设计、产品方向)
  • 没有自动化验证手段
  • 涉及安全关键或合规关键的决策

写在最后

Ralph 循环解决的问题很具体:怎么让 AI 干 6 小时活,而你只需要花 10 分钟。

不是靠更聪明的模型,也不是靠更详细的指令。靠的是把"人盯着 AI 做事"变成"系统盯着 AI 做事"。lint、测试、CI 这些你本来就有的工具,换个用法就行。


这是驭缰工程系列的第五篇。上一篇:《AI 写的代码,你怎么知道是对的?》 下一篇:《Anthropic 的三智能体实验:用 AI 监督 AI》

觉得有用?关注这个号,下一篇讲 Anthropic 怎么用 AI 监督 AI。

相关推荐
Sinclair3 分钟前
认识安企CMS-系统和模板文件结构
后端
北邮刘老师3 分钟前
国标配套开源实现再升级!AIP智能体互联开源项目v2.1.0正式发布
人工智能·开源·大模型·智能体·智能体互联网
zhoupenghui1685 分钟前
【AI大模型应用开发】【项目实战】13.RAG智慧问答项目-(一)项目介绍&项目架构&项目环境配置
人工智能·docker·ai·milvus·rag·attu·rag智慧问答项目
神奇小汤圆15 分钟前
AI Coding 不只靠 Prompt:Agent 工程闭环如何接入 DevOps
人工智能
hongmai66688818 分钟前
ESP32-S2-MINI-2U-N4R2:一款为灵活部署而生的Wi-Fi MCU模组
人工智能·单片机·嵌入式硬件·物联网·智能家居
神奇小汤圆20 分钟前
AI Agent 替你写代码没问题,但这 3 类后端任务让它当场翻车
人工智能
lyy-独立开发者42 分钟前
主动推理-人工海马
人工智能
云栖梦泽在44 分钟前
Claude Code / Codex 使用卡顿怎么办?AI 编程 Agent 连接失败与网络排查思路
网络·人工智能·网络协议·chatgpt·性能优化
2501_943782351 小时前
【共创季稿事节】猜数字游戏:二分法思维与交互式反馈
前端·游戏·microsoft·harmonyos·鸿蒙·鸿蒙系统
凡泰AI1 小时前
从个人用AI到企业用AI,如何为企业部署一套私有化Agent智能体运行时,将AI变成企业的基础设施
人工智能·ai·架构·agent·cio