游乐游手机版
首页/AI教程/文章详情

Loop Engineering让AI从回答问题到持续执行

时间:2026-06-19 14:16
AI协作方式从PromptEngineering、ContextEngineering到HarnessEngineering逐步升级。LoopEngineering作为更高层级,设计AI在多轮反馈中持续执行的循环系统,包含目标、触发、策略、状态、验证、终止、监督七个要素,使AI在可控边界内自主迭代,而非无限运行。

Loop Engineering:让 AI 从回答问题走向持续执行

过去几年,人和AI协作的方式一直在悄悄升级。

一开始,大家关注的是Prompt Engineering:怎么把问题问清楚,怎么让模型给出更准确的答案。后来任务复杂起来,焦点转移到了Context Engineering:怎么让模型看到正确的信息,记住项目背景、用户偏好和历史决策。再往后,AI不再只是生成文本,它能调用工具、读写文件、执行命令、访问外部系统了,于是Harness Engineering变得重要:怎么给AI搭建一个安全、可靠、可观测的工具环境。

但当AI真正开始承担工程任务时,一个更本质的问题浮现了出来:

  • 测试失败后,它能不能自己分析原因、修改代码、再次验证?
  • CI还没跑完时,它能不能等待一段时间后恢复任务?
  • 研究一个复杂问题时,它能不能不断搜索、排除、归纳、交叉验证?
  • 做长期维护时,它能不能定期检查状态,并在发现异常时自动响应?
  • 如果任务进入高风险区域,它能不能知道该停下来交给人?

这些问题已经远远超出了单次提示词、上下文组织或工具调用的范畴。它们指向的是一个更外层的工程问题:如何设计AI的持续执行循环。

这就是我们今天要聊的——Loop Engineering(循环工程)

2. 什么是 Loop Engineering?

简单说,Loop Engineering 是一种设计AI自主迭代执行模式的工程方法论。

它关注的不是“某一次AI调用是否足够聪明”,而是一个AI系统能否在明确目标、有限资源和安全边界内,持续完成以下动作:

观察状态 → 规划下一步 → 执行动作 → 验证结果 → 更新状态 → 判断是否继续

一个成熟的Loop Engineering系统,通常包含七个关键要素:

要素要解决的问题
目标循环到底要完成什么?
触发什么时候启动下一轮?
策略每一轮如何决定下一步?
状态哪些信息需要跨轮次保存?
验证如何判断动作真的有效?
终止什么情况下停止、失败或升级?
监督哪些节点需要人类介入?

所以,Loop Engineering 不是让AI无限自动运行,而是让AI在可控边界内持续推进任务。

一句话概括:它是给AI装上“方向盘”和“刹车”,而不是让它撒开腿乱跑。

3. 与其他 AI 工程方法论的区别

Loop Engineering 并不是要取代Prompt Engineering、Context Engineering或Harness Engineering。它更像是站在它们之上的一层,把单次能力组织成持续执行的系统。

维度Prompt EngineeringContext EngineeringHarness EngineeringLoop Engineering
核心问题如何说清楚让AI看见什么让AI能做什么如何持续做下去
关注焦点单次输入质量信息选择与组织工具、权限、运行环境迭代、反馈、状态和终止
时间尺度单轮交互一个会话或任务长期可用的工具系统跨轮次、跨时间窗口
AI 角色回答者有上下文的协作者可调用工具的执行者可持续推进任务的袋里人
人类角色提问者上下文提供者工具和边界设计者目标设定者、监督者、最终裁决者
典型产物提示词模板RAG、记忆、上下文策略工具封装、沙箱、工作流循环策略、状态机、检查点、终止规则
主要风险表达不清信息缺失或污染权限失控、工具副作用循环漂移、错误累积、资源耗尽

它们的关系可以理解为:

Loop Engineering
    └── Harness Engineering
        └── Context Engineering
            └── Prompt Engineering

3.1 Prompt Engineering:优化一次调用

Prompt Engineering 关心的是如何让模型在一次调用中更准确地理解任务。典型问题包括:角色怎么设定?任务怎么描述?输出格式怎么约束?是否需要示例?是否需要分步推理?

