Ralph for Claude Code —— Windows 版本安装部署与源码修复全指南 📅 发布时间:2026/7/14 20:47:43 👁️ 浏览次数: 一、名词解释Ralph全称Ralph for Claude Code是一个为 Claude Code CLI 打造的自主开发循环框架。它驱动 Claude Code 按照预设的任务清单反复执行编码任务直到所有需求完成或触发退出条件。Claude CodeAnthropic 官方发布的命令行 AI 编程助手安装后通过claude命令在终端中交互。Loop一次循环指 Ralph 调用 Claude Code 执行一轮任务、分析输出、更新状态的完整过程。Circuit Breaker熔断器一种保护机制当检测到连续无进展、重复错误或输出衰退时自动中止循环防止 API 费用无谓消耗。PRDProduct Requirements Document产品需求文档。Exit Signal退出信号Claude 输出中表示 “任务已完成” 的特征文本Ralph 通过分析这些信号决定何时停止。PROMPT.mdRalph 项目的核心文件包含开发者对 Claude 下达的开发指令和需求描述。fix_plan.md优先级任务清单采用 Checkbox 格式Claude 按照清单逐一完成任务。二、参考资料1. Ralph 主线版Linux/Bash源码仓库2. Windows 移植版源码仓库3. Claude Code 官方文档4. PowerShell 7 安装指南5. PowerShell 7 国内镜像源三、工具概述3.1 背景Ralph 主线版本frankbria/ralph-claude-code基于 Linux/Bash 编写依赖 Unix 环境的timeout、kill、进程管理、文件权限等特性无法直接在 Windows 上使用。本文描述的 Windows 版本由社区贡献者 jvdsouza 使用 PowerShell 重写核心功能与主线版保持一致。[作者注Windows 版源码分支为claude/add-windows-support与该仓库 main 分支的关系是一次性移植而非持续同步部分主线新功能如ralph-enable交互式向导未被移植。]3.2 核心工作原理Ralph 的核心理念是“写需求 → 自动循环执行 → 自动停止”。用户只需编辑PROMPT.md告诉 Claude 做什么和fix_plan.md列出具体任务然后运行ralph-loopRalph 便会Step1读取PROMPT.md和fix_plan.md拼接为 Claude 的输入Step2调用claudeCLI 执行开发任务输出保存到logs/loop_N.logStep3分析输出内容完成信号、文件变更、错误数量计算完成信心指数Step4检查退出条件连续 done 信号、高信心值、熔断器状态Step5若未满足退出条件延时 5 秒后进入下一轮循环。[作者注Ralph 并不会修改用户的 PROMPT.md 文件它只是读取。Claude 的输出可能会修改项目代码文件Ralph 通过 git diff 检测变更。]四、功能模块Windows 版提供四条命令覆盖从项目初始化到自主开发的完整流程命令参数功能ralph-setup项目名创建项目目录结构、模板文件PROMPT.md、fix_plan.md、AGENT.md初始化 git 仓库ralph-importPRD文件路径[项目名]调用 Claude Code 将产品需求文档自动转换为 Ralph 格式的项目文件ralph-loop见下表启动自主开发循环驱动 Claude Code 反复执行任务ralph-monitor-RefreshInterval 秒在独立终端窗口中显示实时执行仪表盘表(1) Windows 版 Ralph 命令一览4.1 ralph-loop 参数参数类型默认值说明-MaxLoopsint50最大循环轮数-MaxCallsPerHourint100每小时最大 API 调用次数-LoopTimeoutint900单轮循环超时时间秒-PromptFilestringPROMPT.md自定义 Prompt 文件路径-ExitOnDoneswitchfalse检测到 done 信号后立即退出-NoCircuitBreakerswitchfalse禁用熔断器-Verboseswitchfalse输出详细调试日志-Monitorswitchfalse自动启动监控面板-Statusswitch-显示当前状态后退出-ResetCircuitswitch-重置熔断器状态-CircuitStatusswitch-查看熔断器详细状态-Helpswitch-显示帮助信息表(2) ralph-loop 参数列表4.2 核心保护机制限速控制以小时为单位追踪 API 调用次数达到上限后自动等待至下一个整点。同时追踪 Claude API 的 500 次/5 小时硬限制提前预警。熔断器Circuit Breaker模拟电气熔断器的三态模型——CLOSED正常→ HALF_OPEN试探恢复→ OPEN熔断中止。触发条件包括连续无文件变更、连续相同错误、输出量衰减超过阈值。退出检测通过正则匹配和可选的---RALPH_STATUS---结构化标记识别 Claude 的 “任务完成” 信号。累积多个信号且信心值达标后才真正退出避免误判。五、依赖环境依赖项版本要求获取方式Windows10 / 11x64-PowerShell7推荐winget install Microsoft.PowerShellClaude Code CLI最新版npm install -g anthropic-ai/claude-codeGit for Windows2.xwinget install Git.Git表(3) Windows 版 Ralph 依赖环境[作者注Windows PowerShell 5.1 理论可运行但部分 cmdlet 行为存在差异建议使用 PowerShell 7。安装完 Claude Code CLI 后需执行claude login完成认证。]六、配置文件说明6.1 项目级配置文件需用户手动编辑文件作用是否必需PROMPT.md开发指令与需求描述Claude 的执行依据必需fix_plan.md优先级任务清单Checkbox 格式Claude 按此逐一完成推荐AGENT.md构建/运行/测试命令说明推荐表(4) 用户手动编辑的配置文件6.2 .ralph_config.json 结构该文件由ralph-loop首次运行时自动生成用户可手动编辑来调整行为{max_calls_per_hour:100,loop_timeout_seconds:900,max_loops:50,circuit_breaker:{enabled:true,max_no_progress_loops:3,max_same_error_loops:5,output_decline_threshold:0.7},exit_detection:{consecutive_done_signals:2,test_only_loop_threshold:3}}表(5) .ralph_config.json 默认配置6.3 Ralph 运行时状态文件自动生成无需手动编辑文件作用.ralph_status.json当前运行状态供 ralph-monitor 读取.exit_signals.json退出信号累积记录连续 done 计数、信心值.circuit_breaker_state熔断器当前状态和计数.circuit_breaker_history熔断器状态变迁历史最近 20 次.call_count/.call_timestampAPI 小时调用计数与时间戳.five_hour_calls.json5 小时窗口调用追踪.claude_progress.json当前循环 Claude 实时输出进度表(6) Ralph 运行时自动生成的状态文件6.4 项目目录结构ralph-setup my-project执行后生成的完整目录结构my-project/ ├── PROMPT.md # 开发指令必需 ├── fix_plan.md # 任务清单 ├── AGENT.md # 构建/测试命令 ├── .ralph_config.json # Ralph 配置自动生成 ├── .gitignore # Git 忽略规则自动生成 ├── specs/ # 规格文档目录 │ └── stdlib/ ├── src/ # 源代码目录 ├── examples/ # 示例代码目录 ├── tests/ # 测试代码目录 ├── logs/ # 运行日志目录 │ ├── loop_N_*.log # 每次循环的 Claude 完整输出 │ ├── analysis.log # 循环分析摘要记录 │ ├── circuit_breaker.log # 熔断器状态日志 │ └── ralph.log # Ralph 主日志 ├── docs/ # 文档目录 │ └── generated/ └── .git/ # Git 仓库图(1) Ralph 项目目录结构七、安装与使用7.1 安装步骤# Step1克隆 Windows 版仓库git clone https://github.com/jvdsouza/windows-ralph-claude.git cd windows-ralph-claude# Step2运行安装脚本.\install.ps1# Step3重启 PowerShell 使 PATH 生效安装脚本完成以下操作①创建%USERPROFILE%\.ralph\bin\目录复制主脚本和库文件②创建%USERPROFILE%\.ralph\templates\目录复制项目模板③生成 4 个 wrapper 脚本ralph-loop、ralph-monitor、ralph-setup、ralph-import④将%USERPROFILE%\.ralph\bin\添加至用户级 PATH 环境变量。7.2 新建项目并启动# 创建项目ralph-setup my-project cd my-project# 编辑需求文件notepad PROMPT.md notepad fix_plan.md# 启动自主开发循环ralph-loop# 或启动并自动打开监控ralph-loop-Monitor-Verbose7.3 从 PRD 文档导入ralph-import my-product-spec.md my-project此命令会调用 Claude Code 分析 PRD 文档内容自动生成PROMPT.md、fix_plan.md和specs/requirements.md。7.4 PROMPT.md 示例# Project: 用户管理系统 ## 概述 构建一个 RESTful API 的用户管理系统 ## 需求 - [ ] 用户注册/登录接口 - [ ] JWT 认证中间件 - [ ] 用户 CRUD API - [ ] 数据库迁移脚本 - [ ] 单元测试覆盖率 80% ## 技术约束 - 语言: TypeScript - 框架: Express.js - 数据库: PostgreSQL - 测试: Jest7.5 fix_plan.md 示例## 高优先级 - [ ] 初始化项目结构和 npm 依赖 - [ ] 实现数据库连接和迁移脚本 - [ ] 实现用户数据模型 - [ ] 实现用户注册 API - [ ] 实现用户登录和 JWT 签发 ## 中优先级 - [ ] 添加输入验证中间件 - [ ] 编写用户模块单元测试 ## 低优先级 - [ ] 生成 Swagger API 文档 ## 已完成 - [x] 项目需求分析八、源码修改清单我们在实际部署和使用 Windows 版 Ralph 的过程中发现并修复了若干 bug 与代码质量问题。本节详细列出所有修改修改后的完整源码包随本文提供。[作者注以下修改均以 Windows 版源码仓库jvdsouza/windows-ralph-claude, 分支 claude/add-windows-support为基础。修改同时应用于源仓库文件windows-ralph-claude*.ps1和安装后的文件%USERPROFILE%.ralph\bin*_main.ps1。]8.1 ralph_loop.ps1主循环脚本4 处修改#严重程度问题描述修复方式1 致命变量名不匹配导致程序崩溃脚本参数定义为$PromptFile第 8 行但第 690 行的前置校验处误写为$PROMPT_FILE。PowerShell 中下划线使两者成为不同变量$PROMPT_FILE始终为$null导致Test-Path收到空值抛出异常。表现为运行ralph-loop即报错退出。将$PROMPT_FILE改为$PromptFile2 中等函数引用父作用域变量封装性差Invoke-ClaudeCode函数内部直接使用脚本级变量$PromptFile和$FIX_PLAN_FILE若函数被迁移至模块中将直接失效为函数新增-PromptFile和-FixPlanFile参数调用处显式传参3 中等-Verbose参数形同虚设参数已定义但脚本中无任何引用用户传入后毫无效果在配置加载和每轮循环分析两处增加if ($Verbose) { Write-Log DEBUG ... }逻辑4 低$script:RalphStartTime死代码脚本级变量已赋值但从未读取主循环开始时记录时间戳执行结束时输出总耗时分钟表(7) ralph_loop.ps1 修改清单8.2 ralph_import.ps1PRD 导入脚本6 处修改#严重程度问题描述修复方式5 中等正则表达式\n不匹配 Windows 换行符\r\n6 处文件提取正则使用了仅匹配 LF 的\n而 Windows 的Get-Content -Raw保留文件原始换行符\r\n导致 PROMPT.md、fix_plan.md、specs/requirements.md 三个文件的提取全部失败全部改为\r?\n兼容 LF 与 CRLF表(8) ralph_import.ps1 修改清单8.3 install.ps1安装脚本4 处修改#严重程度问题描述修复方式6 中等生成的 wrapper 脚本包含硬编码用户名路径安装时将$INSTALL_DIR的实际值如C:\Users\HaiMi\.ralph写死进 wrapper 脚本若安装包分发到其他机器或以其他用户身份运行会因路径不存在而失败改为$env:USERPROFILE\.ralph\bin\...运行时动态解析表(9) install.ps1 修改清单8.4 修改文件汇总文件修改项数影响范围ralph_loop.ps14核心循环变量名修复 参数化 Verbose 耗时统计ralph_import.ps16PRD 导入正则兼容性修复install.ps14安装wrapper 路径通用化表(10) 修改文件汇总[作者注除上述修改外ralph_monitor.ps1、setup.ps1、response_analyzer.ps1、circuit_breaker.ps1四个模块经审计未发现变量名或逻辑 bug。]九、注意事项① Claude Code 认证首次使用前务必执行claude login完成 Anthropic 账号认证否则 ralph-loop 无法调用 API。② API 费用ralph-loop 会持续调用 Claude API每轮消耗不等数量的 token。建议先用-MaxLoops 5 -MaxCallsPerHour 10小参数试跑确认没问题再放开限制。③ 熔断器重置若循环被熔断器中止通常是代码反复出错或 Claude 无进展使用ralph-loop -ResetCircuit重置后重新运行。④ Git 状态Ralph 通过git diff检测文件变更。确保在 git 仓库中运行且尽量不要有未跟踪的脏文件干扰判定。⑤ PROMPT.md 内容至少包含一个需求描述。如果文件为空或不存在ralph-loop 会在启动校验阶段报错退出。⑥ 与 Linux 主线版的差异主线版的ralph-enable交互式配置向导和ralph-enable-ciCI 自动化配置在 Windows 版中不存在请使用ralph-setup和ralph-import代替。主线版的 bash 安装脚本install.sh替换为 PowerShell 版的install.ps1。十、总结至此你已对 Windows 版 Ralph for Claude Code 有了完整的了解。它是一个将 Claude Code 从 “单次问答工具” 升级为 “自主开发引擎” 的桥梁——你写需求它循环执行自动停止。本文基于 Windows 版 Ralph 源码修改后撰写修复了 6 个影响正常使用的 bug含 1 个致命崩溃 bug修改后的完整代码包已随文提供。若在使用中遇到其他问题欢迎在评论区交流。
我国网络安全人才缺口现状、成因与对策研究 摘要随着数字中国建设的深入推进,网络安全已成为国家安全体系的重要组成部分。然而,我国网络安全领域面临着严峻的人才短缺问题,这直接关系到关键信息基础设施的安全防护能力、数据安全保障水平以及国家网络空间主权的维护。本文旨在系统分析… 2026/7/14 20:45:43
Windows弹窗广告清理实战:从系统工具到第三方方案 这类工具最值得先看的不是它能清理多少种广告,而是能不能在普通 Windows 环境下稳定运行、不误删系统文件、清理后不反弹。很多号称“一键清理”的工具,要么清理不彻底,要么自己就是弹窗来源。我更建议把第一次使用拆成三步:先确认… 2026/7/14 20:43:42
2026年AI论文助手横评:5款主流工具,谁才是性价比之王? 一句话答案:综合生成、降重、去AI痕迹、排版全链路来看,毕业之家ai(www.biye.com) 在性价比上一骑绝尘,是学生党的首选 AI论文助手。一、为什么需要一款好用的AI论文助手论文写作环节繁多——选题、开题、综述、正文、降重、排版、… 2026/7/14 20:41:42
ChatGPT接入方案怎么选?LLM部署成本、延迟、合规性——三维度量化对比表(含实测TPS与Token损耗数据) 更多请点击: https://intelliparadigm.com 第一章:ChatGPT接入方案怎么选?LLM部署成本、延迟、合规性——三维度量化对比表(含实测TPS与Token损耗数据) 选择合适的ChatGPT接入方案,需在真实生产环境中对关… 2026/7/15 0:33:10
计算机毕业设计之jsp小学生作业帮平台的设计与实现 随着信息化时代的到来,管理系统都趋向于智能化、系统化,小学生作业帮平台也不例外,但目前国内的有些学校仍然都使用人工管理,学校规模越来越大,同时信息量也越来越庞大,人工管理显然已无法应对时代的变化&a… 2026/7/15 0:31:10
Python asyncio 深度并发:驾驭大模型调用的“车水马龙” 如果你正在用 FastAPI 构建一个 AI 应用,大概率会遇到这样的场景:用户发来一个问题,你需要同时调用 3 个大模型接口(比如让 GPT-4 写文案、让 Claude 做润色、让文心一言做翻译),最后把结果拼在一起。最笨的… 2026/7/15 0:27:09
Copilot团队管理功能落地全图谱(从权限配置到效能看板):微软内部PM未公开的7条黄金规则 更多请点击: https://codechina.net 第一章:Copilot团队管理功能全景概览 GitHub Copilot 的团队管理功能为组织级开发协作提供了统一策略配置、成员权限控制与使用洞察分析能力,覆盖从开发者准入到资源配额分配的全生命周期管理。该功能依托… 2026/7/15 0:23:09
为什么 AI 总是“一本正经地胡说八道”?大模型幻觉终于讲明白了 你问 AI:“这句话出自哪本书?”它给出书名、作者、出版社,甚至精确到页码。你满心欢喜地去查,却发现书里根本没有这句话。更令人困惑的是,它的语气没有一丝犹豫。这不是 AI 在故意撒谎,而是大模型最典型、也… 2026/7/15 0:21:08
这个GitHub工具太狠了,一键把网站搬回家,断网照样用! 你有没有遇到过这种情况——在飞机上、地铁里,信号全无,想翻之前收藏的一个网页,死活打不开。这时候你就想,要是能把整个网站”搬”到本地该多好。还真有人做了这么个工具。叫 kage,一个越南老哥用 Go 写的。原理说起来… 2026/7/15 0:17:07
行星减速机的工作原理是什么?从齿轮运动关系到减速比计算 一、行星齿轮机构的组成 标准行星齿轮机构主要包括: 太阳轮; 行星轮; 内齿圈; 行星架。 太阳轮位于机构中心。 多个行星轮围绕太阳轮均匀布置,行星轮内侧与太阳轮外啮合,外侧与内齿圈内啮合。 行星轮通过轴… 2026/7/15 0:03:00
阅读Java开源框架源码的心得分享! 前几日闲来无事有幸看到了一位博主分享自己阅读开源框架源码的心得,看了之后也引发了我的一些深度思考。我们为什么要看源码?我们该怎么样去看源码? 其中前者那位博主描述的我觉得很全了(如下图所示),就不做… 2026/7/15 0:03:00
【LINUX】驱动 【LINUX驱动】【字符设备】【中断】【Platform】【网课 设备树】【GPIO】【PINCTRL】【INPUT】【IIC】【SPI】【网络驱动】【屏幕驱动】【一 设备树】【二 内核模块编译】【三 基本驱动框架】【四 Platform总线设备驱动框架】【五 驱动子系统】【六 综合】 2026/7/15 0:07:01
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/13 8:31:55
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/14 18:25:04
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/14 5:09:41