过去我们习惯把 AI 应用的核心理解成 Prompt Engineering。但到了 Agent 阶段,问题变了:模型不只是回答一次,而是要观察、行动、获得反馈、修正、继续推进。于是 Context Engineering、Harness Engineering、Loop Engineering 这些概念陆续出现。它们到底有什么区别?这篇文章试着拆一下。

Prompt Engineering 之后,为什么又冒出 Loop Engineering?

过去两年,很多人对 AI 应用的理解,基本停留在一个动作上:

给模型一个好 Prompt,然后等它返回一个好答案。

这就是 Prompt Engineering 最早火起来的原因。你写清楚角色、任务、约束、格式、示例,模型输出就会稳定很多。对于写文案、总结、翻译、生成代码片段,这一套确实有效。

但到了 AI Agent 阶段,问题开始变化。

Agent 不只是“回答一次”。它可能要读文件、调用工具、执行命令、看报错、修改代码、重新运行测试、继续判断下一步。这个过程更像一个循环:

观察当前状态 → 思考下一步 → 执行动作 → 获得反馈 → 修正策略 → 再执行

这就是最近很多人开始讨论 Loop Engineering 的原因。

它关注的不是“这一句话怎么写得更好”,而是:

一个 AI 系统如何在连续反馈中,把事情一步步做完?

这个判断很关键。因为越往后,AI 应用的难点越不在“让模型说得好听”,而在“让模型持续做对”。


先说结论:四个概念解决的是不同层的问题

如果简单拆,可以这样理解:

概念主要问题关注对象典型场景
Prompt Engineering怎么问模型?单次输入指令写作、总结、问答、简单代码生成
Context Engineering给模型看什么?上下文组织RAG、长文档分析、代码库理解、企业知识库
Harness Engineering怎么把模型接进系统?外部执行框架工具调用、评测、沙箱、CI、权限、安全边界
Loop Engineering模型如何反复行动并收敛?多步反馈循环AI Agent、自动编程、自动研究、复杂任务执行

这四个不是互相替代,而是层层叠加:Prompt 负责把任务说清楚,Context 负责给对材料,Harness 负责把模型接入工具和安全边界,Loop 负责让多步行动在反馈里收敛。


Prompt Engineering:让模型第一次回答得更好

Prompt Engineering 是最容易理解的一层,它主要优化单次模型调用。

常见做法包括:

  • 明确角色:你是一个资深产品经理 Python 工程师 法律顾问;

  • 明确任务:请总结、请改写、请生成代码;

  • 明确约束:不要超过 500 字、用表格输出、不要编造数据;

  • 给示例:按照下面格式回答;

  • 指定风格:严谨、口语化、适合小红书、适合技术博客。

比如你问:

帮我写一个产品介绍。

和你问:

请用面向企业 CTO 的语气,写一段 300 字以内的产品介绍,重点突出安全、私有化部署和系统集成能力,避免营销腔。

效果肯定不一样。Prompt 的价值,是降低模型理解任务的成本。

但它也有天然边界:如果任务需要多轮执行、根据结果修正方向、调用外部工具,再好的 Prompt 也只能解决第一步。


Context Engineering:让模型看到正确的东西

Context Engineering 解决的是另一个问题:

模型每次回答之前,应该看到哪些信息?

很多 AI 应用失败,不是因为 Prompt 写得差,而是上下文给错了。

比如让模型分析一个代码库,你不能只说“帮我修 Bug”。你要让它知道:

  • 项目结构是什么;

  • 相关文件有哪些;

  • 报错信息是什么;

  • 最近改过什么;

  • 测试命令是什么;

  • 业务规则和边界条件是什么。

Context Engineering 的核心不是“塞更多内容”,而是“选择正确内容”。上下文窗口变长以后,这件事反而更重要:信息越多,噪音也越多,模型注意力可能被稀释。

一个好的 Context Engineering 系统,通常要做几件事:

  1. 检索:从文档、代码、数据库里找到相关信息;

  2. 筛选:过滤掉不相关内容;

  3. 压缩:把长内容整理成模型能消化的结构;

  4. 更新:随着任务推进,不断刷新当前状态;

  5. 隔离:不同任务、不同权限、不同用户的上下文不能混在一起。

所以 Context Engineering 回答的是:

模型做判断时,它的“现场材料”是否正确?

现场材料错了,再好的 Prompt 也救不回来。


Harness Engineering:让模型可以安全地接入现实世界

再往外一层,是 Harness Engineering。

