
Loop Engineering描述的问题非常真实很多 AI Agent 不是输在“模型不会回答”而是输在只会回答一次做错了不知道怎么继续工具调用失败了只会重试任务没有停止条件越跑越乱。如果说 Prompt Engineering 关注“怎么问模型”Context Engineering 关注“给模型什么上下文”那么 Loop Engineering 关注的是如何把 AI Agent 设计成一个可以规划、执行、观察、评估、修正并安全停止的闭环系统。Loop Engineering 视觉摘要从一次性回答到反馈闭环文章目录一、为什么需要 Loop Engineering二、Loop Engineering 的一句话定义三、别把 Loop Engineering 等同于“多试几次”四、一个最小可用的 Agent Loop 模板五、Loop State没有状态就没有真正的闭环六、Observe工具返回值不是结果解释后的信息才是观察七、Evaluate不要让模型自己宣布自己成功八、Repair失败后不是重试而是分类纠错九、Stop ConditionLoop 最大的风险是停不下来十、三个真实场景下的 Loop 设计1. 写代码 Loop2. RAG 幻觉治理 Loop3. 内容质量优化 Loop十一、Loop Engineering 和 Prompt Engineering 的区别十二、落地检查清单十三、最容易踩的 5 个坑一句话结论一、为什么需要 Loop Engineering很多人第一次做 Agent会把流程写成这样用户输入 → 大模型生成答案 → 返回结果这适合问答但不适合执行任务。真实业务里的 Agent 经常遇到这些情况场景一次性回答的问题需要 Loop 的原因写代码代码看起来对但测试失败要读取报错、定位原因、修改、再测试RAG 问答答案流畅但证据不支持要重新检索、交叉验证、拒答或追问工具调用API 返回 500 或字段缺失要区分临时错误、参数错误、权限错误自动运维指标异常但原因不确定要观察日志、指标、变更记录并逐步收敛内容生成初稿完整但质量分不高要根据结构、深度、可读性反馈迭代所以 Agent 工程的关键不是让模型“想得更多”而是让它做完一步后知道下一步该干什么。这就是 Loop Engineering 的价值。二、Loop Engineering 的一句话定义可以把 Loop Engineering 定义为面向 AI Agent 和自动化系统的反馈闭环设计方法通过状态管理、工具执行、外部观察、评估信号、纠错策略和停止条件让模型从“一次性生成”升级为“可迭代完成任务”。它解决的不是“模型会不会说”而是任务怎么拆成多轮步骤每一轮执行后如何判断结果失败后应该重试、换策略、降级还是问人什么情况下必须停止如何避免 Agent 自己陷入无限循环。一个典型 Loop 长这样Goal → Plan → Act → Observe → Evaluate → Reflect/Fix → Stop or Continue中文可以理解为目标 → 计划 → 执行 → 观察 → 评估 → 修正 → 停止或继续三、别把 Loop Engineering 等同于“多试几次”很多项目里的所谓 Agent Loop本质上只是foriinrange(5):answerllm(prompt)iflooks_good(answer):break这不是 Loop Engineering只是重复调用。真正的 Loop 至少要回答四个问题问题错误做法工程化做法为什么继续因为还没满意因为某个评估指标未通过下一步做什么让模型自己猜根据失败类型选择动作记住什么什么都不记保存状态、尝试历史、证据和错误何时停止跑到次数耗尽成功、失败、风险升级、人工接管Loop Engineering 的重点不是“循环”而是有反馈、有状态、有边界的循环。Loop 架构图状态、工具、观察、评估和人工门禁四、一个最小可用的 Agent Loop 模板下面是一个工程上更容易落地的最小 Loop 模板fromdataclassesimportdataclass,fieldfromtypingimportAnydataclassclassLoopState:goal:strplan:list[str]field(default_factorylist)evidence:list[dict]field(default_factorylist)actions:list[dict]field(default_factorylist)errors:list[str]field(default_factorylist)iteration:int0status:strrunning# running / success / failed / need_humanMAX_ITERATIONS6defagent_loop(state:LoopState):whilestate.statusrunning:state.iteration1ifstate.iterationMAX_ITERATIONS:state.statusneed_humanstate.errors.append(超过最大循环次数停止自动执行)breakstepplan_next_step(state)resultexecute_step(step,state)state.actions.append({step:step,result:result})observationobserve_result(result)evaluationevaluate_observation(observation,state)ifevaluation[passed]:state.statussuccessbreakifevaluation[risk]high:state.statusneed_humanbreakstaterepair_state(state,evaluation)returnstate这个模板里有几个关键点LoopState保存当前任务状态MAX_ITERATIONS限制循环次数evaluate_observation提供外部评估高风险情况进入need_human而不是继续自动执行每一轮行动都记录下来方便复盘。五、Loop State没有状态就没有真正的闭环很多 Agent 失败是因为每一轮都像重新开始。Loop State 至少要保存这些内容状态字段作用goal当前任务目标防止跑偏plan任务拆解和当前步骤evidence已找到的证据、日志、检索结果actions已执行过的工具调用和参数errors已出现的错误和失败原因constraints用户约束、安全边界、禁止动作iteration当前循环次数statusrunning / success / failed / need_human如果没有状态Agent 很容易出现三类问题重复尝试同一个错误方案反复执行证据丢失前一轮查到的信息后一轮不用目标漂移修 A 问题时顺手改了 B 模块。一个更完整的状态可以这样设计{goal:修复订单退款接口的单测失败,constraints:[不能改数据库结构,不能跳过测试],current_step:分析失败日志,tried_actions:[{action:run_test,result:failed,error:status_code expected 200 got 409}],hypotheses:[退款状态机缺少处理中分支],evidence:[test_refund_pending_case,refund_state_machine.py],iteration:2,status:running}六、Observe工具返回值不是结果解释后的信息才是观察Agent 调用工具后不能只把原始输出塞回模型。比如运行测试后工具返回的是一大段日志但 Loop 需要的是结构化观察{tool:pytest,passed:false,failed_cases:[test_refund_pending_order],error_type:assertion_error,key_message:expected 200 but got 409,suspected_module:refund_state_machine}观察层的作用是把原始结果变成可决策信息。常见观察类型包括工具/场景原始输出观察结果测试工具日志、堆栈哪个 case 失败、错误类型、可能模块RAG 检索文档片段是否覆盖关键事实、是否冲突API 调用状态码、响应体参数错、权限错、服务错还是限流监控系统指标曲线是否异常、异常窗口、关联变更内容评分分数和规则哪些维度弱、是否需要重写没有 Observe 层Agent 很容易把“看见了输出”误当成“理解了结果”。评估与纠错闭环失败不是重试而是分类处理七、Evaluate不要让模型自己宣布自己成功Loop Engineering 里最重要的一点是评估信号要尽量外部化。比如写代码不能只问模型你觉得代码修好了吗而应该运行pytest tests/test_refund.py-qRAG 问答不能只看答案是否流畅而要检查是否引用了证据证据是否真的支持结论是否出现无证据断言证据之间是否冲突高风险问题是否触发确认。一个评估结果可以设计成{passed:false,score:0.72,failed_rules:[missing_evidence_for_refund_policy,tool_call_without_confirmation],risk:high,next_action:ask_human}评估层决定 Loop 是继续、修正、失败还是人工接管。八、Repair失败后不是重试而是分类纠错失败后的处理策略决定了 Loop 是工程系统还是随机游走。推荐把失败分成几类失败类型例子推荐策略临时错误网络超时、502有上限地重试参数错误API 字段缺失修参数不重试原请求权限错误403、无 token停止并请求授权证据不足RAG 没召回关键规则换查询、扩展检索或追问目标冲突用户要求和系统规则冲突停止并解释高风险动作删除、付款、重启、发消息必须人工确认可以写成一个简单的修复路由器defchoose_repair_strategy(evaluation):error_typeevaluation.get(error_type)riskevaluation.get(risk)ifriskhigh:returnask_humaniferror_typein[timeout,rate_limit]:returnretry_with_backoffiferror_typebad_argument:returnfix_argumentsiferror_typemissing_evidence:returnretrieve_moreiferror_typepermission_denied:returnstop_and_request_authreturnstop_with_reason这比“失败就再来一次”可靠得多。停止条件检查卡成功、失败、风险和预算九、Stop ConditionLoop 最大的风险是停不下来Loop Engineering 一定要把停止条件写清楚。常见停止条件有四类停止类型触发条件结果成功停止测试通过、评估达标、用户确认输出结果失败停止明确不可完成、依赖缺失给出失败原因风险停止涉及高风险动作或权限不足请求人工确认预算停止次数、时间、成本达到上限汇报当前进展建议每个 Agent Loop 至少配置loop_policy:max_iterations:6max_tool_calls:20max_minutes:15stop_on_high_risk:truerequire_human_for:-payment-deletion-publish-restart_service-external_message如果没有停止条件Agent 可能会一直重试同一个错误为了完成任务越权调用工具把小问题扩大成大范围改动消耗大量 token 和 API 费用。十、三个真实场景下的 Loop 设计1. 写代码 Loop读取需求 → 定位相关文件 → 修改代码 → 运行测试 → 分析失败日志 → 修复 → 再测试 → 通过后总结变更关键评估信号测试结果、lint、类型检查、代码 diff。停止条件测试通过超过次数改动范围超出预期需要产品确认。2. RAG 幻觉治理 Loop用户问题 → 风险识别 → 检索证据 → 生成带引用答案 → 校验证据是否支持结论 → 不支持则重新检索/拒答/追问关键评估信号证据召回率、引用准确率、无证据断言比例。停止条件证据足够证据冲突问题超出知识库高风险动作需要确认。3. 内容质量优化 Loop生成初稿 → 检查标题、结构、案例、代码、图表 → 找出薄弱项 → 局部重写 → 再评分 → 达标后保存草稿关键评估信号结构完整度、原创洞察、工程可复现、读者收益、平台质量分。停止条件达到目标分多轮无提升主题本身平台识别弱需要人工反馈。十一、Loop Engineering 和 Prompt Engineering 的区别维度Prompt EngineeringLoop Engineering关注点单次输入怎么写多轮任务怎么闭环核心对象Prompt状态、工具、评估、停止条件成功标准回答更好任务完成且可验证主要风险提示词不清楚无限循环、越权、错误重试典型产物Prompt 模板Loop Policy、State、Evaluator、Repair RouterPrompt Engineering 仍然重要但它只是 Loop 里的一个组件。一个成熟 Agent 往往需要Prompt Engineering Context Engineering Tool Engineering Loop Engineering Evaluation Engineering其中 Loop Engineering 负责把这些能力串成可执行闭环。十二、落地检查清单如果你正在做一个 Agent可以用下面这张清单自检检查项是否具备任务目标是否结构化保存✅ / ❌每一轮是否记录执行动作和结果✅ / ❌工具输出是否被解析成观察对象✅ / ❌是否有外部评估信号而不是模型自评✅ / ❌失败是否按类型选择修复策略✅ / ❌是否限制最大循环次数和工具调用次数✅ / ❌高风险动作是否必须人工确认✅ / ❌是否能解释为什么停止✅ / ❌是否把失败样本沉淀到评估集✅ / ❌如果这些问题大部分是“否”那这个 Agent 还只是一个会调用工具的聊天机器人。十三、最容易踩的 5 个坑把 Loop 写成无限 while没有次数、时间和成本上限迟早会失控。失败只会重试参数错、权限错、证据不足不能用同一种策略处理。让模型自己判断成功没有测试、评分、证据校验成功只是幻觉。不保存尝试历史Agent 会忘记自己刚刚失败过又走回老路。高风险动作不设门禁Loop 一旦能调用真实工具安全边界比回答质量更重要。一句话结论Loop Engineering 的核心不是“让 Agent 多跑几轮”而是设计一套有目标、有状态、有观察、有评估、有纠错、有停止条件的反馈闭环。只有这样AI Agent 才能从一次性回答问题走向可验证、可复盘、可安全交付的任务执行系统。