Ralph 自主 Agent 循环实战指南:用 AGENTS.md 驱动 Amp/Claude Code 完成全部 PRD 条目 人工智能AI AgentAgent 工作流AI 技能【免费下载链接】ralphRalph is an autonomous AI agent loop that runs repeatedly until all PRD items are complete.项目地址https://gitcode.com/GitHub_Trending/ralph1/ralph点击查看免费下载Ralph 是一个长时间运行的自主 AI Agent 循环autonomous AI agent loop它会反复启动全新的 AI 编码工具实例Amp 或 Claude Code直到 PRD 中的所有条目全部完成。本文以 AGENTS.md 为核心脉络结合仓库中的 ralph.sh、prompt.md、CLAUDE.md、prd.json.example 与 flowchart 等源码与配置文件系统讲解循环机制、命令行用法、关键文件职责、流程图可视化以及让循环持续收敛的工程模式。读完你将能够在任意项目里搭建并运行 Ralph把一份 PRD 拆成可在单次上下文窗口内完成的小故事并用 git 历史、progress.txt、prd.json三样持久化手段让每次迭代都站在上一次的肩膀上继续前进。上图基于 flowchart 目录中 React Flow 实现的交互式可视化生成展示 Ralph 从编写 PRD到全部故事完成的完整循环。什么是 Ralph一次迭代一个干净上下文的自主循环Ralph 的核心定义见 AGENTS.md Overview 一节只有一句话Ralph is an autonomous AI agent loop that runs AI coding tools (Amp or Claude Code) repeatedly until all PRD items are complete. Each iteration is a fresh instance with clean context.拆解这句话可以得到三个关键设计点自主autonomous一旦启动Ralph 不再需要人工介入由脚本循环驱动 AI 工具自动读 PRD → 挑故事 → 实现 → 质检 → 提交 → 更新状态 → 记录学习循环loop一次迭代只完成一个用户故事完成后自动进入下一轮直到所有故事passes: true或达到最大迭代次数每次迭代都是全新实例fresh instance with clean context这是与普通长对话式 Agent 最本质的区别——每轮迭代都从零启动一个干净的 AI 上下文不携带上一轮的对话记忆。由于每轮上下文都是全新的跨迭代的记忆只能依靠外部持久化载体也就是 AGENTS.md Patterns 一节明确列出的三样东西持久化载体作用git 历史commits from previous iterations保存每次迭代的代码变更与提交信息progress.txt追加式的学习日志记录模式、坑与上下文prd.json任务清单本身记录哪些故事已完成passes: true这一无状态实例 有状态文件的架构详见 README.md 的 Critical Concepts 一节是 Ralph 能够长时间可靠运行而不跑偏的根本原因。命令行用法启动与停止循环AGENTS.md Commands 一节给出了 Ralph 的全部核心命令可直接在仓库根目录执行# 运行 flowchart 开发服务器 cd flowchart npm run dev # 构建 flowchart cd flowchart npm run build # 用 Amp 运行 Ralph默认工具 ./ralph.sh [max_iterations] # 用 Claude Code 运行 Ralph ./ralph.sh --tool claude [max_iterations]其中[max_iterations]为可选参数缺省时默认10 次迭代见 ralph.sh 的MAX_ITERATIONS10--tool amp或--tool claude选择 AI 编码工具缺省为amp为保持向后兼容见 ralph.sh 注释。参数解析与校验源码级查看 ralph.sh 可以发现脚本对参数的解析相当宽容既支持--tool claude空格分隔写法也支持--toolclaude等号写法其余位置参数只要匹配^[0-9]$就会被当作max_iterations。若--tool的值不是amp或claude脚本会立即报错退出Error: Invalid tool xxx. Must be amp or claude.每次迭代实际执行了什么ralph.sh 的for循环是循环体的核心实现打印当前迭代序号与所用工具Ralph Iteration $i of $MAX_ITERATIONS按工具分支启动全新 AI 实例Ampcat $SCRIPT_DIR/prompt.md | amp --dangerously-allow-allralph.shClaude Codeclaude --dangerously-skip-permissions --print $SCRIPT_DIR/CLAUDE.mdralph.sh其中--print用于非交互式输出捕获捕获输出检查是否包含完成信号promiseCOMPLETE/promiseralph.sh命中完成信号则打印 Ralph completed all tasks! 并以exit 0正常退出ralph.sh否则sleep 2后进入下一轮迭代。当达到最大迭代次数仍未完成时脚本以exit 1退出并提示检查progress.txt查看状态ralph.sh。分支切换与自动归档ralph.sh还内置了运行管理逻辑ralph.sh通过jq -r .branchName // empty读取当前prd.json中的branchName并与.last-branch文件比对若分支发生变化会把上一次运行的prd.json与progress.txt归档到archive/YYYY-MM-DD-feature-name/其中ralph/前缀会被剥除以作为目录名并重置progress.txt若progress.txt不存在则自动初始化带时间戳的头部。注意前置条件脚本依赖jq解析 JSONmacOS 可用brew install jq安装见 README.md Prerequisites。关键文件循环的大脑与账本AGENTS.md Key Files 一节给出了每个文件在整个循环中的角色文件角色ralph.shbash 循环脚本负责每次生成全新 AI 实例支持--tool amp或--tool claudeprompt.md交给每个 Amp 实例的指令CLAUDE.md交给每个 Claude Code 实例的指令prd.json.example示例 PRD 格式flowchart用 React Flow 制作的交互式图解说明 Ralph 的工作原理prompt.md与CLAUDE.md本质上是同一套迭代内任务清单的两个方言版本核心流程完全一致详见 prompt.md 与 CLAUDE.md读取prd.json与指令文件同目录读取progress.txt先看## Codebase Patterns部分校验当前分支是否等于 PRD 的branchName不符则从main检出或创建挑选priority 最高且passes: false的用户故事只实现这一个故事运行项目质量检查typecheck、lint、test 等若发现可复用模式更新 AGENTS.md / CLAUDE.md检查通过后以feat: [Story ID] - [Story Title]格式提交所有变更更新prd.json将该故事passes置为true将进度追加到progress.txt。prd.json循环的任务清单prd.json.example 展示了标准格式顶层包含project、branchName如ralph/task-priority、description和userStories数组。每个用户故事含idUS-001 风格、title、descriptionAs a ... I want ... so that ... 格式、acceptanceCriteria可验证的验收清单、priority数值越小越优先、passes布尔初始为false与notes。在示例中四个故事从数据库加字段US-001到展示优先级徽章US-002再到编辑时改优先级US-003最后到按优先级过滤US-004呈现典型的数据层 → 展示层 → 交互层依赖顺序且每个故事的验收标准都包含Typecheck passesUI 故事额外包含Verify in browser using dev-browser skill。progress.txt追加式学习账本迭代内指令要求进度报告只能追加、绝不替换见 CLAUDE.md 的 Progress Report Format格式为## [Date/Time] - [Story ID] - What was implemented - Files changed - **Learnings for future iterations:** - Patterns discovered (e.g., this codebase uses X for Y) - Gotchas encountered (e.g., dont forget to update Z when changing W) - Useful context (e.g., the evaluation panel is in component X) ---其中 Learnings 部分被明确标注为critical——它帮助未来的迭代避免重复犯错并更快理解代码库。此外一旦发现通用可复用的模式应将其合并进progress.txt顶部的## Codebase Patterns区块不存在则创建只有通用且可复用的模式才够格进入该区块故事专属的细节不应写入CLAUDE.md。AGENTS.md / CLAUDE.md迭代间的模式传播每次提交前AI 需要检查被修改的目录及其父目录是否存在 AGENTS.md或 CLAUDE.md并将真正可复用的知识写入该模块的 API 模式或约定坑或非显而易见的需求文件之间的依赖关系该区域的测试方法配置或环境要求。CLAUDE.md 明确给出好例子修改 X 时也要同步修改 Y、该模块所有 API 调用使用模式 Z、测试需要 dev server 运行在 PORT 3000与禁止项故事专属细节、临时调试笔记、progress.txt里已有的信息。这正是 AGENTS.md Patterns 一节中Always update AGENTS.md with discovered patterns的含义因为 AI 编码工具会自动读取这些文件未来迭代乃至未来的人类开发者都能从中受益。停止条件循环何时收敛迭代内指令在完成任务后必须判断是否还有剩余故事见 CLAUDE.md Stop Condition若所有故事均passes: true回复promiseCOMPLETE/promise——ralph.sh 通过 grep 检测到该信号后打印完成信息并exit 0若仍有passes: false的故事则正常结束本轮回复由下一轮迭代接手下一个故事。交互式流程图用 React Flow 讲清循环flowchart 是一个基于 React Flow 构建的交互式可视化专为演示设计——点击逐步骤展开并带动画见 AGENTS.md Flowchart 一节。本地运行方式cd flowchart npm install npm run dev从源码结构看flowchart/src/App.tsx整个流程被建模为四个阶段Phase类型setup/loop/decision/done用不同颜色区分见 App.tsxsetup 准备阶段You write a PRD → Convert to prd.json → Run ralph.shloop 循环阶段AI picks a story找下一个passes: false→ Implements it写代码、跑测试→ Commits changes测试通过才提交→ Updates prd.json置passes: true→ Logs to progress.txt保存学习同时更新 AGENTS.mddecision 决策节点More stories?——Yes 则回到AI picks a storyNo 则进入完成节点done 完成节点Done!所有故事完成。每个节点渲染为自定义组件CustomNode见 App.tsx带四向 Handle 支持连线边带箭头标记MarkerType.ArrowClosed与动画附注节点NoteNode会在特定步骤出现例如在Convert to prd.json旁展示一条真实的用户故事 JSON 示例在Logs to progress.txt旁说明也会更新 AGENTS.md 以便未来迭代从中学习App.tsx。交互上支持 Previous / Next / Reset 逐步展示App.tsx这也是演示场景的核心体验。让循环可靠收敛的工程模式AGENTS.md Patterns 一节浓缩了 Ralph 能长期稳定工作的四条模式每一条都能在上游源码中找到对应机制1. 每次迭代生成全新 AI 实例、上下文干净由 ralph.sh 的工具分支直接保证相应地跨迭代记忆完全依赖 git 历史、progress.txt与prd.json三样载体README.md Critical Concepts。2. 故事要小到能在一个上下文窗口内完成skills/ralph/SKILL.md 给出判断标准每个故事必须能在一次 Ralph 迭代一个上下文窗口内完成经验法则是一句话能描述清楚的改动才够小如果无法用 2-3 句话描述就说明太大了。合理的粒度包括给表加一列并写迁移、给既有页面加一个 UI 组件、给服务端 action 更新一段逻辑、给列表加一个过滤下拉框。3. AGENTS.md 更新是循环收敛的关键每次迭代后把发现的模式、坑与约定写回 AGENTS.mdCLAUDE.md由于 AI 编码工具会自动读取这些文件后续迭代和人类开发者都能受益README.md Critical Concepts 的 AGENTS.md Updates Are Critical。4. 必须有反馈闭环typecheck 捕获类型错误、测试验证行为、CI 保持绿色——破损的代码会跨迭代累积broken code compounds across iterations因此 Ralph 只有在存在这些反馈信号时才可靠README.md Critical Concepts 的 Feedback Loops。另外两条针对 UI 故事的补充模式验收标准必须包含Verify in browser using dev-browser skill前端故事在浏览器验证通过之前不算完成见 prompt.md 的 Browser Testing 一节以及调试时可以随时用cat prd.json | jq .userStories[] | {id, title, passes}查看哪些故事已完成、cat progress.txt查看过往学习、git log --oneline -10查看提交历史README.md Debugging。在你的项目中启用 Ralph仓库 README.md Setup 提供了三种接入方式可任选其一方式一复制到你的项目——把ralph.sh、prompt.mdAmp 用或CLAUDE.mdClaude Code 用拷入scripts/ralph/并chmod x方式二全局安装 skillsAmp/Claude——将skills/prd与skills/ralph复制到~/.config/amp/skills/或~/.claude/skills/从而在任何项目里直接调用/prd生成 PRD、/ralph把 PRD 转换为prd.json方式三Claude Code Marketplace 插件——通过/plugin marketplace add snarktank/ralph与/plugin install ralph-skillsralph-marketplace安装技能。启动前建议按 README.md 的 Configure Amp auto-handoff (recommended) 为 Amp 开启自动交接{ amp.experimental.autoHandoff: { context: 90 } }这允许上下文填满时自动交接使 Ralph 也能承载超出单个上下文窗口的大故事。整个工作流README.md Workflow可概括为三步先用 prd skill 生成 PRD 到tasks/prd-[feature-name].md再用 ralph skill 转换为prd.json最后运行./ralph.sh或./ralph.sh --tool claude让循环自主推进。需要针对项目定制时还可以在复制后修改prompt.md/CLAUDE.md加入项目专属的质量检查命令、代码库约定与常见坑README.md Customizing the Prompt。赞分享人工智能AI AgentAgent 工作流AI 技能【免费下载链接】ralphRalph is an autonomous AI agent loop that runs repeatedly until all PRD items are complete.项目地址https://gitcode.com/GitHub_Trending/ralph1/ralph点击查看免费下载相关推荐Deep Agents Ralph Mode 实战指南一行命令驱动的无限自主循环 AgentDeep Agents Ralph Mode 实战指南一行命令驱动的无限自主循环 Agent 导读 Ralph Mode 是 Deep Agents 生态中一人工智能大模型AI AgentAgent 框架自主智能体工具调用代码智能体MCP ClientsAI 技能PigeonPod高级技巧如何使用自定义yt-dlp参数优化下载体验 PigeonPod高级技巧如何使用自定义yt dlp参数优化下载体验 想要让PigeonPod的YouTube和Bilibili下载功能更加强大吗自定后端AI Agent人工智能流程编排WebSocketRalph for Claude Code开发循环中断如何手动干预AI自主开发Ralph for Claude Code开发循环中断如何手动干预AI自主开发 你是否遇到过Ralph自主开发循环卡住的情况想要手动干预但又不知道从何人工智能AI 应用自主智能体CLI开发工具上一篇turf 空间连接实战用 turf/tag 将多边形属性批量标注到点要素下一篇hotkey-detectiveWindows热键冲突检测的架构深度解析与技术突破创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考