请你作为资深代码审查专家,审查下面这段代码,并按“问题 / 风险 / 建议”输出。

它解决的是“这一问怎么问得更好”。

3.2 Context Engineering:管理模型的视野

Context Engineering 关心的是模型应该看到哪些信息。典型问题包括:哪些文件、日志、文档、历史决策需要放进上下文?哪些信息应该检索,哪些应该摘要?上下文窗口有限时,哪些内容优先保留?多轮对话后,如何避免关键信息丢失?

加载项目 README、相关源码、最近一次失败的测试日志、团队编码规范和历史修复记录。

它解决的是“AI应该基于什么信息判断”。

3.3 Harness Engineering:给 AI 配工具和边界

Harness Engineering 关心的是AI能调用什么工具,以及这些工具是否安全可靠。典型问题包括:AI能不能读写文件?能不能运行测试?能不能访问数据库、浏览器、GitHub、CI?工具权限如何限制?工具失败时如何处理?调用过程如何审计?

tools = [{"name": "read_file", "parameters": {"path": "string"}},{"name": "run_tests", "parameters": {"scope": "string"}},{"name": "create_pr_comment", "parameters": {"body": "string"}},]

它解决的是“AI能不能安全地行动”。

3.4 Loop Engineering:把能力组织成闭环

Loop Engineering 关心的是AI如何在多轮反馈中持续推进任务。典型问题包括:第一轮做什么?失败后如何调整策略?哪些结果需要写入状态?如何判断下一轮是否还有价值?什么时候停止?什么时候必须请人确认?

const MAX_ATTEMPTS = 5
for (let attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) {
    const result = await runTests()
    if (result.passed) {
        await report("测试通过,任务完成")
        break
    }
    const diagnosis = await analyzeFailures(result.failures)
    await applyFix(diagnosis)
    if (attempt === MAX_ATTEMPTS) {
        await escalate("连续修复失败,需要人工介入")
    }
}

它解决的是“AI如何持续、稳定、可控地做事”。

4. Loop Engineering 的优势

Loop Engineering 的价值,不在于让AI显得更“自动”,而在于让AI的自动化具备工程上的可控性。

4.1 适合长周期任务

很多真实任务无法一次完成。它们需要搜索、执行、等待、验证、修复、总结和恢复。Loop Engineering 通过状态管理和检查点,让任务可以跨时间窗口推进。

4.2 能处理反馈和失败

传统的单次调用很难处理失败反馈。Loop Engineering 把失败视为循环的一部分:失败不是终点,而是下一轮诊断和调整的输入。

4.3 能把工具调用变成工作流

单独的工具调用只是动作,循环设计才能把动作组织成流程。比如“运行测试”和“修改代码”只是工具能力,“测试-诊断-修复-验证”才是可执行工作流。

4.4 更容易控制风险

好的循环会显式设计权限边界、终止条件、人类确认点和审计记录。它不是让AI随便跑,而是让AI在被设计好的轨道中行动。

4.5 可复用、可调优

一旦某类循环被验证有效,就可以沉淀成模板。例如测试-修复循环、监控-响应循环、研究-收敛循环,都可以在不同项目中复用和改进。

5. 适合 Loop Engineering 的场景

5.1 场景一:测试-修复循环

这是最典型的工程场景。

运行测试 → 分析失败 → 修改代码 → 再次测试 → 通过或升级给人类

适合: 修复单元测试失败、迁移框架版本、修改API后更新调用方、自动处理lint/类型错误和构建错误。

关键设计: 每轮只修复一类问题;设置最大尝试次数;保留失败日志和修复记录;测试不通过时不要扩大修改范围。

5.2 场景二:监控-响应循环

适合运维、安全、数据质量和业务巡检。

检查状态 → 发现异常 → 分类分级 → 自动处理或通知人类 → 记录结果

适合: 服务健康检查、数据管道巡检、依赖过期提醒、安全告警初筛、每日构建状态汇总。

关键设计: 告警必须分级;自动修复只覆盖低风险动作;高风险动作必须升级给人;每次处理都要留下审计记录。

