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

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

用一个 bash 死循环把同一份 prompt 喂给 Claude 直到代码写完。$297 替代 $50k 合同。Anthropic 已收编为官方插件 ralph-loop。精读 + 译者点评。 · by fancyoung
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 项目反证的迷思

🔗 延伸阅读

🔗 调研来源(可校验)