news 2026/5/7 9:59:07

Easy-Vibe高级开发篇阅读笔记(四)——CC教程之如何让 Claude Code 长时间工作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Easy-Vibe高级开发篇阅读笔记(四)——CC教程之如何让 Claude Code 长时间工作

阅读原文:如何让 Claude Code 长时间工作

一、本章核心学习目标

  • 理解 AI 编程助手过早停止的核心原因,掌握长任务的迭代解决原理
  • 学会使用 Ralph Wiggum 官方插件,实现自动化的长任务迭代
  • 掌握长任务的 Prompt 编写技巧,定义明确可验证的完成标准
  • 了解不同长任务方案的适用场景,学会根据任务选择合适的工具
  • 掌握安全防护机制,防止无限循环和 API 成本失控

二、引言:为什么我们需要长任务?

传统的 AI 编程助手是 “对话式” 的 —— 你说一句,它回一句,然后停下了。但对于真正的开发任务来说,这种模式远远不够:

  • 重构整个项目,写完几个文件就说 “我完成了”
  • 持续修复 bug 直到测试全部通过,但它跑一次就停下来
  • 想让 AI “过夜干活”,但第二天发现它早就停了

2025 年夏天,澳大利亚开发者 Geoffrey Huntley 写了一个 5 行的 bash 脚本,不断重启 Claude Code 并喂给它同样的任务,命名为 “Ralph Wiggum”。这个项目在 GitHub 两周内获得 7,000+ 星标,人们用它:

  • 一晚上生成 6 个完整项目,$297 的 API 成本完成 $50,000 的合同
  • 3 个月内构建了一门完整的编程语言

三、核心原理:为什么 AI 会 “过早停止”?

3.1 AI 的 “完成判断” 不可靠

LLM 有一个根本缺陷:它无法准确判断自己的工作是否真正完成。

  • 人类的完成标准是客观的:所有测试通过、功能完整可用、代码质量达标
  • AI 只能基于 “感觉” 来判断:觉得 “看起来差不多了”、“输出够多了” 就停下

3.2 解决方案的核心思想

解决方案的核心是:让 AI 在一个 “循环” 中工作。

每次它想退出时,外部系统会检查三个问题 —— 真的完成了吗?符合客观标准了吗?还有没有遗漏?如果没有,就重新注入任务,继续下一轮。


四、方法一:While True Bash Loop(最原始的方法)

这是最简单、最直接的实现方式,本质上就是写一个无限循环,每次循环都重新启动 Claude Code 并喂给它同样的任务描述。

4.1 最简实现

最简单的实现只需要 5 行代码:

#!/bin/bashwhiletrue;docatPROMPT.md|claudedone

4.2 工作原理

  1. 读取 PROMPT.md 文件中的任务描述

  2. 启动 Claude Code 并将任务描述传递给它

  3. Claude 开始工作并输出结果

  4. Claude 完成后退出

  5. 循环自动重新启动,直到手动按 Ctrl+C 中断

4.3 优缺点

维度说明
优点极其简单,无需配置,立即可用,适合快速实验
缺点无法判断任务是否真的完成,可能无限空转,没有安全保护

4.4 安全改进版

为了避免无限循环,可以添加迭代次数限制:

#!/bin/bashMAX_ITERATIONS=50iteration=0whiletrue;doiteration=$((iteration+1))echo"=== 迭代$iteration/$MAX_ITERATIONS==="catPROMPT.md|claudeif[$iteration-ge$MAX_ITERATIONS];thenecho"达到最大迭代次数,停止"breakfisleep5# 稍作等待,避免 API 限流done

五、方法二:Ralph Wiggum Plugin(官方推荐)

Ralph Wiggum 是 Anthropic 官方推出的插件,专门解决长时间任务问题,象征着 “尽管失败,仍坚持尝试” 的精神。

5.1 核心机制:Stop Hook

