Agent 这个词这两年已经被用的有点“概念疲劳”了。
如果你问Agent(智能体) 是什么,可能答案会五花八门 — 机器人、数字员工、“龙虾”。但当 Agent 落到工程,特别是企业应用,它就不是玄学,而是一套围绕大模型构建的系统工程:执行循环、工具链、上下文、知识结构以及人机协作机制。
如果你正在学习或者尝试 Agent 应用落地,下面这20个核心概念,是我们认为当前 Agent 工程领域最必须搞懂的概念。
本文用更浅显易懂的方式来拆解它们,并分成两篇:
上篇更聚焦运行机制,解释 Agent 如何感知、推理与执行。
下篇侧重系统能力层,探讨如何扩展、协同与工程落地。
01 Agent(智能体):从聊天到行动的执行体
很多人接触生成式 AI 是从 ChatGPT 这样的聊天机器人(ChatBot)开始。
但 Agent 和 ChatBot 的差别,不在于回答是不是更像真正的人,而在于:
Agent 不仅会想会说,它还会”做“,且会根据结果不断调整下一步,直到完成目标(当然也可能失败)。
ChatBot 像咨询台:你问一句,它答一句,答完就结束。
Agent 像带着工具箱的工程师:你布置一个任务,它会思考方法,然后用工具来执行步骤;如果没完成,再继续下一步。

关键区别不是回答质量,而是:会不会用工具、会不会自我“循环”:
翻译一句话、创作一首诗,回答一个问题,这些都只需要一个简单的模型(LLM)调用就够了,不需要 Agent;
但如果是修复一个线上 Bug:你必须查看日志、分析代码、修改代码、测试集成、并多轮反复,这就是 Agent 的典型工作 — 使用工具、不断推进目标、且下一步需要依赖上一步结果。
【工程 Tips】
所以,工程上判断要不要 Agent,你可以问自己一句:
这个任务能不能提前写死步骤?
如果能,那么只需要传统工作流或者脚本;否则才需要考虑更自主的 Agent。
当然,Agent 的智能与自主,并不代表没有边界。它能做什么、不能做什么、完成标准是什么,这些边界不约束,Agent 会变成摸盲盒式的冒险。
02 Harness(运行框架):模型运行的系统外壳
Harness 是一个今年兴起的热点名词,可译为“运行框架”或“智能体外壳”。
如果说模型是“发动机”,那么 Harness 就是:
决定如何把模型这台发动机变成汽车跑起来、且确保不翻车的那套系统 — 从“光说不练”的模型变成真正能办事的 Agent。

其中的道理很简单,因为大模型本身只会一件事:生成文本。但要变成一个 Agent 系统,就面临了一堆自己无法解决的问题 — 怎么使用工具、上下文和参考知识放哪里、执行到哪一步了。
这些问题,大模型自己是不会的,就必须依赖“Harness”。
一个成熟的 Agent Harness 要管很多事:如何控制循环、中间结果放哪里、系统提示怎么组织、怎么使用工具、权限如何管理、失败如何重试、上下文如何压缩、如何持久记忆、最终结果如何验证、如何加入人类审核。你可以认为:
Agent = 模型(LLM) + Harness
这就决定了尽管很多 Agent 看起来用的是同一个模型,但行为差异却巨大 — 原因就在 Harness 不一样。
【工程 Tips】
这个道理告诉我们,买更强模型不等于拥有更强 Agent。
就像汽车有 V16 的发动机,不代表它就一定比普通发动机更好开 — 有了好的 Harness,较弱的模型也可能达到逼近强模型的效果。
03 Execution Model(执行模式):思考与行动的范式
如果说 Harness 解决的是怎么把模型变成真正能干活的系统,那么现在就面临另一个更细节的问题:
这个系统“到底按什么节奏、用什么行为方式来思考和行动”。
因为一旦 Agent 真正开始运行,它就需要在不断的做决策并采取行动。那么它是先想再做,还是边做边想,又或者二者结合呢?不同的执行节奏,直接决定了 Agent 的行为模式。这种行为模式就是 Agent 的 Execution Model。