5.3 场景三:研究-收敛循环

适合信息量大、不确定性高的问题。

广度搜索 → 识别线索 → 深入分析 → 交叉验证 → 输出结论

适合: 理解大型代码库、调研技术方案、梳理复杂bug的根因、整理文档/论文或网页资料。

关键设计: 记录已排除路径,避免反复搜索;区分事实、推断和观点;对关键信息做交叉验证;在不确定时明确标注。

5.4 场景四:长周期开发循环

适合一个需求需要多阶段推进的情况。

拆解任务 → 实现阶段目标 → 验证结果 → 更新计划 → 继续下一阶段

适合: 从需求到实现的完整功能开发、大规模重构、文档系统建设、多模块迁移、自动化PR准备。

关键设计: 每阶段都要有可验证交付物;阶段之间要写入检查点;计划可以更新,但更新原因要记录;上下文压缩前必须留下恢复摘要。

6. 如何构建自己的 Loop Engineering?

构建Loop Engineering不需要一开始就做复杂系统。最好的方式是从一个小而清晰的循环开始,把目标、工具、状态、验证和终止条件设计清楚。

6.1 第一步:定义目标和成功标准

先不要急着写prompt或接工具。先回答两个问题:这个循环要持续完成什么任务?什么结果算成功?

坏的目标: 帮我优化项目。

好的目标: 持续运行测试并修复失败,直到核心测试全部通过,或连续3次修复失败后交给人工处理。

目标要尽量满足三个条件:可观察(系统能知道当前状态)、可验证(系统能判断是否达成)、可收束(系统知道什么时候停止)。

6.2 第二步:选择循环类型

根据任务特征选择触发方式。

循环类型触发方式适合任务
时间驱动定时触发每日巡检、周期报告、依赖检查
事件驱动外部事件触发PR创建、CI失败、告警产生
自定步调AI或系统决定下一轮时间等待构建、长任务推进、异步验证
人工启动用户明确启动一次性复杂任务、半自动工作流

loop: type: event-driven trigger: ci_failed goal: "分析 CI 失败并尝试修复"

6.3 第三步:设计单轮迭代流程

把一轮循环拆成固定阶段。最常用的结构是:

Observe → Plan → Act → Verify → Record → Decide

对应到代码任务,可以是:

读取失败日志 → 制定修复计划 → 修改代码 → 运行测试 → 记录结果 → 判断是否继续

可以写成一个简单模板:

iteration:
  observe:
    - read_test_log
    - inspect_changed_files
  plan:
    - identify_root_cause
    - choose_fix_scope
  act:
    - edit_files
  verify:
    - run_unit_tests
    - run_typecheck
  record:
    - sa ve_attempt_summary
  decide:
    - continue_if_tests_fail_and_attempts_left
    - stop_if_tests_pass
    - escalate_if_risk_high

这一步的关键是:不要让AI每轮都“自由发挥”。自由判断可以有,但循环骨架要稳定。

6.4 第四步:准备上下文

Loop Engineering不是孤立存在的,它需要Context Engineering支撑。每一轮至少要提供这些上下文:当前目标、成功标准、当前状态、最近一次执行结果、已尝试过的方法、明确禁止的动作、需要遵守的项目规范。

推荐为循环维护一个状态文件:

goal: "修复核心测试失败"
success_criteria:
  - "npm test 通过"
  - "npm run typecheck 通过"
attempts: 2
last_result: "仍有3个测试失败"
tried:
  - "修复用户状态初始化"
  - "调整mock数据结构"
next_plan: "检查权限判断分支"
blocked:
  - "不能修改公开API"

6.5 第五步:配置工具和权限

Loop Engineering需要Harness Engineering支撑。你要明确AI可以调用哪些工具,以及每个工具的权限边界。

常见工具包括:文件读取和编辑工具、测试运行工具、构建和类型检查工具、搜索工具、浏览器或API工具、任务状态记录工具、通知或评论工具。

工具权限应该按风险分层:

风险等级动作示例建议策略
低风险读取文件、运行测试、生成报告可自动执行
中风险修改代码、更新文档、创建草稿可自动执行,但要记录
高风险删除数据、发布上线、改权限、合并PR必须人工确认