这个词没有 Prompt Engineering 那么普及,但在做 AI 应用的人里面很重要。这里的 harness,可以理解成模型外面的“承载和约束系统”:它负责接住模型输出、调用工具、执行动作、验证结果,并控制权限和风险。

它解决的问题是:

模型输出之后,系统怎么接住它、执行它、验证它,并限制它?

比如一个 AI 编程助手,不可能只生成代码就结束。它还需要:

  • 读取文件;

  • 修改文件;

  • 执行测试;

  • 捕获报错;

  • 回滚失败修改;

  • 控制命令权限;

  • 记录每一步操作;

  • 做安全检查;

  • 和 Git、CI、Issue 系统集成。

这些不是 Prompt 本身能解决的,而是模型外面的工程框架。

在评测领域也一样。你要判断一个模型是不是更强,不能只看一次回答。你需要一个 evaluation harness:

  • 固定数据集;

  • 固定评分规则;

  • 固定运行环境;

  • 可重复执行;

  • 可比较结果。

所以 Harness Engineering 问的是:

模型被放进一个什么样的执行环境里?

很多 Agent demo 看起来很强,但一接入真实工作流就容易出问题,常常不是模型完全不行,而是 harness 太弱:权限不清、工具不稳、反馈不完整、失败不可控。


Loop Engineering:真正决定 Agent 能不能把事情做完

现在回到 Loop Engineering。它关注的是 Agent 的核心循环。

一个最简单的 Agent Loop 大概是:

1. 接收目标
2. 观察当前状态
3. 生成下一步计划
4. 调用工具或执行动作
5. 获取结果
6. 判断是否成功
7. 如果失败,分析原因并重试
8. 如果成功,继续下一步或结束

这个循环看起来简单,但每一步都有工程问题。

第一,什么时候继续,什么时候停止?

Agent 最常见的问题之一,是停不下来。它会反复搜索、反复修改、反复总结,看起来很努力,但没有明确收敛条件。

所以 Loop Engineering 要设计终止条件:

  • 测试是否通过?

  • 用户目标是否满足?

  • 结果是否达到评分阈值?

  • 是否超过最大步数?

  • 是否需要人工确认?

没有终止条件的 Agent,本质上不是自动化,而是失控循环。

第二,失败之后怎么修正?

人类做事时,失败之后会判断原因:是信息不够、工具错了、假设错了,还是目标理解错了。Agent 也需要类似机制。

比如代码测试失败,下一步不能只是“再试一次”。它应该先判断:

  • 是语法错误?

  • 是依赖缺失?

  • 是测试用例理解错了?

  • 是之前修改影响了其他模块?

  • 是需要回滚还是继续补丁?

Loop Engineering 的重点,是让 Agent 的重试不是“再来一次”,而是带着反馈修正。

第三,循环里的状态怎么管理?

Agent 每一步都会产生新信息。问题是:哪些要保留?怎么保留?保留多久?

比如一个编程 Agent 修 Bug,它可能经历:

  • 用户需求;

  • 初始假设;

  • 查看过的文件;

  • 修改过的代码;

  • 运行过的测试;

  • 出现过的报错;

  • 已经排除的方向;

  • 当前剩余问题。

如果这些状态管理不好,Agent 就会“失忆”,或者反复做同一件事。

这就把 Loop Engineering 和 Context Engineering 连在了一起:Loop 负责推进,Context 负责在每一步提供正确状态。

第四,什么时候让人介入?

一个成熟的 Agent 不应该假装什么都能自动完成。有些节点应该主动停下来:

  • 要删除数据;

  • 要提交代码;

  • 要调用付费 API;

  • 要访问敏感文件;

  • 有多个方案但代价不同;

  • 需求本身存在歧义。

Loop Engineering 不是追求全自动,而是设计合理的人机协作边界。


为什么现在 Loop Engineering 会变重要?

我觉得有三个原因。

1. AI 应用正在从 Copilot 走向 Agent

Copilot 时代,AI 主要是辅助人:你问,它答;你选,它改;你复制,它执行。

Agent 时代,AI 开始承担连续任务,比如:

  • 自动修复一个 Issue;

  • 自动生成并运行测试;

  • 自动整理一份研究报告;

  • 自动监控系统并发出告警;

  • 自动帮你处理一批重复工作。

连续任务的难点不在第一次回答,而在中间过程:如何判断、行动、验证、修正,并最终停止。

2. 模型能力变强之后,系统设计反而更重要

模型越强,越容易让人误以为“只要模型够强,外部工程就不重要”。但现实往往相反。

模型能做的动作越多,越需要边界、反馈、验证和控制。否则它可能很自信地把事情做偏。