Ralph 的核心机制是 Stop Hook:

  1. 当 Claude 想要退出时,Stop Hook 会拦截这个退出信号

  2. 系统检查:输出了特定的完成标记吗?

  3. 如果没有找到完成标记,就重新注入原始 prompt,开始下一轮迭代

  4. 如果找到了完成标记,才允许 Claude 退出

5.2 安装方法

方式一:通过官方插件市场安装(推荐)

# 在 Claude Code 中运行claude# 添加官方插件市场/plugin marketplaceaddanthropics/claude-code# 安装 Ralph Wiggum/plugininstallralph-wiggum@claude-code-plugins# 验证安装/plugin

方式二:直接从 GitHub 安装

# 进入插件目录cd~/.claude/plugins/# 克隆插件仓库gitclone https://github.com/anthropics/ralph-wiggum-plugin.git

5.3 基本使用

基本使用方式是通过/ralph-wiggum:ralph-loop命令:

/ralph-wiggum:ralph-loop"构建一个待办事项 API,包含 CRUD 操作、输入验证、测试。 全部完成后输出 <promise>COMPLETE</promise>"--max-iterations50--completion-promise"COMPLETE"

关键参数说明

  • --max-iterations:最大迭代次数,安全机制,推荐 20-100 之间
  • --completion-promise:完成标记文本,明确唯一的标识,比如COMPLETE

5.4 Prompt 编写最佳实践

不好的 Prompt 没有明确的完成标准,AI 可能写个基础框架就说完成了。好的 Prompt 应该:

  1. 分阶段描述任务,明确每一步要做什么

  2. 列出详细的验收标准,比如测试通过、类型检查通过

  3. 指定唯一的完成标记,让 Ralph 能判断任务结束

5.5 常用 Prompt 模板

模板 1:测试迁移(Jest → Vitest)

/ralph-wiggum:ralph-loop " 将项目中所有测试从 Jest 迁移到 Vitest: - 保持所有测试逻辑不变 - 更新配置文件(vite.config.js、vitest.config.js) - 替换 Jest 特有的 API(如 jest.mock → vi.mock) - 确保所有测试通过 - 移除 Jest 相关依赖 验收标准: - npm test 全部通过 - package.json 中无 jest 依赖 - 项目能正常构建 完成后输出:<promise>VITEST_MIGRATION_COMPLETE</promise> " --max-iterations 40 --completion-promise "VITEST_MIGRATION_COMPLETE"

模板 2:UI/UX 优化(移动端优先)

/ralph-wiggum:ralph-loop " 把这个项目的 UI/UX 做得更像一款精致的、移动端优先的语言学习 App: - 统一间距与留白(使用 4px 基础单位) - 建立清晰的字体层级(标题/正文/辅助信息) - 统一卡片、列表等组件样式 - 添加底部导航(Home/Learn/Quiz/Progress/Settings) - 确保在移动设备上显示良好 验收标准: - npm run build 成功 - 无 TypeScript 错误 - 主要页面在移动端预览正常 完成后输出:<promise>UI_UX_COMPLETE</promise> " --max-iterations 25 --completion-promise "UI_UX_COMPLETE"

模板 3:批量添加 TypeScript 类型

/ralph-wiggum:ralph-loop " 给项目中所有函数添加 TypeScript 类型注解: - 优先处理 src/ 目录 - 为函数参数和返回值添加类型 - 避免使用 any,使用具体类型或 unknown - 添加必要的类型定义 验收标准: - npm run typecheck 通过 - 无 @ts-ignore 或 @ts-any 注释 - 代码能正常运行 完成后输出:<promise>TYPES_ADDED</promise> " --max-iterations 30 --completion-promise "TYPES_ADDED"

5.6 实战案例

  • YC 黑客松案例:晚上 11 点设置任务,第二天醒来得到 6 个可演示项目,API 成本仅 $297
  • Boris Cherny 案例:Claude Code 负责人用 Ralph 30 天提交 259 个 PR,新增 4 万行代码,全程无人工编码
  • CURSED 编程语言:用 Ralph 在 3 个月内自主构建了一门完整的编程语言,包含 LLVM 编译器
  • 遗留项目重构:周末运行 Ralph,周一回来项目完成 47 次提交,测试覆盖率达到 75%,成本约 $12

