Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

第二章:Ralph 是什么——永不停歇的 AI 编排引擎

一个名字背后的故事

Ralph 这个名字来自美剧《辛普森一家》里的小男孩 Ralph Wiggum。他有一句令人捧腹的名言:

"Me fail English? That's unpossible!"(我英语不及格?那不可能!)

这句话完美地诠释了 Ralph 这个工具的核心精神:就算一次失败,只要不停重试,最终一定能成功。


Ralph Loop 的起源:一个 Bash 命令引发的革命

Ralph Orchestrator 的思想根源,来自开发者 Geoffrey Huntley 提出的 "Ralph Wiggum 技巧"

这个技巧出奇地简单。Huntley 最初的实现,只是一个 Shell 脚本:

while :; do cat PROMPT.md | claude; done

就这么一个死循环——把提示词文件反复喂给 AI,直到它自己输出"完成了"为止。

Huntley 用了一句话描述这个方法的本质:

"这个方法在一个不确定的世界里,以一种确定的方式失败。"(deterministically bad in an undeterministic world

换句话说:它不保证每次都成功,但它保证失败的方式是可预测的、可调整的。给它足够多的迭代机会,它会收敛到正确答案——这就是所谓的"最终一致性"(eventual consistency)。

真实战绩

这个简单想法经过验证,已经在真实项目中取得了惊人的成果:

  • Y Combinator 黑客松:一支团队用 Ralph 循环在一夜之间交付了 6 个代码仓库
  • 合同项目:一位工程师用 $297 的 AI API 费用,完成了一份价值 $50,000 的外包合同
  • 语言开发:Geoffrey Huntley 本人用一个跑了三个月的 Ralph 循环,创造出了一门完整的编程语言(CURSED)

从 Bash 到 Ralph Orchestrator

原始的 Bash 循环虽然强大,但也有明显的局限:只有一个"全能" AI 在干所有的事,没有角色分工,没有质量检查,没有跨会话的记忆。

这正是 Ralph Orchestrator 诞生的原因——它在 Huntley 的原始思想之上,增加了:

原始 Bash 循环Ralph Orchestrator
单一 AI,全能型帽子系统:多角色分工
无质量检查背压机制:AI 自我验证
无记忆,每次从零持久记忆跨会话积累
只支持 Claude支持 8+ 种 AI 后端
纯命令行,无可视化TUI 界面 + Web 仪表盘
无人机协作Telegram 实时干预

可以说,Ralph Orchestrator 是 Ralph Loop 思想的工程化实现和功能增强版。

📖 名词解释 · CLI / 命令行 & API

**CLI(Command-Line Interface,命令行界面)**是最早的一类人机交互方式:在一个纯文字窗口(终端)里输入命令,计算机执行后返回文字结果。比鼠标点击的图形界面更高效、更容易被自动化工具(像 Ralph)调用。如果你完全没用过终端,入门最简单的方式是在 macOS 上打开 "终端" 应用、在 Windows 上装 WSL2 或打开 PowerShell,然后跟着本书敲命令——学习曲线比你想的平缓。

**API(Application Programming Interface)**是让两个软件互相"对话"的约定接口。Claude、GPT 等 AI 都是把自己的能力通过 API 开放出来,别的程序(比如 Ralph)才能调用。用 API 意味着按调用量付费——发了多少字(Token)算多少钱。

进一步学习:维基百科:命令行界面 · 维基百科:应用程序接口


Ralph 的身份:编排框架

Ralph 的全名是 Ralph Orchestrator(Ralph 编排器),版本号目前是 2.x,它是一个开源项目,用 Rust 语言编写。

但"Rust 语言"这四个字对你来说不重要——你不需要理解它的内部代码就能用好它。你只需要理解它做什么。

Ralph 做的事情

  • 接收你的任务描述
  • 调用 AI Agent(如 Claude Code、Kiro 等)来执行任务
  • 自动检查执行结果是否合格
  • 如果不合格,自动重新尝试
  • 记录过程中学到的经验
  • 任务完成后,告诉你"完工了"

Ralph 不做的事情

  • 直接写代码(那是 AI Agent 干的)
  • 存储你的代码(那是你的本地文件系统和 Git 干的)
  • 替代 AI Agent(它是在 Agent 上层协调的)

一句话总结:Ralph 是 AI Agent 的指挥官,不是 AI Agent 本身。

📖 名词解释 · Git

Git 是程序员用来管理代码版本的工具——像给文件夹开了"无限撤销"。每次改完代码执行一次 git commit,就相当于拍一张快照;以后任何时候都能翻回到某张快照。多人协作时,大家各改各的,最后用 git merge 把各自的修改并起来。

Ralph 大量依赖 Git:它把 AI 每一步的产出都在 Git 里记录,出问题时可以精确回滚;并行循环时也靠 Git Worktree(第十一章详细讲)做隔离。即使你不是程序员,只要会用 git initgit addgit commit 三个命令,也足以配合 Ralph 使用。

进一步学习:维基百科:Git · Git 官方中文教程


架构全景:三层模型

理解 Ralph 最好的方式是把它想象成三层结构:

👤 你 提需求 · 看结果 · 偶尔介入 第三层:人类 ⚙️ Ralph 编排引擎 事件循环 · 帽子协调 · 背压检查 · 记忆管理 "AI Agent 的指挥官" 第二层:编排 🤖 AI Agent Claude Code · Kiro · Gemini · Codex · Roo · ... 第一层:执行 需求 / 指引 任务 / 帽子指令 执行结果 / 事件 进度 / 结果 / 问题

你和 AI Agent 之间,多了一个 Ralph 层。这个层的核心价值是:

  • 自动化循环:不需要你每步都在场
  • 质量把关:自动拒绝不合格的结果
  • 角色分工:不同任务交给不同的 AI 角色
  • 持久记忆:跨会话保留学到的经验

支持哪些 AI 后端

Ralph 不绑定任何一个 AI 服务,它目前支持以下后端:

后端名称说明
Claude CodeAnthropic 的 Claude CLI,推荐新手使用
KiroAmazon 的 AI 编程 Agent,速度快
Gemini CLIGoogle 的 Gemini 命令行工具
CodexOpenAI 的编程 Agent
Amp专注代码的 AI Agent
Copilot CLIGitHub Copilot 命令行版
OpenCode开源 AI 编码工具
Pipi-coding-agent,轻量级本地 AI Agent
Custom自定义后端(可接入任何支持 CLI 的 AI 工具)

这意味着你可以根据任务类型、成本预算或个人偏好,选择不同的 AI 后端。同一个 Ralph 配置,换个 --backend 参数,就能切换到不同的 AI 引擎上运行。


核心创新:帽子系统

Ralph 最独特的设计是帽子系统(Hat System)

想象一个小型工作团队:

  • 有人专门负责分析需求、制定计划(规划师)
  • 有人专门负责写代码(开发者)
  • 有人专门负责挑毛病、发现问题(批评者)
  • 有人专门负责最终确认是否完工(验收者)

Ralph 里的"帽子"就对应这些不同的角色。每顶帽子是一个 AI 角色配置,包含:

  • 名字:这个角色叫什么(如"规划师 📋")
  • 触发条件:什么事件会激活这个角色
  • 工作指令:这个角色该如何工作
  • 发布事件:完成工作后通知其他角色

通过帽子系统,Ralph 可以让同一个 AI 在同一个任务里扮演多个不同角色,模拟一个小团队的协作效果。


事件驱动:AI 团队的协作机制

帽子之间如何通信?答案是事件(Events)

Ralph 有一条事件总线(可以理解为 AI 角色们的内部聊天频道)。每顶帽子完成工作后,会向总线发布一个事件,比如"任务已准备好"或"代码审查通过"。其他帽子监听这些事件,当条件满足时自动被激活。

这就像一条流水线:

设计开始 → 规划师制定计划 → 发布"任务就绪"
                              ↓
                    开发者收到"任务就绪"
                    开发者写代码 → 发布"代码就绪"
                                    ↓
                          审查者收到"代码就绪"
                          审查者检查代码 → 发布"审查通过"或"需要修改"

这个机制让复杂的工作流可以完全自动化,无需人工干预每个步骤。


持久记忆:AI 的长期学习

Ralph 解决了 AI 的记忆问题,通过两种机制:

记忆文件(memories.md):每次循环中,AI 可以把学到的规律、发现的坑、有效的解决方案,以文本形式写入这个文件。下次循环开始时,Ralph 会自动把这些记忆注入给 AI,让它"不忘初心"。

任务文件(tasks.jsonl):记录当前项目的所有子任务及其完成状态。就算你关闭电脑第二天再打开,Ralph 也知道哪些已经完成,哪些还需要继续。


自动质量保证:背压机制

Ralph 有一个特别重要的功能叫背压(Backpressure)

背压的意思是:当 AI 给出的结果不符合质量标准时,Ralph 会拒绝接受这个结果,并强制 AI 重新做,直到结果达标。

质量标准可以是:

  • 测试必须全部通过(cargo testnpm test
  • 代码格式必须符合规范(eslintcargo fmt
  • 类型检查必须通过(tscmypy

这就像一道道关卡,只有通过所有关卡的代码,才能被认为是"完成了"。


版本与状态

本书写作时,Ralph 的版本是 2.9.x。它是一个活跃开发中的开源项目,API 和配置格式可能随版本更新而变化。

注意:Ralph 目前不支持 Windows 系统,只能在 macOS 和 Linux 上运行。如果你使用 Windows,需要通过 WSL2(Windows Subsystem for Linux)来使用。


本章小结

  • Ralph 是一个 AI 编排框架,不是 AI 本身,而是 AI Agent 的指挥层
  • 它的核心创新是"帽子系统 + 事件总线 + 背压机制 + 持久记忆"
  • 支持 Claude Code、Kiro、Gemini 等多种 AI 后端
  • Ralph Wiggum 技巧的精髓:让 AI 在循环里持续工作,直到真正完成
  • 目前不支持 Windows(需要 WSL2)

下一章,我们将深入了解 Ralph 背后的六条核心哲学,这些哲学决定了 Ralph 的设计方式,也将指导你如何更好地配置和使用它。