这也是为什么很多 Agent 产品最后拼的不是单个模型,而是:

  • 工具设计;

  • 状态管理;

  • 权限系统;

  • 评测体系;

  • 错误恢复;

  • 人机交互节点。

这些正是 Loop Engineering 和 Harness Engineering 变重要的地方。

3. 真实工作流天然是循环的

写代码、研究资料、写文章、处理客服工单,都不是一次问答就结束。真实工作流本来就是循环:做一点,看结果,再调整。AI 如果要进入真实工作流,就必须学会在循环里工作。


对开发者来说,应该怎么理解这个变化?

如果你是开发者,我建议不要把 Loop Engineering 当成一个新名词去追,而是把它当成一个提醒:

以后做 AI 应用,不要只写 prompt,要设计过程。

设计一个最小可用的 Agent Loop,至少要想清楚这些问题:

  1. 目标是什么?
    用户到底希望完成什么,而不是模型应该说什么。

  2. 状态从哪里来?
    当前任务进展、历史动作、外部信息如何进入上下文。

  3. 动作有哪些?
    模型可以调用哪些工具?每个工具的输入输出是什么?

  4. 反馈是什么?
    执行动作后,系统如何告诉模型成功还是失败?

  5. 如何验证?
    靠测试、规则、评分器,还是人工确认?

  6. 什么时候停止?
    成功、失败、超时、风险、歧义,分别怎么处理?

  7. 怎么避免重复犯错?
    已经尝试过的路径如何记录?错误如何进入下一轮判断?

这些问题比“Prompt 应该怎么写”更接近真实工程,也决定了 Agent 是稳定推进,还是不断跑偏。


一个具体例子:让 AI 修一个 Bug

假设你要做一个“自动修 Bug”的 Agent。

只靠 Prompt Engineering,你可能会写:

你是一个资深工程师,请修复下面这个 Bug,并给出代码。

这能解决一部分问题,但离真正可用还差很远。

加入 Context Engineering,你会给它:

  • Bug 描述;

  • 报错日志;

  • 相关文件;

  • 项目结构;

  • 测试用例;

  • 最近提交记录。

加入 Harness Engineering,你会给它:

  • 文件读写工具;

  • 命令执行工具;

  • 测试运行环境;

  • Git diff 查看;

  • 安全限制;

  • 回滚机制。

加入 Loop Engineering,你要设计:

读取 Bug → 定位相关代码 → 提出假设 → 修改代码 → 运行测试
→ 如果失败,读取错误 → 判断原因 → 再修改
→ 如果通过,检查 diff → 输出总结 → 等待人工确认

这才像一个真正能工作的 AI Agent。否则它只是一个会写代码建议的聊天框。


需要警惕:Loop 不是越长越好

这里有一个容易被忽略的点:Loop Engineering 不是让 Agent 无限循环。

很多 Agent demo 看起来很酷,是因为它会不断行动。但在真实系统里,循环越长,成本越高,风险也越高。

风险包括:

  • token 成本上升;

  • 执行时间不可控;

  • 错误累积;

  • 上下文污染;

  • 工具误调用;

  • 结果难以复现;

  • 用户不知道系统到底做了什么。

所以好的 Loop Engineering 不是“让 AI 多做几步”,而是“让每一步都有依据、有反馈、有退出机制”。Loop 的价值不在循环本身,而在收敛。


小结

Prompt Engineering 解决“怎么问”,Context Engineering 解决“给模型看什么”,Harness Engineering 解决“怎么把模型接进真实系统”,Loop Engineering 解决“如何让模型在多步反馈中把事情做完”。

这几个概念背后,其实是 AI 应用开发重心的变化:从写好一句 Prompt,变成设计一个可靠的工作系统。

如果只是做一次性问答,Prompt 仍然重要。

如果要做知识库、代码理解、企业助手,Context 会变得重要。

如果要接入工具、执行命令、做评测和权限控制,Harness 会变得重要。

如果要做真正的 Agent,让 AI 能持续行动、失败修正、最终收敛,Loop Engineering 就绕不开了。

所以我对 Loop Engineering 的理解是:

它不是一个新包装的 Prompt 技巧,而是 AI Agent 进入真实工作流之后,工程复杂度自然暴露出来的结果。

接下来很多 AI 产品的差距,可能不会只体现在“用了哪个模型”,而会体现在:谁把这个循环设计得更稳、更短、更可控。


你现在做 AI 应用时,最头疼的是 Prompt 不稳定,还是 Agent 在多步执行里容易跑偏?欢迎留言聊聊。