5.7 Ralph 的哲学

  • 迭代大于完美:不要指望一次就完美,每次循环都比上一次更好
  • 失败是数据:每次测试失败都是改进的机会,不要害怕失败
  • 持续尝试:Keep trying until it works,这就是 Ralph 的精神

5.8 适用场景判断

✅ 适合使用 Ralph 的场景

场景原因
测试迁移有明确目标,测试通过即可验证
大规模重构可以定义具体的重构规则
框架迁移迁移完成后代码能正常运行
批量添加类型typecheck 通过即完成
测试覆盖率提升覆盖率百分比是客观指标
文档生成API 文档可以自动验证
Bug 修复(有复现步骤)测试通过即修复成功

❌ 不适合使用 Ralph 的场景

场景原因
架构设计决策微服务 vs 单体需要权衡
安全相关代码安全漏洞可能很隐蔽
需求模糊的任务没有明确完成标准
探索性工作需要不断调整方向
创意性设计需要人类审美判断
简单一次性任务使用 Ralph 是浪费

判断标准

  1. 我能定义明确的完成标准吗?

  2. 有客观的验证方法吗?(测试、构建、类型检查)

  3. 这个任务需要我持续反馈吗?
    如果三个答案都是 “否”,那就放手让 Ralph 去做吧!


六、方法三:增强版 Ralph(社区优化)

这是社区对官方 Ralph 的增强实现,在 GitHub 上的frankbria/ralph-claude-code项目,增加了更多安全机制。

6.1 额外特性

  • 双重退出条件:需要同时满足完成标记和显式 EXIT_SIGNAL 才会停止
  • 速率限制功能:默认 100 次 / 小时,防止 API 账单爆炸
  • 智能熔断器:连续 5 次检测到完成标记就强制退出
  • 实时仪表盘:显示迭代次数、进度、预估成本

6.2 安装与使用

gitclone https://github.com/frankbria/ralph-claude-code.gitcdralph-claude-code ./install.sh# 初始化项目ralph-setup my-project# 启动循环ralph loop

6.3 配置文件

{"maxIterations":50,"rateLimitPerHour":100,"completionPromise":"TASK_COMPLETE","exitSignal":"EXIT_NOW","costAlertThresholds":[10,50,100]}

七、方法四:Agent Teams(多代理并行)

当任务足够大时,单个 Claude 不够用,需要 “团队协作”。

Agent Teams 允许多个 Claude 实例并行工作,通过共享任务列表协调依赖关系。这适合超大型项目,比如 Nicholas Carlini 的实验中,16 个并行 Agent 在 2 周内编写了 100,000+ 行代码,构建出一个能编译 Linux 内核的 C 编译器。


八、方法五:后台任务(Ctrl+B)

这是一个简单但实用的非阻塞执行方法,适合短时间的长任务。

8.1 基本操作

当 Claude 开始运行一个任务时,你可以按Ctrl+B把它推送到后台。比如:

  1. 你说:“运行完整测试套件”

  2. Claude 开始运行

  3. 你按Ctrl+B,Claude 会返回:“任务已推送到后台(ID: task_abc123)”

  4. 然后你可以继续让 Claude 帮你分析日志,同时测试在后台运行

8.2 查看后台任务

  • 使用/tasks命令可以列出所有后台任务
  • Ctrl+T可以快速查看任务状态的摘要
  • 可以把后台任务恢复到前台,查看实时输出

8.3 适用场景

  • 长时间运行的测试
  • 大型项目构建
  • 批量文件处理
  • 任何你不想等待的事情

九、安全机制:防止无限循环

任何自动循环系统都必须有安全保护,否则可能出现失控的情况。

9.1 硬性限制

