过去我们习惯把 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 系统,通常要做几件事:
检索:从文档、代码、数据库里找到相关信息;
筛选:过滤掉不相关内容;
压缩:把长内容整理成模型能消化的结构;
更新:随着任务推进,不断刷新当前状态;
隔离:不同任务、不同权限、不同用户的上下文不能混在一起。
所以 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 大概是:
这个循环看起来简单,但每一步都有工程问题。
第一,什么时候继续,什么时候停止?
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,至少要想清楚这些问题:
目标是什么?
用户到底希望完成什么,而不是模型应该说什么。状态从哪里来?
当前任务进展、历史动作、外部信息如何进入上下文。动作有哪些?
模型可以调用哪些工具?每个工具的输入输出是什么?反馈是什么?
执行动作后,系统如何告诉模型成功还是失败?如何验证?
靠测试、规则、评分器,还是人工确认?什么时候停止?
成功、失败、超时、风险、歧义,分别怎么处理?怎么避免重复犯错?
已经尝试过的路径如何记录?错误如何进入下一轮判断?
这些问题比“Prompt 应该怎么写”更接近真实工程,也决定了 Agent 是稳定推进,还是不断跑偏。
一个具体例子:让 AI 修一个 Bug
假设你要做一个“自动修 Bug”的 Agent。
只靠 Prompt Engineering,你可能会写:
你是一个资深工程师,请修复下面这个 Bug,并给出代码。
这能解决一部分问题,但离真正可用还差很远。
加入 Context Engineering,你会给它:
Bug 描述;
报错日志;
相关文件;
项目结构;
测试用例;
最近提交记录。
加入 Harness Engineering,你会给它:
文件读写工具;
命令执行工具;
测试运行环境;
Git diff 查看;
安全限制;
回滚机制。
加入 Loop Engineering,你要设计:
这才像一个真正能工作的 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 在多步执行里容易跑偏?欢迎留言聊聊。