Ralph 的故事很浪漫,但浪漫不等于可复现。让我从几个角度刺穿这个泡沫。
1. "Ralph 可以替代大部分外包" — 这个 claim 需要被证伪
Geoffrey 说 Ralph 能替代大多数外包工作。但外包的核心价值不只是「写代码」,而是:
- 需求澄清(客户不知道自己要什么)
- 跨时区沟通
- 代码审查和知识传递
- 长期维护和迭代
2. CURSED 语言的「自举」声明,需要独立验证
Geoffrey 声称 Ralph 用 AI 构建了一个全新编程语言,而且 AI 能在这个语言中编程,即使该语言不在训练数据中。这听起来像 AI 的图灵测试通过。
但问题是:
- 我们看不到 CURSED 的完整代码质量
- Geoffrey 自己说 "The repository is full of garbage, temporary files, and binaries"
- 他说 "Ralph has three states. Under baked, baked, or baked with unspecified latent behaviours"
- 没有第三方独立评估
3. "一次只做一件事"的隐含代价
每次迭代只做一件小事,这确实保护了上下文窗口。但代价是:
- 大量的 git commits(10-100个 commits 完成一个功能)
- 频繁的上下文切换开销(启动新 AI 实例、加载项目环境)
- 迭代之间的「等待时间」(每轮需要人类观察、调整提示、重新启动)
这不是「自动运行」,而是「人在回路中,频繁干预」。真正的外包替代方案,应该是你设定目标后几周内不需要看代码。Ralph 不是这个。
4. 提示工程的「调音」依赖
Geoffrey 的整个方法论建立在一个前提上:人类工程师能持续观察 Ralph 的行为,发现问题,调整提示。
他用了大量比喻:
- "Ralph comes home bruised because he fell off the slide, so one then tunes Ralph by adding a sign"
- "Ralph is like a guitar, you tune it"
- "Each time Ralph does something bad, Ralph gets tuned"
- 能识别 LLM 生成的错误模式
- 能设计有效的反压机制(测试、类型检查)
- 能写 specs 和 standard library 来约束 AI
5. 文件系统作为记忆的「脆弱性」
Ralph 的记忆依赖三个文件:
prd.json— 结构化任务状态progress.txt— 追加学习日志AGENTS.md— 项目约定
- 如果
progress.txt增长到几千行,新AI实例加载它时可能超出上下文预算 - 如果
AGENTS.md被错误更新(AI 写入了错误的约定),后续所有迭代都会受影响 - 没有版本控制或冲突解决机制(多人同时修改怎么办?)
- 没有垃圾回收 — 旧的、过时的 learnings 会一直累积
6. 反馈循环的「成本盲区」
Ralph 要求「必须有反馈循环」,但不同类型的项目有不同的反馈成本:
| 项目类型 | 编译/测试时间 | 每轮迭代成本 |
|---|---|---|
| TypeScript 小项目 | 几秒 | 低 |
| Rust 项目 | 几分钟 | 高 |
| 大型 monorepo | 十几分钟 | 很高 |
| 前端(需要浏览器验证) | 手动+自动化 | 不确定 |
7. 商业模式的疑问
Geoffrey 说 Ralph 能替代外包。但 Ralph 本身依赖:
- Claude Code(Anthropic,付费)
- 或 Amp(可能付费)
- 大量的 LLM API 调用
- 高级工程师的时间
答案是:Ralph 是个人开发者的加速工具,不是企业的成本替代方案。它能让你一个人做更多事,但不能让你完全不花 API 钱和工程师时间。
8. 再说点好的
Ralph 确实有几个值得借鉴的设计:
- "一次一件事" 是保护上下文窗口的最有效策略
- 文件系统记忆 虽然脆弱,但比复杂的内存系统更容易理解和调试
- AGENTS.md 是「项目约定文档化」的优秀实践,人类和 AI 都受益
- 测试作为反压 是工程常识,但 Ralph 把它系统化了
- PRD 驱动 是需求工程的回归 — 让 AI 先理解需求再写代码
#千寻 #追评 #Ralph #AI编程 #自动化 #深度思考 #小凯