最基本的保护是设置最大迭代次数,无论任务是否完成,达到这个次数后都会停止,防止无限循环消耗 API 额度。你还可以设置时间限制,比如最长运行 4 小时后自动停止。

9.2 智能检测

可以添加智能检测来发现死循环,比如检查最近几次提交有没有实质变化:

if[$(gitdiffHEAD~5|wc-l)-eq0];thenecho"最近 5 次提交没有实质变化,可能陷入循环"exit1fi

9.3 成本预警

配置成本预警阈值,当花费达到一定金额时暂停并通知你:

{"costAlertThresholds":[10,50,100],"alertAction":"pause_and_notify"}

十、本章总结

长任务技术让 Claude Code 从对话式助手,变成了可以 24 小时工作的数字员工:

  1. 核心原理:用外部循环解决 AI 完成判断不可靠的问题,让 AI 持续迭代直到任务真正完成

  2. 主流方案:从简单的 bash 循环,到官方的 Ralph 插件,再到社区增强版,满足不同需求

  3. 关键技巧:定义明确的完成标准、写好分阶段的 Prompt、设置安全防护机制

  4. 无限可能:你可以让 AI 过夜干活,周末自动重构,甚至用几个月时间构建复杂项目

掌握了长任务,你就能把 Claude Code 的能力发挥到极致,真正实现用自然语言完成从开发到重构、从测试到部署的全流程自动化。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/7 9:59:01

Python自动化办公⑱|微信消息自动发送:定时给客户/群发消息,不用盯着手机

Python自动化办公⑱|微信消息自动发送:定时给客户/群发消息,不用盯着手机 📌 作者:专注Python自动化,分享实用的办公效率提升技巧 📅 更新时间:2026年4月 🔥 适合人群:需要通过微信联系客户的销售/运营/客服 前言:微信自动化的需求 每天早上9点自动给客户发问候消…

作者头像 李华
网站建设 2026/5/7 9:55:45

AI专著写作新趋势:借助AI工具,20万字专著轻松一键生成

学术专著写作现状与挑战 学术专著的写作并不仅仅在于“能写出来”&#xff0c;更重要的是“能顺利出版、为人认可”。在如今的出版市场中&#xff0c;学术专著的受众相对较小&#xff0c;出版社对选题的学术价值和作者的学术影响力都有严格的要求。即使完成了初稿的书稿&#…

作者头像 李华
网站建设 2026/5/7 9:55:44

用FineBI的DEF+EARLIER函数组合,手把手复刻一个漏斗转化率分析模型

用FineBI的DEFEARLIER函数组合构建电商用户漏斗分析模型 漏斗分析是用户行为分析中最经典的模型之一&#xff0c;它能清晰展示用户在关键路径上的转化与流失情况。对于电商平台来说&#xff0c;从首页浏览、商品详情页查看、加入购物车到最终支付成功&#xff0c;每个环节的用户…

作者头像 李华
网站建设 2026/5/7 9:47:48

别再搞混了!Qt按钮的clicked和toggled信号,用这个例子一次讲透

Qt按钮信号终极指南&#xff1a;从clicked与toggled的误用陷阱到实战决策树 在Qt开发中&#xff0c;按钮控件看似简单却暗藏玄机。许多开发者都曾陷入这样的困境&#xff1a;明明点击了按钮&#xff0c;界面状态却出现异常跳变&#xff1b;或者切换功能时&#xff0c;状态反馈与…

作者头像 李华
网站建设 2026/5/7 9:46:27

具身机器人日租金降至3000元,租赁泡沫下产业如何破局?

具身机器人日租金降至3000元&#xff0c;租赁业务泡沫下产业如何破局&#xff1f;具身机器人的日租金&#xff0c;从数万元降到3000元区间&#xff0c;价格下降引发诸多猜测&#xff0c;如产能过剩、生不逢时、技术瓶颈等&#xff0c;但这些观点并不完全正确。一方面&#xff0…

作者头像 李华