最常见的行为模式是 ReAct:
也就是Reason + Act,先推理,再行动,再观察结果,再推理,周而复始。这是一种“走一步、看一步、再决定下一步”的范式,有点类似侦探破案 — 观察现场,根据线索决定下一步,直到破案。
另一种行为模式是 Plan-then-Execute:
先把任务拆成计划,再按计划执行,执行过程中尽量不偏离(实际上有可能会动态调整计划)。这种模式通常用在较长距离的任务中 — 有了计划的约束,Agent 不容易发生目标偏离,比如大型软件编码任务。
【工程 Tips】
在复杂工程中更常见的实践是:
两种模式结合 — Plan 负责整体计划, ReAct 推进执行细节。
比如,修一个复杂Bug,先 Plan-then-Execute 列出工作计划(如上下文分析 -> 代码修复 -> 测试验证 -> PR提交 );但是在测试验证这一步,又可以用 ReAct 模式不断动态的根据测试结果修补代码。
04 Loop Engineering(循环工程):多轮任务自动推进
这又是一个最近兴起的 Agent 工程概念。
上一个概念 Execution Model 解决了在一轮任务里Agent 思考与行动的方式。但问题还没有结束:
无论怎么行动,也都只回答了“这一轮怎么做”。但在真实世界里,比如软件开发,问题大多不是一轮就能解决的。
比如开发一个新功能:Agent 编程 -> 人类验证 -> Agent 修复 -> 人类继续验证 -> Agent 再执行。
看到没,这个更高层的“Loop”本质是上人类在推动着向前。
而 Loop Engineering 要解决的就是:
让人类跳出这样的 Loop — 不再参与这个 Loop,而是去设计这样一个 Loop ,让 Agent 系统能自主的持续推进到最终目标。

这里的关键不是 Loop 本身,而是 Loop 的控制权。
现在的控制权交给了系统,系统自己完成推进:
通过触发机制启动任务,通过验证机制判断结果,通过状态机制记录进度,通过停止条件决定是否终止。
你可以把这样的 Agent 系统想象成一个持续运转的生产线:ReAct 决定的是机器这一站怎么加工零件;但 Loop Engineering 决定的是:这条生产线什么时候启动、什么时候继续运行、什么时候可以停机。
【工程 Tips】
并非所有任务都需要 Loop Engieering。它更适合目标清晰、完成标准可以独立验证、失败风险可控、人类可以 Review 的长距离任务,比如大型编程任务。
05 Agent State(智能体状态):Agent 能“知道什么”
Agent State(智能体状态)解决的是:
Agent 运行时,它到底“知道什么”、“干了什么”以及“进行到了哪一步”。
在单次对话中,Agent State 可以认为就是那短暂的上下文(提示词)。但在复杂的长任务 Agent 系统中,光有聊天历史显然不够。
原因很简单:大模型的“记忆”是有上限的(上下文窗口)。当任务拉长,聊天记录开始“注水” — 无用日志、过期的工具结果等,此时如果还仅仅依赖于这些聊天记录。模型就会出现遗忘目标、被无关信息误导等,从而发生任务偏离。
所以,成熟的 Agent 工程还需要有严格的状态管理。至少要管好三件事:

-
任务的进度。当前处于总流程的哪个节点、下一步是什么等。
-
窗口内的短期状态:提示词、最新消息记录、工具调用及结果、规则等。
-
需加载的长期状态:这是需要 Agent 从长期存储或接口中加载的内容,比如文件、数据库、API 结果、搜索结果等。
有了 Agent State 管理,现在 Agent 系统随时可以“知道”:我从哪里来、要到哪里去、和模型说了什么、改了哪些代码、查了哪些客户的信息等等。
Agent State 在实际系统中需要具备可持久化保存的能力:缓存、文件、数据库(容错级别不一样)等。
【工程 Tips】
Agent State 在工程上的一个重要意义在于:
通过 Agent State 的持久化保存与必要的检查点机制,可以让 Agent 系统具备随时“断点续运行”、甚至“重放任务”的能力。这对于关键任务下的企业 Agent 系统尤为重要。
06 Context Engineering(上下文工程):模型能“看到什么”
如果说 Agent State 解决的是 Agent 在运行时“知道什么”(当前进度、历史对话、从记忆中加载的必要信息等),那么上下文解决的是另一个问题:
在每一轮与模型对话时,模型“能够看到什么信息”。
所以上下文(Context)与 状态(State)之间的界限就很清楚了:
-
State 是 Agent 的事实空间 — 但不一定在每轮交互中都输入 LLM
-
Context 是 LLM 的可见视野 — LLM 用于推理与决策的全部信息

