Ralph loop 是让Agent在“执行—检查—反馈”之间反复推进任务的一种循环做法。关键不是不断重复同一个要求,而是每轮读取上一轮的具体结果,并同时设置完成条件、无进展条件和费用上限。下面用修复一个测试失败的任务说明如何正确停止。
一轮循环需要什么输入?
| 输入 | 示例 |
|---|---|
| 目标 | 修复指定模块的日期解析问题 |
| 当前证据 | 失败测试名、报错和相关文件 |
| 完成条件 | 原失败测试及相关回归检查通过 |
| 停止条件 | 最多5轮;连续2轮无新进展;预算超限 |
任务范围必须比“把项目修好”更具体。每轮应能回答:改了什么、检查了什么、失败是否改变。模型自称完成不能充当检查结果。
带退出条件的伪代码
rounds = 0
no_progress = 0
while rounds < 5 and spent < budget:
result = run_agent(goal, last_check)
check = run_selected_tests()
if check.passed:
return deliver(result, check)
no_progress = no_progress + 1 if check.same_as_previous else 0
if no_progress >= 2:
return stop_with_evidence(check)
last_check = check
rounds += 1
return stop_with_evidence(last_check)这是控制逻辑示意,不是某款Ralph插件的安装指令。真正接入时,run_agent、测试命令和费用读取都需要映射到你使用的工具。不要把伪代码当成已跑通的产品脚本。
怎样判断没有进展?
第一轮与第二轮都报同一个缺依赖错误,而代码修改与错误无关,就应停下补运行条件。相反,失败测试从三个减少到一个,可能仍在推进。可以记录失败签名、修改差异和检查结果,避免只按输出字数判断进展。
循环费用怎样算?
假设每轮模型和工具合计0.20元,五轮上限是1元;若每轮处理的上下文不断增大,这个固定单价假设就失效。实际实现应累计账单计量,预算按运行总额控制。这里的金额仅用于说明计算,非任何厂商报价。
与 GitHub Agentic Workflows 是同一件事吗?
不是。循环是控制模式,GitHub Agentic Workflows是具体产品能力,是否可用、权限怎样配置应查其当前文档。先选定工具,再把明确的目标、检查和退出逻辑接进去,不能仅因为它们都带“Agentic”就混用配置。
继续阅读
Harness Engineering 是什么?Agent 执行、检查与重试机制图解;AI Agent 怎么评测?任务成功率、误报率与评估表模板
资料与更新说明
资料核验于2026年10月22日。下列演示输入、费用算例和任务拆分由本文设计;未标明实测的外部模型调用不代表本次已运行。产品开放范围与费用以官方当前页面及账号为准。