摘要
Ralph 是一个基于“每次迭代使用干净上下文”和本地文件状态管理的自主 AI Agent 框架,用于反复调用 Amp 或 Claude Code,逐条执行并完成 PRD 中的用户故事。
核心价值在于把长链路开发任务拆成可迭代、可回放、可验证的执行循环:每轮都从新上下文开始,通过 prd.json 跟踪故事状态、通过 progress.txt 记录经验、通过 Git 提交沉淀结果,并在质量检查通过后继续推进下一条任务。
其主要约束也很明确:任务粒度必须足够小,项目必须具备类型检查/测试等反馈回路,前端变更需要额外做浏览器验证,否则循环会逐步积累风险。
功能与定位
Ralph 的定位是“PRD 驱动的工程执行框架”,不是单次对话助手。它将需求文档转成结构化待办后,持续调度 AI 编程工具执行最高优先级且未通过的用户故事,直到全部通过或达到迭代上限。
典型使用场景
- 将产品需求拆分为可执行用户故事后,交由 AI 持续推进实现。
- 在上下文窗口受限的任务中,通过每轮重置上下文降低漂移与遗忘。
- 需要边开发边沉淀团队知识时,把可复用经验持续写入
progress.txt与项目内代理说明文件。
核心功能
- 支持 Amp 与 Claude Code 两类 AI 编程工具。
- 每轮按优先级选择一条
passes: false的用户故事执行。 - 执行质量检查后再提交,并回写
prd.json任务状态。 - 通过
progress.txt、Git 历史、PRD 状态形成跨轮次记忆。 - 提供 PRD 生成与 PRD 转 JSON 的配套技能流程。
特色与差异点
- 强调“每轮新实例”的执行模型,减少长会话带来的上下文污染。
- 用 Git 与文件作为记忆载体,便于审计、回滚与团队协作。
- 将需求拆分、实现、验证、记录串成闭环,而非只产出代码片段。
使用方式概览
- 先准备 PRD,并转换为
prd.json的用户故事列表。 - 在目标仓库启动 Ralph 循环,指定 AI 工具与最大迭代数。
- 每轮执行一条故事并完成检查、提交、状态更新。
- 所有故事通过后循环结束;未完成则继续下一轮。
限制与注意事项
- 若单条故事范围过大,AI 易在单轮上下文内失焦,需先做更细粒度拆分。
- 若缺少类型检查、测试或 CI 反馈,错误会在多轮迭代中叠加放大。
- 涉及 UI 的故事需要额外浏览器验证链路,否则“通过”状态可能与真实交互不一致。
- 框架依赖项目内规范与任务定义质量,PRD 不清晰会直接影响执行效果。
链接
- 仓库主页:https://github.com/snarktank/ralph
- 交互式流程图:https://snarktank.github.io/ralph/
- Ralph 模式来源:https://ghuntley.com/ralph/
- Amp 文档:https://ampcode.com/manual
- Claude Code 文档:https://docs.anthropic.com/en/docs/claude-code