既然这样,把所有的信息都交给模型不就行了?显然不行,原因是:
-
模型的上下文空间是有限资源(比如最大1M)。
-
上下文并非越多越好,“营养搭配”很重要,要有结构、有重点。
所以,我们才需要上下文工程:
为 LLM 提供所有用于合理推进任务的上下文信息的方法。
更具体一点,上下文工程不是简单的把资料全部塞给模型,而是要把正确的信息,在正确的时间,以正确的形式送到模型面前。
以一个 Bug 修复的任务举例:
不是直接塞给它所有代码和设计文档,而是要决策送入哪些设计文档、业务知识、代码、日志、可用工具;这些信息什么时候获取;哪些历史对话要被丢弃,哪些要压缩;哪些人类约束和边界;用什么结构与顺序送入模型。
【工程 Tips】
理解了上下文工程,那么它的工程意义就非常清楚:
它本质上是 Harness 工程的一部分。它直接决定了 LLM 到底在基于什么做决策,看到的是一个清晰的“环境”,还是混乱的“世界” 。这也是整个 Agent 系统的大脑 — LLM 正常工作的前提。
07 Context Rot(上下文腐化):复杂上下文的信息退化
Context Engineering 解决的是“把正确的信息送进模型”,但是随着任务的推进,上下文窗口中的信息越来越拥挤,模型反而开始“看不清重点”。
这就是著名的“上下文腐烂”问题。
它说的是尽管当前主流模型的上下文窗口越来越大(从最初的4K,8K到现在的1M),可以容纳更多的信息输入,但模型未必更聪明,反而可能被分散注意力、被无关信息干扰甚至误导。
早期“Lost in the Middle”以及“大海捞针”的一些研究已经发现,上下文中的信息并非总会被“关注”到,窗口大小、信息所处的位置都会有影响。
这就像开会时候的会议桌。如果只有一份合同在,大家很容易聚焦并理解会议的主题;但如果堆积了大量的文档和邮件,大家反而抓不住重点。

Agent也是一样,长上下文并不总是越多越好。如果信息有用而结构清晰,自然会有帮助;但大量冗余、无关的内容只会干扰模型的注意力,让推理不稳定。
比如,在一个行业应用的 Agent 中,给模型塞入大量与当前任务无关的、未经治理的业务知识文档,这很容易让模型“失焦”;而应该通过检索机制、按需加载等策略,让模型优先看到最重要的信息。
【工程 Tips】
具体到 Agent 系统工程,应该遵循的规则是:
借助上下文工程,让上下文尽量的保持精简。
具体包括:指令与规则保持短而具体、过期信息及时卸载、日志信息先压缩或摘要、借助索引做精准检索、检索结果做合理排序(Rerank)、及时清理无用的工具结果等。分层、按需加载、压缩、检索,都是真正可持续的上下文策略。
08 Prompt Caching(提示词缓存):别让模型理解重复信息
现在我们解决了“给模型看什么”(上下文工程),也知道给模型的信息“并非越多越好”(上下文会腐烂)。但还有一个问题:
每次给模型的上下文中,一些重复的内容,是否都要重新运算一遍?
在一个真实的 Agent 系统中,每一轮对话可能会携带同一批内容:系统提示、工具说明、项目规则、少量示例、前几轮对话等。
这里的本质原因是模型本身是无状态的,也就是没有“记忆”能力 — 每一轮对话时,都要输入必要的全部上下文。
如果每一轮都让模型完整重读并计算这些重复内容,就像学习新课文时,每次都把前面学过的课文重新理解一遍,不仅慢,而且昂贵(浪费 Token)。
所以 Prompt Caching(提示词缓存)的思路就是:
把那些每次不变的上下文“存起来”,下次就不必重新处理。
在模型实现中,缓存通常基于前缀匹配,因此稳定内容需要被组织在 Prompt 的前部,所以也被称为“稳定前缀”。

