生成可直接复制粘贴的 Bash 脚本,用于 Ralph Wiggum/AI 代理循环(Codex、Claude Code、OpenCode、Goose)。适用于“拉尔夫循环”“Ralph Wiggum 循环”或 AI 循环请求,依据 PROMPT.md、AGENTS.md、SPECS、IMPLEMENTATION_PLAN.md 进行计划/构建,包含计划与构建模式、背压、沙箱及完成条件。
Ralph Loop( Event- Driven). 以事件驱动通知增强Ralph模式—— Codex/Claude在需要关注而不是投票时使用OpenClaw
功能概述
Ralph Loop( Event- Driven). 以事件驱动通知增强Ralph模式—— Codex/Claude在需要关注而不是投票时使用OpenClaw是一项面向实际任务的技能,主要用于Key Concepts.;Clean Sessions.;
核心要点
- Each tererat。
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
使用与执行
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
结果检查与注意事项
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
Ralph 循环(事件驱动型)
增强版 Ralph 模式,采用 事件驱动通知机制 —— Codex/Claude 在需要关注时主动调用 OpenClaw,而非轮询。
核心概念
干净的会话(Clean Sessions)
每次迭代均启动一个 全新的代理会话(fresh agent session),上下文完全清空。这是有意为之的设计:
- 规避上下文窗口长度限制
- 每次
codex exec均为独立进程,不保留此前任何运行记录 - 状态通过文件持久化:如
IMPLEMENTATION_PLAN.md、AGENTS.md及 git 历史
基于文件的通知回退机制(File-Based Notification Fallback)
若 Codex 发送唤醒通知时 OpenClaw 遭遇限流:
- 该通知将写入
.ralph/pending-notification.txt - 尝试唤醒(可能失败)
- OpenClaw 恢复后,自动检查是否存在待处理通知
- 工作永不丢失 —— 所有内容均保存在 git 或文件中
文件结构
project/ ├── PROMPT.md # 每次迭代加载(按模式区分) ├── AGENTS.md # 项目上下文、测试命令、经验总结 ├── IMPLEMENTATION_PLAN.md # 含状态的任务列表 ├── specs/ # 需求规格说明 │ ├── overview.md │ └──.md └── .ralph/ ├── ralph.log # 执行日志 ├── pending-notification.txt # 当前待处理通知(如有) └── last-notification.txt # 上一次通知(供参考)
通知格式
.ralph/pending-notification.txt:
{
"timestamp": "2026-02-07T02:30:00+01:00",
"project": "/home/user/my-project",
"message": "DONE: All tasks complete.",
"iteration": 15,
"max_iterations": 20,
"cli": "codex",
"status": "pending"
}
status 取值含义:
pending— 唤醒失败或尚未尝试delivered— 唤醒成功
OpenClaw 故障恢复流程
在遭遇限流或服务中断后重新上线时,务必检查是否存在待处理通知:
# 在所有项目中查找 pending-notification.txt find ~/projects -name "pending-notification.txt" -path "*/.ralph/*" 2>/dev/null # 或检查指定项目 cat /path/to/project/.ralph/pending-notification.txt
按消息前缀执行恢复操作
| 前缀 | 操作 |
|---|---|
DONE: |
向用户汇报完成情况,并汇总已构建内容 |
PLANNING_COMPLETE: |
通知用户,询问是否准备就绪进入 BUILDING 模式 |
PROGRESS: |
记录日志;若进展显著,则同步通知用户 |
DECISION: |
向用户提供可选方案,等待其答复,并将结果注入 AGENTS.md |
ERROR: |
检查日志(.ralph/ralph.log),分析原因,提供协助或升级处理 |
BLOCKED: |
立即向用户升级反馈,附带完整上下文 |
QUESTION: |
向用户提出问题,获取澄清信息,并将问答结果注入 AGENTS.md |
注入人工响应
为下一轮迭代提供决策/问题的答案:
echo "## Human Decisions - [$(date '+%Y-%m-%d %H:%M')] Q:? A: " >> AGENTS.md
下一次 Codex 会话将读取 AGENTS.md 并识别该答案。
清除通知
处理完通知后,请及时清除:
mv .ralph/pending-notification.txt .ralph/last-notification.txt
工作流
1. 收集需求
若未提供,则需主动询问以下信息:
- 目标 / JTBD(Jobs To Be Done):期望达成何种成果?
- CLI 工具:
codex、claude、opencode、goose - 运行模式:
PLANNING、BUILDING或BOTH - 技术栈:编程语言、框架、数据库等
- 测试命令:如何验证实现正确性
- 最大迭代次数:默认为 20
2. 生成规格文档(Specs)
将目标拆解为若干 关注主题(topics of concern) → 输出至 specs/*.md:
# specs/overview.md ## Goal <一句话 JTBD 描述> ## Tech Stack - Language: Python 3.11 - Framework: FastAPI - Database: SQLite - Frontend: HTMX + Tailwind ## Success Criteria - [ ] Criterion 1 - [ ] Criterion 2
3. 生成 AGENTS.md
# AGENTS.md ## Project <简要描述> ## Commands - **Install**: `pip install -e .` - **Test**: `pytest` - **Lint**: `ruff check .` - **Run**: `python -m app` ## Backpressure 每次实现后执行: 1. `ruff check . --fix` 2. `pytest` ## Human Decisions ## Learnings
4. 生成 PROMPT.md(按模式定制)
PLANNING 模式
# Ralph PLANNING 循环 ## Goal## Context - 阅读:specs/*.md - 阅读:当前代码库结构 - 更新:IMPLEMENTATION_PLAN.md ## Rules 1. 禁止编写代码 2. 禁止提交变更 3. 分析规格与现状之间的差距 4. 创建/更新 IMPLEMENTATION_PLAN.md,列出优先级明确的任务 5. 每项任务应足够小(≤ 1 小时工作量) 6. 若需求不清晰,需列出具体问题 ## Notifications 当需要人工输入或规划完成时,调用: ```bash openclaw gateway wake --text "PLANNING: " --mode now
推荐使用如下前缀:
DECISION:— 需人工就某项选择做决策QUESTION:— 需求表述不清DONE:— 规划已完成
完成标志
当规划完成且已准备好进入构建阶段,在 IMPLEMENTATION_PLAN.md 中添加:
STATUS: PLANNING_COMPLETE
随后发送通知:
openclaw gateway wake --text "DONE: Planning complete. X tasks identified." --mode now
#### BUILDING 模式 ```markdown # Ralph BUILDING 循环 ## Goal## Context - 阅读:specs/*.md、IMPLEMENTATION_PLAN.md、AGENTS.md - 实现:每次迭代仅处理一项任务 - 测试:执行 AGENTS.md 中定义的 backpressure 命令 ## Rules 1. 从 IMPLEMENTATION_PLAN.md 中选取最高优先级且尚未完成的任务 2. 修改前先调研相关代码 3. 实现该任务 4. 运行 backpressure 命令(lint、test) 5. 若测试通过:以清晰信息提交变更,并标记任务为已完成 6. 若测试失败:最多尝试修复 3 次,之后发出通知 7. 在 AGENTS.md 中更新任何操作性经验 8. 在 IMPLEMENTATION_PLAN.md 中更新进度 ## Notifications 需要时调用 OpenClaw: ```bash openclaw gateway wake --text " :" --mode now 前缀说明:
DECISION:— 需人工输入(例如:“SQLite 还是 PostgreSQL?”)ERROR:— 经过 3 次尝试后测试仍失败BLOCKED:— 缺失依赖、凭证或规格描述不清PROGRESS:— 完成重大里程碑(可选)DONE:— 所有任务均已完工完成标志
当所有任务均完成时:
- 在 IMPLEMENTATION_PLAN.md 中添加:
STATUS: COMPLETE- 发送通知:
openclaw gateway wake --text "DONE: All tasks complete. Summary:" --mode now ### 5. 启动循环 使用提供的脚本scripts/ralph.sh: ```bash # 默认:使用 Codex 执行 20 次迭代 ./scripts/ralph.sh 20 # 使用 Claude Code RALPH_CLI=claude ./scripts/ralph.sh 10 # 启用测试 RALPH_TEST="pytest" ./scripts/ralph.sh并行执行
对于相互独立的任务,可使用 git worktree:
# 创建多个 worktree 以支持并行开发 git worktree add /tmp/task-auth main git worktree add /tmp/task-upload main # 启动并行会话(每个会话均为干净、独立环境) exec pty:true background:true workdir:/tmp/task-auth command:"codex exec --full-auto 'Implement user authentication...'" exec pty:true background:true workdir:/tmp/task-upload command:"codex exec --full-auto 'Implement image upload...'"会话跟踪表:
Session ID Worktree Task Status abc123 /tmp/task-auth Auth module running def456 /tmp/task-upload Image upload running 各 Codex 实例独立发送通知。请分别检查各 worktree 下的
.ralph/pending-notification.txt。CLI 工具专用说明
Codex
- 要求项目位于 git 仓库中
- 每次
codex exec均为全新会话 —— 各次调用之间无状态共享--full-auto:在 workspace(沙箱环境)中自动批准--yolo:禁用沙箱、跳过审批(高风险但高效)- 默认模型:gpt-5.2-codex
Claude Code
--dangerously-skip-permissions:自动批准(建议仅在沙箱中使用)- 不要求 git 仓库
- 每次调用均为全新会话
OpenCode
opencode run "$(cat PROMPT.md)"Goose
goose run "$(cat PROMPT.md)"安全须知
⚠️ 自动批准参数具有高风险。请始终遵守以下原则:
- 在专用目录或分支中运行
- 对不可信项目使用沙箱(Docker/VM)
- 随时准备执行
git reset --hard作为紧急逃生手段- 推送前务必人工审查所有提交
快速开始
# 1. 创建项目目录 mkdir my-project && cd my-project && git init # 2. 从 skill 复制模板 cp /path/to/ralph-loop/templates/* . mv PROMPT-PLANNING.md PROMPT.md # 3. 创建 specs 目录及概述文件 mkdir specs cat > specs/overview.md << 'EOF' ## Goal Build a web app that... ## Tech Stack - Python 3.11 + FastAPI - SQLite - HTMX + Tailwind ## Features 1. Feature one 2. Feature two EOF # 4. 编辑 PROMPT.md,填入您的具体目标 # 5. 启动 Ralph 循环 ./ralph.sh 20示例:古董目录系统
# specs/overview.md ## Goal 用于管理古董物品元数据、图片与分类的 Web 应用。 ## Tech Stack - Python 3.11 + FastAPI - SQLite + SQLAlchemy - HTMX + Tailwind CSS - 图片本地文件存储 ## Features 1. 物品 CRUD(名称、描述、年代、购买信息、尺寸) 2. 图片上传(每件物品支持多张图片) 3. 标签与分类管理 4. 搜索与筛选功能 5. 多种视图模式(网格、列表、详情)Agent 将执行以下步骤:
- (PLANNING 阶段)将上述需求拆解为 10–15 个子任务
- (BUILDING 阶段)每次迭代实现一个子任务
- 每次成功实现后提交变更
- 完成或受阻时主动发出通知
相关专题
本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。
0
2026.11.06
围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。
0
2026.11.06
详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。
0
2026.11.06
DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。
0
2026.11.05
DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。
0
2026.11.05
本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。
0
2026.11.04
本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.8万人学习
共6课时 | 54.7万人学习
最新文章