0
· AGENTIC-CODING-CLASSICS · 2026.05.06 · 12 MIN ·

Geoffrey Huntley《Ralph Wiggum 作为软件工程师》:100 行 bash 的反叛宣言

用一个 bash 死循环把同一份 prompt 喂给 Claude 直到代码写完。$297 替代 $50k 合同。Anthropic 已收编为官方插件 ralph-loop。精读 + 译者点评。 · by 思扬
AI · HERO seed:3620260506 用一个 bash 死循环把同一份 prompt 喂给 Claude 直到代码写完。$297 替代 $50k 合同。Anthropic 已收编为官方插件 ralph-loop。精读 + 译者点评。
FIG.00 — cover · ai-generated · placeholder

The Ralph Process

原文:ghuntley.com/ralph/ 作者:Geoffrey Huntley(独立工程师 / 顾问 / 黑魔法布道师) 发布:2025 年中,2025 年末病毒级传播

🔥 影响力卡片

  • 2025 年末成为 AI 编码圈最热概念,VentureBeat 专题报道
  • Anthropic 工程师 Daisy Hollman 和 Boris Cherny(Claude Code 创建者 / Head of Claude Code)共同把它形式化为官方插件 ralph-loop@anthropic(Daisy Hollman 是该插件主要作者)
  • 灵感扩散到 Cursor、各类 IDE 工作流
  • YC 黑客松团队用 Ralph 一晚上发了 6 个 repo,$50k 合同实际成本 $297
  • Dev Interrupted、HumanLayer 等多个播客做专访
  • 评价严重分裂:original “naive persistence” 派 vs 官方”消毒版”派
  • Geoffrey 本人正在用 Ralph 构建一门全新的编程语言 CURSED(自托管 + 标准库)—— 它本身是 Ralph 最强的实证

🎯 为什么必读

这是上面三篇的”反面教材”,但是指向真理的反面教材。

如果说前三篇代表主流工程派,Ralph 代表激进派/黑魔法派。它的特别之处:

  1. 它彻底反工程纪律:就一个 bash while :; do cat PROMPT.md | claude-code ; done,Anthropic 那 5 种 pattern 它一个都不要
  2. 但它有效 —— 还是惊人的有效。$297 替代 $50k 合同不是个例
  3. 它揭示了一个被工程派回避的真相:LLM 在某些任务上,粗暴重复比精巧设计更优

读完你会同时获得:对 Ralph 的敬畏 + 对它适用边界的清晰认识。

一句话总结

不要规划。不要架构。把同一份 prompt 喂给 Claude,让它跑。一直跑。它会在第 N 轮帮你写出来。

💎 金句墙

★ “Ralph is monolithic. Ralph performs one task per loop.” “Ralph 是单体的。Ralph 每个循环只做一件事。”

★ “This technique is deterministically bad in a non-deterministic world.” “在一个非确定性的世界里,这个技术是确定性地糟糕。” —— Geoffrey 的反讽:正因为它”确定性糟糕”,你才能调它,因为糟糕之处可预测。

★ “DO NOT IMPLEMENT PLACEHOLDER OR SIMPLE IMPLEMENTATIONS… DO IT OR I WILL YELL AT YOU.” “不要写占位符或简单实现 …… 给我做完否则我对你吼。” —— 真实的 prompt 片段。看到 LLM 偷懒的人都懂。

★ “Engineers are still required. The hype that fully autonomous tools work without an engineer’s guidance is bullshit.” “工程师依然是必需的。‘完全自动化无需工程师’的宣传是胡扯。” —— Ralph 推崇者必读的反幻觉声明。

★ 关于代码可维护性的灵魂质问: “By whom? Why are we framing this around humans?” “(给谁维护?)为啥要以人为框架想这个问题? 我们已经在 post-AGI 阶段了 —— 跑更多循环,而不是雇更多人维护。” —— 这一句让一半工程师怒火冲天,另一半工程师醍醐灌顶。

📋 核心精读

1. Ralph 是什么

最纯粹形式:

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

就这样。一个无限循环,每轮把同一个 prompt 喂给 Claude Code。Claude 看见自己上一轮改的文件、git history、测试结果,继续推进。