第一次调用时,系统会完整处理所有内容,包括系统提示、工具定义、规则和背景信息,并进行缓存。而之后的每一轮调用,输入中重复的“稳定前缀”就可以命中并复用缓存,其处理成本大大降低。
这特别适合长会话、长时间运行、前缀稳定的 Agent 任务,比如编码。如果没有缓存,成本会被稳定上下文反复放大。
【工程 Tips】
工程实践中的一个关键策略是:
保持稳定的上下文前缀,有助于降低成本并提高响应速度。
把稳定、有价值、反复用的内容(如系统提示、整体规则、任务背景等)放前面;而每轮变化的用户输入、执行反馈等放后面。
但注意,缓存并不能使你的上下文质量更高。错误的上下文被缓存,也只是让错误的成本更低,但并没有让错误变正确。
09 Ontology(本体):让AI听懂企业的业务语言
即使已经学会了如何筛选信息、组织信息、控制信息进入模型的方式,Agent 依然会在企业任务中理解出错。原因不在于你给的信息不够多,而是:
模型并没有真正的理解你的信息在企业自身业务背景下的语义和规则。
比如,在企业系统里,一个词的含义可能并非固定的,比如“ALLOCATED”,在 ERP 里可能代表库存已锁定,在生产系统里可能代表产能已分配,在客服系统里又可能只是一个状态字段。
但对于语言模型来说,它看到的是一个字符串 — 如果不提供更多的语义信息。模型在做判断时,可能就是基于通用语义做推测。这也是企业 Agent 常见的一类失败来源。
而这正是 Ontology(本体)要解决的问题:
用一种标准的形式,对企业的业务世界进行建模,作为 Agent 的“业务地图”。

说白了,就是把企业里的业务对象、属性、关系和规则讲清楚。
比如电信系统里的客户、套餐、订单、工单、开通、计费、退订分别是什么、有什么属性,它们之间什么关系(比如客户-<生成>-订单),有哪些约束规则(比如欠费客户无法变更套餐等)。
注意,本体一定是语义的表达,而不是定义数据库结构 — 企业的多个系统可能有不同的“客户表”,但在语义层,“客户”只有一个含义。
【工程 Tips】
本体对于 Agent 系统的一个典型应用是:
让企业规则从代码和经验中抽离,沉淀到可计算、可推理、可复用的业务语义层(本体),并提供给 Agent 系统使用(通过本体的“推理机”)。
这样,当业务规则发生变化时,不需要在多个系统中同步修改逻辑,只需要在本体中调整定义,所有基于它的 Agent 行为都会自然变化。
总的来说,本体的意义在于帮助企业级 Agent 系统理解企业业务,并基于统一的业务语义层做推理,而不是简单的“文字”推理。
10 Live Retrieval(实时检索):别让模型靠过期信息推理
Context Engineering 解决的是“在这一轮推理中,模型应该看到什么信息”,但这些信息,特别是企业的业务知识与事实,从哪里、用什么方式获得?
模型并不直接拥有真实世界的数据,它看到的所有内容,本质上都必须被“喂进 Context”。但业务事实在不断变化,代码在不断更新,系统状态在不断流转。如果这些变化不能被持续地、准确地送入模型上下文,那么即使 Context 设计得再好,也只是基于“过期信息”做推理。
这就是 Live Retrieval 可以发挥作用的地方:
为 Agent 提供一个持续连接外部世界的“信息获取机制”,让模型在需要做决策时,能够随时获取当前最新的知识与事实。
相对于本体:Ontology 定义“业务世界是怎样的”,Live Retrieval 则提供“这个世界发生了什么”。

我们熟知的 RAG 可以作为 Live Retrieval 的一种实现方式 — 用来在任务开始或过程中,从外部知识源(文档库、代码库、知识库)中检索与当前任务相关的信息,并注入到 Context 中,具体的检索技术可以是向量、图谱、关键词,或者融合检索。
但实际上 Live Retrieval 的范围更大,它强调的是实时性与持续性,也就是说,模型在执行过程中可以不断从外部系统获取最新状态,例如:编码 Agent 可能查询数据库的最新 Schema ,客服 Agent 需要查询 CRM系统的客户信息等。
【工程 Tips】
在工程上,“检索” 这件事情远没有看起来那么简单。
因为 AI 世界的检索不是一个简单的数据库查询,而是一个决策系统:查什么、查多少、如何确保相关性、如何排序等等。
如果检索做得不好,错误的信息会进入 Context,会被模型当作参考知识使用,从而放大决策错误。
所以,Live Retrieval 的核心是建立一种机制:
让模型每一次关键决策,都尽可能基于真实世界的知识与状态,而不是静态的历史记忆。
278

被折叠的 条评论
为什么被折叠?



