升级打怪
🎯 什么是 Ralph Wiggum?
Ralph Wiggum 是一个自动化 AI 编码工具,通过 bash 循环脚本让 Cline 自主完成多个任务。每次迭代都启动一个新的 Cline 进程,确保上下文始终清晰。
📋 核心理念
每次循环 = 全新的 Cline 会话
- ✅ 避免上下文窗口溢出
- ✅ 防止长时间会话后的性能下降
- ✅ 每个任务都有干净的起点
- ✅ 通过磁盘文件(specs/、历史记录)共享状态
🚀 如何在 Cline 中使用
步骤 1:初始化 Ralph Wiggum
在 Cline 中输入:
使用 https://github.com/fstandhartinger/ralph-wiggum 为我的项目设置 Ralph Wiggum
Cline 会引导你完成:
- 创建必要的目录结构(specs/、scripts/、logs/)
- 下载 ralph-loop.sh 脚本
- 项目访谈 - 了解你的项目愿景和目标
- 创建项目宪法 - 为所有会话提供指导原则
步骤 2:编写规范文件
在 specs/ 目录创建功能规范文件,关键是清晰的验收标准:
示例:specs/user-login.md
# Feature: 用户登录功能
## 需求
- 手机号+验证码登录
- 登录状态持久化
- 自动跳转到首页
## 验收标准
- [ ] 用户可以输入手机号
- [ ] 点击发送验证码后收到验证码
- [ ] 输入正确验证码后登录成功
- [ ] 刷新页面后登录状态保持
- [ ] 登录后自动跳转到首页
- [ ] 所有相关测试通过
**完成时输出:** `<promise>DONE</promise>`
💡 关键要点:
- ✅ 验收标准要具体、可测试
- ✅ 避免模糊的描述如"功能正常"
- ✅ 每个标准应该能明确验证
- ✅ 必须包含
<promise>DONE</promise>输出要求
步骤 3:运行 Ralph 循环
在终端中运行(不在 Cline 中运行):
# 开始自动化循环
./scripts/ralph-loop.sh
# 限制最大迭代次数
./scripts/ralph-loop.sh 10
发生了什么?
循环 1: Cline 启动 → 读取 spec → 实现 → 测试 → 提交 → 输出 DONE → Cline 关闭
循环 2: 新 Cline 启动 → 读取下一个 spec → 实现 → 测试 → 提交 → 输出 DONE → Cline 关闭
循环 3: 新 Cline 启动 → ...
每次循环都是全新的 Cline 实例,上下文不会累积!
步骤 4:查看日志
所有输出都保存在 logs/ 目录:
# 查看会话日志
cat logs/ralph_*_session_*.log
# 查看特定迭代日志
cat logs/ralph_*_iter_1_*.log
🎮 两种工作模式
1. Build 模式(默认)
./scripts/ralph-loop.sh
Cline 会:
- 选择一个未完成的 spec
- 实现功能
- 运行测试
- 提交代码
- 输出
<promise>DONE</promise>
2. Plan 模式(可选)
./scripts/ralph-loop.sh plan
Cline 会:
- 创建详细的实施计划
- 分解成小任务
- 保存到
IMPLEMENTATION_PLAN.md
📁 项目结构
your-project/
├── specs/ # 功能规范
│ ├── user-login.md
│ ├── dashboard.md
│ └── ...
├── scripts/ # Ralph 脚本
│ ├── ralph-loop.sh
│ └── ...
├── logs/ # 日志文件
│ ├── ralph_*_session_*.log
│ └── ralph_*_iter_*.log
├── ralph_history.txt # 历史记录(突破/阻塞/学习)
├── IMPLEMENTATION_PLAN.md # 实施计划(可选)
└── CONSTITUTION.md # 项目宪法(可选)
⚠️ 重要注意事项
1. 启用自动执行模式
为了 Ralph 自主工作,需要在启动 Cline 时使用危险模式:
# VSCode 中的 Cline 设置
# 或者在命令行中:
cline --dangerously-skip-permissions
⚠️ 仅在沙盒/测试环境中使用!
2. 完成信号很关键
Cline 必须输出 <promise>DONE</promise> 才算完成。
- bash 脚本会检查这个信号
- 如果没有输出,会重试当前 spec
- 确保在 spec 中明确说明要输出这个信号
3. 测试作为护栏
- 每个 spec 应包含"测试通过"作为验收标准
- Cline 在所有测试通过前不应输出完成信号
- 这确保了代码质量
💡 最佳实践
✅ 好的 Spec 写法
## 验收标准
- [ ] 用户点击登录按钮后显示加载状态
- [ ] API 返回成功后跳转到首页
- [ ] API 返回失败后显示错误提示
- [ ] 登录组件的单元测试全部通过
❌ 差的 Spec 写法
## 验收标准
- [ ] 登录功能正常工作
- [ ] 没有 bug
编写技巧
- 一个 spec 一个功能 - 不要混合多个不相关的功能
- 验收标准可量化 - 能够明确验证是否完成
- 包含测试要求 - 确保代码质量
- 说明完成信号 - 提醒 Cline 输出
<promise>DONE</promise>
🔄 典型工作流
第1天:规划阶段
├─ 在 Cline 中:初始化 Ralph,创建项目结构
├─ 编写 5-10 个功能 spec
└─ 运行 ./scripts/ralph-loop.sh plan(可选)
第2天:开发阶段
├─ 运行 ./scripts/ralph-loop.sh
├─ Ralph 自动完成所有 spec
└─ 查看日志,验证结果
第3天:调整优化
├─ 根据结果调整未完成的 spec
├─ 继续运行 ralph-loop.sh
└─ 直到所有功能完成
🔗 相关资源
- GitHub: https://github.com/fstandhartinger/ralph-wiggum
- 网站: https://ralph-wiggum.ai
- 原始方法: https://github.com/ghuntley/how-to-ralph-wiggum
🎯 总结
在 Cline 中使用 Ralph Wiggum 的关键:
- ✅ 让 Cline 帮你设置项目结构
- ✅ 编写清晰、可测试的 spec
- ✅ 在终端运行 ralph-loop.sh(不在 Cline 中)
- ✅ 每个循环都是全新的 Cline 会话
- ✅ 通过
<promise>DONE</promise>信号标记完成
让 Ralph 做 Ralph 的事 - 信任 AI 的自主能力,专注于编写好的规范!
对于编程模型,我一点都不困惑:
- 编码 Claude / ChatGPT-4o
- 日常问题 ChatGPT、豆包、元宝、Deepseek
- 本地部署 Ollama + Qwen / Deepseek
以上基本够用。
工作中使用 AI 辅助编程,最开始接触的是 Cursor,然后是 Cline。
Claude Code 反而是最后使用的,但是使用了几次之后,
发现有些时候比 Cursor 和 Cine 更顺手。
可能是因为 Rule 的原因吧,它们有一些差异,变动也比较大。
Cline 里面不单有 Rule,还有 Workflow 的概念。
Claude Code 和 Cursor 估计也有,可能叫法不一样。
现在这几个AI工具,只有 MCP 和 Skill 是统一的,其他东西都有一点区别。
用起来费劲,想着只使用一个就好了。
可能用的时间还太短了吧,需要多看看官方文档和学习。
Ref
- Claude Code怎么用?23个实用技巧带你从入门到精通 - 知乎
- Claude Code 上手指南 -- Erlich 版
- Claude Agent SDK — Thariq Shihipar, Anthropic - YouTube : r/ClaudeAI
Lorem Ipsum - All the facts - Lipsum generator - Context7 - Up-to-date documentation for LLMs and AI code editors
- Cline Rules - Cline
- Workflows Overview - Cline
- UltraRAG/docs/README_zh.md at main · OpenBMB/UltraRAG
- agent-toolkit/skills/react-dev at main · softaworks/agent-toolkit
- 自定义指令/角色设置功能缺失 - Custom Instructions feature missing · Issue #4753 · cline/cline
- CloudAI-X/threejs-skills
使用 Cursor,快2年。确切来说,白票2年。
或者使用公司提供的 team 许可,或者在申请 free 许可的路上。
Cursor 整体使用上就一个字,爽。
但,有痛点。
VS Code 陪伴我差不多有7、8年,配置了很多插件,形成了一些习惯。
突然有一天,被其他工具取代,有点不适应。
“并不是所有插件,都同时兼容 VS Code 和 Cursor”
‼️更为重要,并不是所有事情都需要 AI 辅助才能完成。
Cline 出来应该有一段时间,我是最近才开始使用。
通过这段时间(1-2个礼拜),我发现它基本能替代 Cursor 的功能。
当然,使用习惯需要调整,有个逐渐适应的过程。
不可否认,Cursor 的 UI 和交互性比 Cline 看起来要专业,毕竟一个是 IDE,一个是 IDE 插件。
“某些角度来讲,VS Code 不是简单的编辑器,武装一下就成了 IDE”
Cline 最新的版本是v3.49.0,更新很快,比IDE勤快。
大概长这个样子:
最近在学习 Agent Skill,所以特意标注了。