最重要的原则: 循环可以自动推进,但高风险动作不能自动越权。

6.6 第六步:设计验证机制

没有验证机制,循环就会变成“做了很多事但不知道有没有用”。

任务类型验证方式
代码修复测试、类型检查、lint、构建
前端页面截图、交互检查、视觉回归
研究任务多来源交叉验证、引用来源、标注不确定性
数据任务数据校验、行数对比、异常值检查
运维任务指标恢复、告警消失、日志无新增错误

验证步骤要写进循环,而不是留给人类事后检查。

6.7 第七步:设置终止条件

终止条件是Loop Engineering的安全阀。

常见终止条件包括:

  • 成功:目标达成,例如测试通过。
  • 失败:达到最大尝试次数。
  • 预算:token、时间、成本或工具调用次数用尽。
  • 风险:需要高风险操作。
  • 阻塞:缺少权限、依赖不可用、信息不足。
  • 人工中断:用户明确停止。
stop_conditions:
  success:
    - "all_tests_passed"
  failure:
    - "attempts >= 5"
    - "same_error_repeated >= 3"
  budget:
    - "remaining_tokens < 50000"
  escalation:
    - "requires_production_access"
    - "requires_destructive_change"

一个优秀的循环不是永远运行,而是能清楚地解释“为什么继续”和“为什么停止”。

6.8 第八步:设计人机交互点

人类不应该被迫参与每一步,但也不能完全被排除在外。

适合AI自动处理: 收集信息、运行测试、生成候选方案、修改低风险文件、生成总结。

必须请求人类确认: 删除或覆盖重要数据、修改安全策略、发布到生产环境、合并或部署代码、在多个业务取舍中做最终选择。

一个实用原则是: “风险越大,越要让人参与”。

6.9 第九步:记录日志和检查点

循环要能被追踪、恢复和复盘。每轮至少记录:本轮目标、执行动作、工具调用结果、验证结果、判断依据、下一步计划、是否需要人工介入。

推荐每轮结束都生成一段简短摘要:

第3轮:修复权限判断分支后,单元测试从5个失败减少到1个失败。剩余问题集中在admin用户mock数据缺少role字段。下一轮计划:修正mock数据并重新运行user-service测试。

这样即使上下文被压缩、会话被中断,循环也能恢复。

7. 一个最小可用的 Loop Engineering 模板

下面是一个可以直接改造的最小模板:

name: test-fix-loop
goal: "持续修复测试失败,直到测试通过或达到最大尝试次数"

trigger:
  type: manual

state:
  attempts: 0
  max_attempts: 5
  tried: []
  last_result: null

context:
  include:
    - project_readme
    - failing_test_log
    - related_source_files
    - coding_standards

tools:
  allowed:
    - read_file
    - edit_file
    - search_code
    - run_tests
  requires_confirmation:
    - delete_file
    - publish_release
    - merge_pr

iteration:
  - observe: "读取失败日志和相关代码"
  - plan: "识别最可能根因,限定本轮修改范围"
  - act: "实施最小修复"
  - verify: "运行相关测试"
  - record: "记录本轮尝试、结果和下一步"
  - decide: "通过则结束;失败且未超限则继续;超限则升级"

stop_conditions:
  success:
    - "tests_passed"
  failure:
    - "attempts >= max_attempts"
    - "same_failure_repeated >= 3"
  escalation:
    - "requires_destructive_action"
    - "requires_business_decision"

这个模板虽然简单,但已经覆盖了Loop Engineering的核心:目标、触发、状态、上下文、工具、迭代、验证和终止。

8. 常见错误

8.1 把循环做成无限重试

如果每一轮没有引入新信息、新策略或更小的问题范围,重复执行只会浪费资源。

8.2 只设计行动,不设计验证

“修改了代码”不等于“修好了问题”。验证必须是循环的一部分。

8.3 没有状态文件

长任务跨上下文窗口时,很容易丢失“已经试过什么”“为什么这么做”“下一步是什么”。

8.4 权限边界太宽

