核心机制
Ralph Loops 是 Geoffrey Huntley 提出的"Ralph Wiggum"自主开发技术的实现框架,由 Clayton Farr 系统化整理。核心哲学是"人类角色从'告诉代理做什么'转变为'工程化条件,让好结果通过迭代自然涌现"。
三阶段工作流
| 阶段 | 目标 | 输出 |
|------|------|------|
| **Phase 1: 需求访谈** | 与人工讨论JTBD(任务驱动成果),拆解为Topics | `specs/*.md` |
| **Phase 2: 规划** | 对比spec与现有代码的gap分析,生成任务列表 | `IMPLEMENTATION_PLAN.md` |
| **Phase 3: 构建** | 单次迭代完成一个任务,验证后提交,重置上下文 | 可运行的代码 |
关键设计原则
1. 上下文稀缺 — 每轮迭代仅~176K可用token,保持精简
2. 计划可丢弃 — 漂移的计划重新生成比修复更便宜
3. 背压优于指令 — 用测试/类型检查等自动拒绝错误输出
显著优点
- 上下文隔离:每次迭代启动新Claude会话,错误不累积,可用token全部分配给当前任务
- 自主运行:启动后可异步执行,人类可继续对话,通过Dashboard实时监控
- 验证闭环:内置downstream gates(测试/lint)、upstream steering(代码规范)、LLM-as-judge三层背压
- 成本可控:简单功能$1-2,复杂功能$3-8,完整项目$15-50+
- 真实战果:YC黑客夜生成6个仓库,$5万合同以$297 API成本完成
潜在局限
- 需Claude Code 2.1.25:2.1.29有严重bug导致孤儿子代理99% CPU
- 需`--dangerously-skip-permissions`:绕过权限系统,必须在隔离环境运行
- 首次配置较重:需自定义PROMPT_plan.md、PROMPT_build.md、AGENTS.md三个模板文件
- 无Git则功能受限:依赖git commit作为检查点,无版本控制需额外配置
适合人群
- 有明确需求但不愿逐行编码的开发者
- 需要快速原型验证的初创团队
- 熟悉Node.js/npm生态的工程师(当前实现为JS)
- 能接受$10-50 API成本换取数小时开发时间的场景
常规风险
| 风险 | 缓解措施 |
|------|----------|
| 权限绕过被滥用 | 文档强制要求在Docker/VM中运行,仅暴露必要API密钥 |
| 计划漂移导致循环 | 检测机制:计划陈旧时自动回归Phase 2重新生成 |
| 子进程管理失控 | killLoop使用sessionId+4字符hash精确匹配,超时自动清理 |
| 上下文爆炸 | "单任务单迭代"强制约束,AGENTS.md限60行以内 |
使用模式
./loop.sh plan # 规划模式 ./loop.sh build 20 # 构建模式,最多20轮 node ralph-loop.mjs --prompt task.md --max 10 --done "RALPH_DONE"