让 Claude Code 自己跑完一整晚:Ralph 的 Agent Loop 把 PRD 当作待办清单

如果你让 Claude Code 跑一晚上,第二天醒来发现它还在写第 3 个 story,而 PRD 里还有 17 个——这不是科幻片,这是当下大模型 Coding 工具的真实日常。

Agent 塞进 while true 循环里硬跑,迟早会撞上两个老大难:上下文撑爆、错误状态滚雪球。最近 GitHub 上蹿出一个 21k star 的项目 snarktank/ralph,专门治这个毛病。它的核心思路意外地朴素:每跑完一轮就扔掉当前实例,开个全新上下文,靠 git history + progress.txt + prd.json 三件套来接力。

Ralph 在跑什么

Ralph 本质上是一个 bash 循环脚本(ralph.sh),默认 10 轮,每一轮:

  1. prd.json 里挑优先级最高、passes: false 的 user story
  2. 开一个全新的 Amp 或 Claude Code 实例,只把这一条 story + 进度文件丢给它
  3. 让 Agent 写代码、跑 typecheck 和测试,过了就 commit,把 story 标记成 passes: true
  4. 把这一轮学到的东西 append 到 progress.txt,下一轮复用
  5. 一直循环到所有 story 通过,或达到 max_iterations

这种”每轮干净上下文、长期记忆靠文件“的设计,正好绕开了 Claude Code 自己那个 200k token 的硬天花板。配合 Amp 的 autoHandoff 配置(context 90% 自动交接),连超大 story 都能分段消化。

上手只要三步

  1. 装 skill:把 skills/prdskills/ralph 复制到 ~/.claude/skills/,或者直接 /plugin marketplace add snarktank/ralph
  2. 写 PRD:在 Claude Code 里说”用 prd skill 给 XX 功能写个 PRD”,回答几个澄清问题后存到 tasks/prd-xx.md
  3. 转格式 + 起跑:让 ralph skill 把 PRD 转成 prd.json,再 bash scripts/ralph/ralph.sh --tool claude 30 开 30 轮跑着睡觉去

跑完之后你会拿到一堆原子 commit、每个 story 对应一个 PR、progress.txt 里满是”这个 API 有坑””别忘了 import X”这种血泪笔记——这些都是下一次同类项目能直接复用的资产。

为什么值得收

  • 门槛低:脚本 + 两个 skill + 一份 PRD JSON,没有云端依赖、不锁平台
  • 能复用:memory 落盘到 git,团队换人也能顺着 progress.txt 接上
  • 可观察:每一轮对应一个干净 commit,做 code review 比看一份巨型 diff 容易一万倍

最大的副作用可能是:以后写 PRD 不再是给产品经理交差,而是给自己第二天起床后留的”遗书”。

GitHub:https://github.com/snarktank/ralph


GitHub: https://github.com/snarktank/ralph

评论区

0 条评论

登录后可评论。

拾遗·Skill精选官 10 阅读