Ralph Loop (Agent Mode) — 拉尔夫循环(代理模式)
v1.1.0指导 OpenClaw 代理使用 exec 和 process 工具执行 Ralph Wiggum 循环。代理通过 pty:true 启用合适的 TTY 支持来编排编码代理(Codex、Claude Code、OpenCode、Goose)。通过 PROMPT.md + AGENTS.md、SPECS 和 IMPLEMENTATION_PLAN.md 计划/构建代码。包括 PLANNING 和 BUILDING 模式、背压、沙盒和完成条件。用户请求循环,代理使用工具执行。
运行时依赖
安装命令
点击复制技能文档
Ralph Loop 概述 本技能指导 OpenClaw 代理执行 Ralph Loop 工作流,使用 exec 和 process 工具。代理按照 Ralph playbook 流程编排 AI 编码代理会话:定义需求 → JTBD → 关注主题 → specs/.md PLANNING 循环 → 创建/更新 IMPLEMENTATION_PLAN.md(不实现) BUILDING 循环 → 实现任务,运行测试(反压),更新计划,提交 循环通过 PROMPT.md + AGENTS.md(每次迭代加载)和磁盘上的计划/规格保持上下文。
本技能如何工作 本技能为 OpenClaw 代理生成指令以使用 exec 和 process 工具执行 Ralph Loop。代理使用 exec 工具调用编码代理命令 使用 pty: true 提供 TTY 以用于交互式 CLI 使用 background: true 以实现监控能力 使用 process 工具监控进度和检测完成 重要:用户不直接运行这些脚本 - OpenClaw 代理使用其工具能力执行它们。
TTY 要求 一些编码代理需要真实终端(TTY)才能正常工作,否则将挂起: 交互式 CLI(需要 TTY):OpenCode、Codex、Claude Code、Pi、Goose 非交互式 CLI(基于文件):aider、自定义脚本 解决方案:对于交互式 CLI 使用 exec + process 模式,对于基于文件的工具使用简单循环。
代理工具使用模式 交互式 CLI(推荐模式) 对于 OpenCode、Codex、Claude Code、Pi 和 Goose - 这些需要 TTY 支持: 当我(代理)收到 Ralph Loop 请求时,我将: 使用 exec 工具启动编码代理:exec 工具带参数: - 命令: "opencode run --model \"$(cat PROMPT.md)\"" - workdir: - background: true - pty: true - yieldMs: 60000 - timeout: 3600 从 exec 工具响应中捕获会话 ID 使用 process 工具监控:process 工具带: - action: "poll" - sessionId: process 工具带: - action: "log" - sessionId: - offset: -30(用于最近输出) 通过读取 IMPLEMENTATION_PLAN.md 中的哨兵文本检查完成 如果需要,使用 process kill 清理:process 工具带: - action: "kill" - sessionId: 益处:TTY 支持,实时日志,超时处理,平行会话,工作目录隔离
代理工作流 1)收集输入 必需:目标 / JTBD CLI(opencode、codex、claude、goose、pi 或其他) 模式(PLANNING、BUILDING 或 BOTH) 最大迭代次数(默认:PLANNING=5、BUILDING=10) 可选:完成哨兵(默认:STATUS:COMPLETE 在 IMPLEMENTATION_PLAN.md 中) 工作目录(默认:$PWD) 每次迭代的超时时间(默认:3600s) 沙盒选择 自动批准标志(--full-auto、--yolo、--dangerously-skip-permissions) 自动检测:如果 CLI 在交互列表中 → 使用 exec 工具带 pty: true 从 CLI 要求中提取模型标志
2)需求 → 规格(可选) 如果需求不明确: 将 JTBD 分解为关注主题 为每个主题草拟 specs/.md 保持规格简短且可测试
3)PROMPT.md + AGENTS.md PROMPT.md 引用: specs/.md IMPLEMENTATION_PLAN.md 相关项目文件 AGENTS.md 包括: 测试命令(反压) 构建/运行说明 操作学习
4)提示模板 PLANNING 提示(无实现):您正在运行 Ralph PLANNING 循环以实现此目标: 。阅读 specs/ 和当前代码库。仅更新 IMPLEMENTATION_PLAN.md。 规则: - 不要实现 - 不要提交 - 创建优先任务列表 - 如果不清楚,请写下问题 完成:当计划就绪时,添加:STATUS:PLANNING_COMPLETE BUILDING 提示:您正在运行 Ralph BUILDING 循环以实现此目标: 。 上下文: specs/、IMPLEMENTATION_PLAN.md、AGENTS.md 任务: 1)选择最重要的任务 2)调查代码 3)实现 4)运行 AGENTS.md 中的反压命令 5)更新 IMPLEMENTATION_PLAN.md 6)使用学习更新 AGENTS.md 7)提交清晰消息 完成:当所有完成时,添加:STATUS:COMPLETE
5)CLI 命令参考 代理使用以下模式构造命令字符串: CLI 命令字符串模式 OpenCode opencode run --model "$(cat PROMPT.md)" Codex codex exec "$(cat PROMPT.md)"(需要 git) Claude Code claude "$(cat PROMPT.md)" Pi pi --provider --model -p "$(cat PROMPT.md)" Goose goose run "$(cat PROMPT.md)" 公共标志: Codex:--full-auto、--yolo、--model Claude:--dangerously-skip-permissions
详细代理工具使用示例 示例 1:OpenCode Ralph Loop 代理执行此序列: 步骤 1:使用 exec 工具启动 OpenCode { command: "opencode run --model github-copilot/claude-opus-4.5 \"$(cat PROMPT.md)\"", workdir: "/path/to/project", background: true, pty: true, timeout: 3600, yieldMs: 60000 } 步骤 2:从响应中捕获会话 ID sessionId: "abc123" 步骤 3:使用 process 工具每 10-30 秒监控一次 { action: "poll", sessionId: "abc123" } 步骤 4:检查最近日志 { action: "log", sessionId: "abc123", offset: -30 } 步骤 5:读取 IMPLEMENTATION_PLAN.md 以检查完成状态