自动化越强,越需要明确哪些动作必须人工确认。

8.5 没有失败出口

好的循环不怕失败,怕的是失败后还假装可以继续。

9. 总结

AI工程正在从“如何得到一个好回答”,走向“如何让AI可靠地完成一段工作”。

Prompt Engineering、Context Engineering和Harness Engineering分别解决了表达、视野和行动能力的问题;Loop Engineering则进一步解决持续执行的问题。

它的核心不是无限自动化,而是一个有反馈、有状态、有边界、有终止条件的执行闭环。

真正成熟的Loop Engineering,应该让AI做到四件事:

  • 知道目标是什么。
  • 知道下一步为什么值得做。
  • 知道做完后如何验证。
  • 知道什么时候必须停下来交给人。

当AI从“会回答”变成“能持续推进”,工程方法论也必须从prompt走向loop。这就是Loop Engineering的意义所在。

10. 参考资源

  • AI coding agent 与长期任务执行实践
  • MCP(Model Context Protocol)相关规范
  • Tool / Function calling 与 agent runtime 设计实践
  • CI/CD、任务调度、可观测性和工作流编排中的成熟工程模式
来源:https://juejin.cn/post/7652257652501348390
上一篇用嘴做设计 Claude Code技能让Figma吃灰 下一篇MCP是什么?Function Call后为何仍需它
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Windows Docker Desktop RabbitMQ生产级部署完整指南
AI教程 · 2026-06-29

Windows Docker Desktop RabbitMQ生产级部署完整指南

前言 在 Windows 本地开发环境中,直接安装 RabbitMQ 确实颇为周折:需要单独配置 Erlang 运行环境、手动管理环境变量、服务启停全凭手工操作。更令人困扰的是,版本兼容冲突、端口占用、环境不一致等问题层出不穷。笔者见过不少开发者为搭建环境就得耗费整整半天时间。 相比之下,借助 Do

AI搜索重构制造业采购逻辑的阿里云企业级GEOCMS优化实践
AI教程 · 2026-06-29

AI搜索重构制造业采购逻辑的阿里云企业级GEOCMS优化实践

先分享一个切实感受。过去两年,我们与福建制造企业合作较为频繁,发现一个非常突出的现象:超过80%的企业官网,产品参数仍然存放在PDF或图片中。AI爬虫?根本无法抓取。这些企业技术实力不弱、资质证照齐全、应用案例也丰富,但在AI搜索这一全新战场上,它们几乎处于隐身状态。 一、一个正在发生的行业变化 A

阿里云Token Plan团队版功能价格与省钱购买指南
AI教程 · 2026-06-29

阿里云Token Plan团队版功能价格与省钱购买指南

阿里云百炼近期推出了名为“Token Plan 团队版”的全新服务,这一服务专为企业与开发者量身打造,定位为AI大模型订阅平台。通过引入Credits作为统一计量单位,将文本生成、图像生成等多模态AI能力纳入单一计费体系,同时无缝兼容主流AI编程工具及智能体(Agent)生态系统。其核心亮点包括:全

阿里云物联网.NET Core客户端位置信息上报
AI教程 · 2026-06-29

阿里云物联网.NET Core客户端位置信息上报

阿里云物联网平台的位置服务并非一个完全独立的功能模块。位置信息可包含二维坐标与三维坐标,而位置数据的来源本质上是借助设备属性进行上传。换言之,若要让设备上报位置,您需先将其视为一个普通属性进行处理。 1)添加二维位置数据 操作过程十分简洁。进入数据分析 → 空间数据可视化 → 二维数据,点击添加,将

年阿里云服务器选型配置与网站部署全攻略
AI教程 · 2026-06-29

年阿里云服务器选型配置与网站部署全攻略

2026年,阿里云服务器生态已高度成熟,形成了清晰的轻量应用服务器与ECS云服务器两大产品阵营。无论你是计划搭建个人博客、企业官网,还是运营电商平台、进行应用开发,基本都能找到理想的解决方案。本指南将从服务器选型、配置选择、部署流程到安全运维,系统梳理2026年最实用的操作要点,帮助你少走弯路,让网