适合:绿地项目(greenfield)。 不适合:已有大型 codebase。Geoffrey 自己说:“我绝对不会在已有 codebase 用 Ralph。“

2. 三个关键洞察(Geoffrey 自己反复强调)

洞察 1 —— Context window 不是越满越好

  • 可用容量 ~170k tokens
  • 质量崩塌点 147k-152k(实测)
  • 所以要主动让昂贵操作走 subagent,不要塞进主 context
  • 搜索/写入:可同时用 500 个 subagent
  • 编译/测试:只能用 1 个(防止反向压力 backpressure 失效)

洞察 2 —— 两阶段循环

  • Generation:LLM 生成代码 —— 这一步现在很便宜
  • Backpressure:工程把关 —— 这才是质量的真正源泉
  • 反压怎么做?强类型(Rust)、静态分析(Dialyzer/Pyrefly)、测试、安全扫描

洞察 3 —— 不要追求”完美的 prompt”

“There is no such thing as a perfect prompt.”

  • prompt 是调出来的,像调吉他
  • 看到 LLM 跑偏 → 不是改具体任务,是改你的 stdlib(标准库规范)
  • stdlib + spec 才是真正控制 LLM 的杠杆

3. CURSED 项目 —— Ralph 的活体实证

Geoffrey 正在用 Ralph 构建一门完全不存在于训练数据中的新编程语言 CURSED:

  • 自托管编译器(用 CURSED 自己写自己)
  • 完整标准库(用 CURSED 自己写,而不是 Rust)
  • LLVM 后端
  • 仍在路上,但已经能跑出工作示例

为什么这是关键反证:很多人质疑”LLM 只能做训练数据见过的东西”。CURSED 的存在直接打脸:只要 spec 足够清晰、循环足够多,LLM 可以做训练数据外的工作。

4. 关键设计决策(给你抄的)

  • 每轮做且只做一件事 —— 不要 multi-task
  • AGENT.md 文件让 Claude 自学项目(发现新事实就追加)
  • fix_plan.md 文件做任务清单(LLM 自己维护 checkbox)
  • 每轮重新载入 stdlib + spec —— 不依赖 session 记忆
  • 9 个 9 的 emphasis 修辞(“DO NOT … OR I WILL YELL”):看起来荒谬但实测有效

5. 翻车与教训

Geoffrey 自己说过的真实失败:

  • 编译错误把 context 撑爆,自己最后切到 Gemini 写一份 fix plan
  • 醒来发现 codebase 不能编译 —— git reset --hard 重来
  • “Ralph 90% 完成度” 意味着最后 10% 仍要人工

🟢 译者点评:Geoffrey 没有撒谎。Ralph 的 ROI 是真的,但”无人值守 24/7 自动写软件”是吹的。Ralph 把工程师从”写代码”解放为”调 prompt + 调 stdlib + review”,但工程师没消失。

🟢 译者总评

这篇文章和它代表的 Ralph 现象,是 2025 年最值得思考的”工程哲学事件”。

如果你之前读了 Anthropic 和 12-Factor,你会觉得 Ralph 几乎每条原则都违反:

  • 反 Anthropic”用最简单方案” → Ralph 就是用最简单的(bash 循环)
  • 反 12-Factor “own your control flow” → Ralph 把 control flow 简化为 while true
  • 反”小而专注的 agent” → Ralph 就一个 monolithic loop

但它有效。这怎么解释?

我的理解:这两条路线不矛盾,而是适用于不同任务结构。

  • 强结构任务(企业系统、生产服务、复杂交互):Anthropic / 12-Factor 派的工程纪律是必需的
  • 弱结构、有清晰自动验证的生成任务(独立工具、解释器、单一功能 utility):Ralph 派的暴力循环 ROI 更高

Geoffrey 自己也说只在 greenfield 用,不在已有 codebase 用 —— 这就是他自己画的边界。

如果你只从这篇带走 3 件东西:

  1. bash 循环 + 同一个 prompt 是一种合法的 agent 架构(别看不起它)
  2. stdlib/spec 文件是控制 LLM 的真正杠杆,不是 prompt 字句
  3. “LLM 只能做训练数据见过的事” 是已经被 CURSED 项目反证的迷思

🔗 延伸阅读

🔗 调研来源(可校验)