Agent,试着理解Agent
首先,我会先说明在这篇文章里,我所说的 Agent 到底是什么,以及为什么要用“模块”的方式理解它。
接着,我会按八个核心模块展开,也就是上下文、记忆、工具、规划、调度、工作区、安全、评测与反思。
每个模块都会按同一种节奏来讲:先讲当前工程界最主流的传统方案,再讲研究界和前沿团队正在探索的新方向,最后再讲两者之间真正的差别和发展趋势。
八个模块讲完之后,我不会停在这里,而会继续讨论八个模块之外、但已经越来越重要的其它模块,例如规则与身份、身份连续性、经验学习、环境建模、动机、社会交互。
最后,我还会进一步往前推,讨论那些更接近“存在结构”的模块,比如时间连续性、自我模型、价值权衡、不确定性管理、探索和关系模块。
如果读者读完这篇文章之后,能得到一个清楚而稳定的判断,那应该是这样一句话:Agent 的本质,不是“一个更会说话的模型”,而是“一个围绕模型组织起来的系统结构”。
模型只是推理引擎,而真正决定 Agent 能否长期有效工作的,是那套组织信息、组织状态、组织行动、组织反馈,甚至逐渐组织经验与存在连续性的模块体系。
在正式进入模块之前,有几个概念必须先说明清楚,否则后面的讨论很容易混乱。
第一,我这里说的 Agent,不是狭义上的“网页自动化脚本”,也不是泛泛意义上的“任何调用了大模型的应用”。
我说的 Agent,是一种以大语言模型为核心推理引擎,但又不止于模型本身的系统。
它可以围绕一个目标持续工作:读取信息、保留状态、调用工具、拆解任务、执行行动、检查结果,并在必要时继续下一轮行动。
也就是说,Agent 的关键不在于“能不能回答”,而在于“能不能围绕目标持续组织行动”。
第二,我这里说的“模块”,不是指每一个框架都必须在代码里一一对应的目录结构。
模块更像一种功能层划分。有的系统会把上下文和记忆写在一起,有的系统会把规则和安全合在一起,有的系统不显式叫“工作区”,但实际上也在维护任务状态。
也就是说,这里的模块是一种理解结构的方法,而不是要求所有真实系统都长成同一个样子。
第三,整篇文章会反复区分三种层次:工程现实、研究趋势、结构推演。
工程现实,是今天多数生产级 Agent 系统已经广泛采用的做法。研究趋势,是近年来论文和前沿团队不断提出、但还没有完全成熟的新方向。
结构推演,则是沿着前两者继续往前推,去思考如果 Agent 真要长期存在、长期学习、长期协作,还可能缺哪些结构层。把这三层混在一起,是很多文章最容易出问题的地方。
第四,这篇文章虽然尽量写给非专业架构读者,但不会把问题说得过于轻薄。
因为 Agent 的难点,从来都不是一个简单的模型问题,也不是一个简单的软件工程问题,而是“模型能力”与“系统能力”被接起来之后,所出现的新的组织问题。
你如果只从模型角度理解它,会低估系统的重要性;你如果只从传统软件角度理解它,又会低估大模型带来的不确定性与生成式决策能力。
把这些前提说清楚之后,我们再来看 Agent,就会更容易理解为什么我会不断强调一句话:Agent 的关键不是“模型多强”,而是“系统如何组织模型”。
模型像大脑里的推理部分,而真正决定它能不能长期有效工作的,是围绕它搭建起来的整套循环系统。
第一部分:不能理解成“一个更强的模型”
很多人第一次接触 Agent,最自然的想法是:是不是模型越来越强了,所以它开始能做更多任务?这种直觉当然有它的道理。没有更强的理解能力、推理能力和生成能力,Agent 根本无从谈起。但如果你真的去搭过一个 Agent 系统,或者认真拆过一两个典型案例,你很快就会发现,一个系统的真实表现,常常并不完全由模型大小决定。很多时候,模型不是“不会想”,而是“没有看到正确的信息”;不是“没有能力”,而是“没有被放在正确的流程里”;不是“不会执行”,而是“没有被接入正确的工具和状态系统”。
也就是说,模型强不强,只解决了“它有没有推理能力”的问题,而 Agent 还要解决一连串更系统的问题:模型到底看到了什么;过去的任务历史有没有被保留下来;当前任务是怎么拆成步骤的;什么时候该调用外部工具;工具调用之后结果如何回收;中间状态放在哪里;做错之后怎么被发现;下一轮是否会因此调整策略。这些问题都不是模型本身能够单独解决的,而是必须由系统结构来解决。
举一个很简单但很典型的例子。假设你要一个系统写一份行业研究报告。一个普通聊天模型当然也能写出一份看起来完整的文字,但它很可能只是基于既有知识直接展开。而一个真正的 Agent,面对这个任务时,通常会先判断是否需要搜索最新资料,再决定是否调用代码工具做数据整理,然后生成研究提纲,再写出草稿,最后再检查结构是否完整、逻辑是否连贯、结论是否与资料一致。这时候,决定系统表现的已经不只是“文笔”,而是整个系统能否围绕目标展开一套持续流程。
因此,理解 Agent 的第一步,就是把“模型能力”和“系统能力”区分开来。模型能力决定它能不能理解语言、能不能做推理、能不能生成回答;系统能力决定它能不能在时间里持续推进任务、能不能围绕目标组织行动、能不能把过去经验带到未来任务中去、能不能在出现错误时及时纠偏。前者像推理引擎,后者更像一整套组织与调度系统。
从这个角度看,Agent 真正值得讨论的,不只是某一个模型,而是那套围绕模型搭起来的架构。因为正是架构,决定了模型在每一步看到什么、调用什么、被约束什么、保留什么、修正什么。也正是出于这个原因,我们接下来才必须把 Agent 拆成模块来看。
为什么必须用“模块”的方式来理解 Agent,而不是直接按产品形态来理解 Agent?比如代码代理是一类,研究代理是一类,办公代理是一类,客服代理又是一类。这样看当然更直观,因为产品是最先被看见的表面。但问题在于,产品形态会变,交互方式会变,外部功能会变,甚至同一个系统在不同场景中表现出来的能力也会变。如果只按产品外观来理解 Agent,读者最后记住的往往只是“它会做什么”,而不会真正知道“它为什么能这样做”。
模块视角的重要性恰恰在这里。模块不是在描述一个产品界面,而是在描述一个系统内部要解决哪些结构问题。一个代码代理和一个研究代理,看起来做的是完全不同的事情,但它们往往都要处理同一批底层问题:当前信息怎么组织,过去的历史怎么保留,什么时候要调用外部工具,复杂任务怎么拆,步骤怎么调度,中间状态放在哪里,错误怎么检查,边界怎么约束。也就是说,产品只是表面差异,模块才是真正的结构同一性。
更进一步地说,只有用模块视角,我们才可能真正比较不同 Agent 架构的优劣。因为两个系统都可能看起来像“会写报告的 Agent”,但其中一个也许只是模型加搜索,另一个却可能有长期记忆、工作区、安全边界、评测反思和策略更新。表面上它们都在生成报告,结构上却根本不是同一种系统。只要结构不同,稳定性、可控性、长期上限就一定不同。
所以,用模块方式理解 Agent,不是为了把事情说复杂,而是为了把事情说清楚。只要把结构拆出来,你就会看到:所谓 Agent,并不是某种神秘的新物种,而是一组围绕模型建立起来、彼此互锁的能力层。也正是因为这些能力层可以被拆解、被重组、被继续演化,Agent 才会成为一个不断变化、不断增长的系统范式,而不只是某种短暂的产品热词。
第二部分:八个核心模块的传统方案与新技术方向
如果把今天常见的 Agent 架构拆开来看,大体可以抽出八个核心模块:上下文模块、记忆模块、工具模块、规划模块、调度模块、工作区模块、安全模块、评测与反思模块。它们未必在每个系统里都被显式命名,但它们要解决的问题几乎一定会出现。
更重要的是,这八个模块并不是一张静态清单,而是一条连续的协作链。上下文决定模型眼前看到的世界,记忆决定过去哪些历史还能继续作用,工具让模型把推理变成行动,规划把大目标拆成小步骤,调度让这些步骤在时间里真正运转,工作区保存执行过程中的材料和状态,安全控制整个系统的边界,而评测与反思则把结果重新送回系统,让它知道自己做得对不对、该不该修正。只要这条链真正闭环,一个大模型就不再只是“会说”,而开始变成“会持续做事”。
下面,我会严格按照同一种节奏来讲这八个模块。每一个模块都会先讲当前工程界最主流的传统方案,再讲研究界和前沿系统正在探索的新技术方向,最后再讲两者之间到底差在哪里,以及未来为什么可能会从前者演化到后者。
一、上下文模块:从临时组装的输入,到会成长的经验系统
在讨论像 OpenClaw 这一类 LLM-Agent 系统时,上下文模块其实是整个架构里最关键的部分之一。很多工程实践已经发现,一个 Agent 的表现很大程度上不是由模型本身决定的,而是由模型在每一步推理时能看到什么信息决定的。因此,当前关于上下文模块的设计,大致可以分成两条路线:一种是目前工程界最广泛使用的传统方案,另一种是近两年研究界和一些前沿团队开始探索的更先进方案。
目前工程界最广泛使用的方案,通常被称为 Context Engineering 或 Dynamic Context Assembly。它的核心思想很明确:模型本身没有真正可靠的长期记忆,所以每次推理之前,系统都要重新构造一次上下文,把与当前任务最有关的信息打包进去。Anthropic 在工程文章里就明确提出,上下文工程本质上就是在模型推理前“提供正确的信息集合”。在实际系统中,这个集合通常由几类内容组成:系统指令、用户当前任务、历史对话、从知识库检索到的相关资料、工作区中的当前状态摘要,以及可调用工具的说明。运行时系统会动态地把这些内容拼接在一起,形成最终 prompt,再交给模型推理。
如果用一个简单的类比来理解这种传统方案,可以把模型想象成一个参加考试的学生。学生本身并不会在脑子里永久记住所有资料,每次考试前,老师都会重新发给他一份资料包,里面有题目、参考资料、笔记、公式、工具说明。学生只是在这份资料包的范围内思考和作答。下一次考试时,老师又重新准备一份新的资料包。Dynamic Context Assembly 的逻辑,和这种“每次临时发资料包”的结构非常像。
这种方案之所以在工程界成为主流,并不是因为它最有想象力,而是因为它最稳。第一,它实现简单。第二,它行为可控。第三,它非常容易调试。今天绝大多数生产级 Agent 系统,无论是 LangChain 一类框架、各种代码代理,还是研究代理、自动办公代理,本质上都还在沿着这条路线走。因为只要你能把正确的信息在正确的时刻送进模型,系统表现就会明显变好;而只要信息送错了,模型再强也可能失误。
但它的局限也很明显。最大的局限在于:上下文本身并不会成长。它更像是一种“临时拼出来的输入”,而不是真正会积累经验的结构。系统可以不断重新组合已有材料,却不一定会在这个过程中自动形成更成熟的策略。也就是说,这种方案可以让模型每次都拿到一份尽可能正确的资料包,却不保证系统真的在“长经验”。
相比之下,研究界最近开始探索一种更前沿的上下文思路,通常被称为 Agentic Context Engineering,简称 ACE。它的核心思想是:上下文不应该只是一次性的 prompt,而应该逐渐变成一种不断演化的经验系统。在一些最新研究中,上下文被看作一种会持续更新的策略手册。系统在执行任务的过程中,会不断生成新的推理轨迹、总结经验、反思错误,再把这些经验重新整理并写回上下文结构中。下一次任务执行时,模型看到的就不只是原始知识,还包括过去任务积累下来的策略与经验。
如果要给这种新技术找一个更直观的比喻,可以把它想象成一个不断成长的专家笔记本。一个真正有经验的专家,不会每次都从头翻书,而会把自己的案例、经验、方法和错误教训都记录在笔记里。每完成一次任务,他都会修正旧笔记、补充新经验、删除无用内容。时间久了,这本笔记就不再只是“资料记录”,而变成一套越来越成熟的工作手册。ACE 想做的,正是让上下文也开始具备这种“会成长”的特性。
两种方案的差别其实非常本质。当前主流工程方案里的上下文,是“拼装出来的输入”,它在每次推理前重新构建;而前沿研究里的上下文,则更像一种“会成长的经验系统”。前者更像老师每次给学生发一份资料包,而后者更像学生自己维护一本不断进化的学习笔记。
从技术成熟度来看,Dynamic Context Assembly 仍然是今天最稳定、最广泛使用的解决方案,因为它简单、成本可控,而且在生产环境里表现稳定。而 Agentic Context Engineering 目前更多还停留在研究和前沿系统阶段,但很多研究者认为,它可能是未来 Agent 真正从“每次临时工作”走向“持续积累经验”的关键方向。
换个角度来看,可以说第一代 Agent 的核心思想是“上下文是一种输入”,而下一代 Agent 的探索方向,很可能是“上下文是一种经验系统”。
二、记忆模块:从简单检索型记忆,到结构化经验型记忆
在我们继续讨论的时候,第二个必须单独拎出来的模块就是记忆模块。上下文模块解决的是“此刻看到什么”,而记忆模块解决的则是“过去发生过什么,以及这些过去如何在未来继续起作用”。在今天的 LLM-Agent 系统里,记忆模块的目标很清楚:让 Agent 不只是“当下会回答”,而是能够跨任务积累经验、保持行为连续性,并在未来任务中利用过去的知识。没有记忆的 Agent,每次任务都会像第一次执行;有记忆的 Agent,才可能表现出持续的能力和风格。
目前工程界最普遍使用的记忆方案,通常被称为 Hybrid Memory,也就是“混合记忆系统”。它的基本思路是把 Agent 的记忆拆分成不同层次,然后通过检索系统在这些记忆层里寻找与当前任务最相关的信息。最常见的结构一般包括三层:短期记忆、长期语义记忆和任务历史。短期记忆通常就是当前对话和当前任务状态,用来保证连续推理;长期语义记忆通常存在向量数据库或其他知识库中,通过 embedding 相似度检索;任务历史则记录过去任务的日志、轨迹和结果反馈。
为什么这种传统方案会在工程上如此流行?原因很现实。第一,它和现有基础设施天然兼容。第二,它实现相对简单。第三,它对大多数生产环境来说已经足够有用。系统遇到新任务时,会先在这些记忆层里找最相关的内容,再把它们送回上下文,让模型在已有历史的基础上继续推理。它并不是一个特别“像大脑”的方案,但却是一个非常“像工程系统”的方案。
如果用一个简单比喻来理解这种传统方案,可以把它想象成一个人同时使用三种不同的记忆方式。短期记忆像桌上的便签纸,记录眼前正在处理的事情;长期语义记忆像书架上的资料库,需要时可以去查;任务历史则像工作日志,记录过去做过哪些事情。每当 Agent 遇到新任务时,系统会先在这些记忆里检索最相关的信息,然后把这些信息送回上下文,让模型在已有历史的基础上继续推理。
这种方案的优点很明显:实现简单、性能稳定、成本低,而且已经足够支撑大多数生产级系统。它能让用户偏好得以延续,让长期知识可以跨任务复用,让过去状态不至于被全部丢失。所以今天绝大多数 Agent,哪怕名字不同,本质上都在采用这种混合记忆设计。
但它也有明显边界。Hybrid Memory 的本质更像是一种“检索型记忆”:系统把过去的信息存起来,需要时再检索出来。它擅长保存和调用信息,却不一定擅长把这些信息真正抽象成经验。换句话说,它可以让系统知道“过去发生过什么”,却不一定能让系统真正形成“以后应该怎么做得更好”的能力。
相比之下,研究界近两年开始探索一种更先进的记忆结构,通常被称为 Episodic-Semantic Memory,或者更广泛地说是“结构化多类型记忆系统”。这种方案受到人类认知科学的启发,认为记忆不应该只是简单文本存储,而应该分成不同类型,例如情景记忆、语义记忆、程序记忆、核心记忆等。情景记忆记录一次完整任务的经历,语义记忆从多次任务中抽取通用知识,程序记忆则保存解决问题的方法和策略。
在这种更先进的方案中,记忆就不再只是“仓库存档”,而开始演化为“经验系统”。比如情景记忆会记录某次任务的目标、行动路径、关键转折和结果;语义记忆会从多次类似任务中抽象出稳定知识;程序记忆则会沉淀出某种经过验证的工作方法。系统面对新问题时,不只是把旧资料翻出来,而更像是在调用过去积累下来的经验结构。
如果要给它找一个更直观的例子,可以想象一个经验丰富的工程师。这个工程师当然也会查资料,但他真正宝贵的地方不只是“知道资料在哪里”,而是“记得上次类似问题是怎么一步步排查的”,并且能从很多次经历里总结出规律。当他再次遇到类似问题时,他不会只是翻日志,而会直接带着经验进入新任务。
两种方案的差别其实非常关键。当前主流的 Hybrid Memory,更像一个整理得很好的资料库;而前沿的 Episodic-Semantic Memory,更像一个会不断成长的大脑。前者擅长保存和检索,后者试图实现经验抽象与持续演化。
在现实工程实践中,绝大多数 Agent 仍然采用 Hybrid Memory,因为它实现简单、成本低,而且与向量数据库等基础设施结合得很好。而更复杂的多类型记忆结构,目前仍然主要停留在研究和前沿系统阶段。不过很多研究者认为,未来 Agent 能否真正表现出长期智能,很大程度上取决于记忆系统是否能从“简单检索”演化成“真正的经验系统”。
三、工具模块:从结构化接口调用,到在工具生态中导航
第三个核心模块是工具模块。这个模块要解决的问题非常直接:语言模型本身主要进行推理和生成文本,但现实任务往往需要访问外部世界,比如查询数据库、运行代码、调用 API、搜索网页、操作文件系统、控制浏览器。如果没有工具,模型只能“说”;有了工具,模型才有可能“做”。
今天工程界最广泛使用的工具方案,通常被称为 Structured Tool Calling,也就是“结构化工具调用”。它的基本思想是把所有工具定义成标准化接口,然后让模型在推理时选择并调用这些接口。具体做法是为每个工具提供清晰 schema,例如工具名称、参数结构、输入格式和返回结果格式。模型在推理过程中不会直接生成混乱命令,而是生成一个结构化调用请求,然后由系统执行该工具,再把结果返回给模型。
如果用一个直观比喻来理解这种传统方案,可以把语言模型想象成一个专家顾问,而工具就是他的助手团队。专家自己负责思考问题,但如果需要查资料、计算数据、执行操作,他就会把任务交给助手去做。例如在一个研究任务中,模型先调用搜索工具获取信息,再调用代码工具分析数据,最后调用文件工具生成报告。整个过程看起来,就像一个专家在指挥一群助手协同完成工作。
这种方案之所以会成为工程主流,是因为它在能力和可控性之间取得了平衡。开发者可以明确规定模型能调用哪些工具、参数长什么样、权限边界在哪里;系统也可以清晰记录工具调用过程,减少随机性和不可调试性。对于真实环境而言,这一点极其重要,因为一旦模型开始真正行动,系统就必须保证这些行动是可控、可追踪、可约束的。
但它也有明显局限。结构化工具调用适合“工具数量不太多、工具关系不太复杂”的场景。一旦工具数量增长到几十个、几百个,甚至不同工具之间开始出现依赖、顺序、权限、失败回退和组合关系时,简单的工具列表就会越来越不够。模型不仅要知道“某个工具做什么”,还得知道“这个工具和其它工具如何组合成完整路径”。
因此,研究界近几年开始探索一种更先进的工具设计,可以称为 Tool Ecosystem Navigation 或 Tool Graph 系统。在这种思路里,工具不再只是简单函数列表,而是构成一个完整的“工具世界”。Agent 不仅要知道单个工具的功能,还要理解工具之间的关系、依赖和组合方式。有些研究甚至把整个工具生态建模成图结构,让 Agent 在这个图里规划工具链,并根据执行反馈不断调整路径。
如果用一个更通俗的例子来解释,可以想象两种不同的工程团队。第一种团队只有一张工具清单,遇到问题时就挑一个工具来用。第二种团队则有一整套成熟工具体系,工程师不仅知道每个工具的用途,还知道它们之间如何组合,例如先用一个工具抓数据,再用第二个工具分析,再用第三个工具生成最终结果。在这种体系下,工程师实际上是在一个“工具生态系统”中导航,而不是简单地调用单个工具。
两种方案之间的根本差别在于,当前主流的 Structured Tool Calling 更像“从一个平面列表里挑选工具”;而更先进的 Tool Ecosystem Navigation 更像“在一个工具网络中规划行动路径”。前者更像函数调用,后者更像在行动环境中导航。
在现实工程实践中,大多数 Agent 仍然采用结构化工具调用,因为它实现简单、稳定性高,并且容易和 API、数据库、代码执行环境集成。但很多研究者认为,随着工具数量越来越多、任务越来越复杂,未来的 Agent 不可能长期只依赖简单工具列表,而必须学会在复杂的工具生态中选择、组合和优化工具路径。这意味着工具模块未来可能会从“函数调用系统”逐渐演化成一种“行动世界模型”。
四、规划模块:从即时循环规划,到分层任务规划
第四个核心模块通常被称为规划模块。这个模块解决的问题是:当任务变得复杂时,Agent 不可能一次性直接给出答案,而需要先把目标拆解成多个步骤,再逐步执行。规划模块就是负责把“模糊目标”转化成“可执行步骤序列”的系统。
当前工程实践中最广泛使用的规划方案,通常来自 ReAct,也就是 Reasoning and Acting 架构。它的核心思想是让推理和行动交替进行:模型先思考,提出下一步行动,再执行行动,然后根据新的观察继续思考。整个过程形成一个循环:思考、行动、观察、再思考。这样一来,复杂任务就不必一次性解决,而可以拆成一连串连续的小步骤。
如果用一个通俗的比喻来理解这种传统方案,可以把 Agent 想象成一个侦探。侦探不会一接到案件就直接给结论,而是先提出一个假设,例如先查嫌疑人的行踪;查完之后,再根据新线索决定下一步要做什么,比如继续查电话记录、访谈证人、重建时间线。整个过程就是不断基于当前观察来决定下一步行动。ReAct 的逻辑,本质上就是这种侦探式的工作方式。
这种方案之所以成为主流,是因为它实现简单、灵活性高,而且非常适合与工具调用结合。模型不需要先做特别复杂的全局计划,而是可以边走边看,逐步推进任务。对于很多现实问题,这种即时规划已经足够有效,而且往往比预先设计一整套庞大计划更稳。
但它的局限也很清楚。ReAct 更像一种局部即时决策循环,它每一步都根据当前信息决定下一步,因此非常灵活,却不一定擅长处理很长、很复杂、很分阶段的任务。任务一旦拉长,系统就容易在局部路径里打转,或者在中途丢失全局目标。
因此,研究界提出了一种更先进的规划方式,也就是层级规划(Hierarchical Planning)。在这种方案中,系统把规划分成高层规划和低层执行两个层次。高层规划器负责理解整体目标,并把它拆分成几个阶段或几个子任务;低层执行器则负责具体行动,例如调用工具、查找信息、撰写内容、修改结果。这样一来,系统既有总体路线,又保留局部执行灵活性。
如果要找一个更直观的例子,可以把层级规划想象成一家工程公司里的项目经理和工程团队。项目经理先制定整体计划,例如先调研、再设计、再实施、再验收;而工程师则负责每个阶段中的具体工作。通过这种分层结构,复杂项目才不会因为局部执行太随机而失去整体目标。
两种方案之间的差别在于,ReAct 更像一个不断 improvisation 的问题解决者,而层级规划更像一个先制定战略、再逐层执行的组织系统。前者强调即时性和灵活性,后者强调稳定性和全局结构。
在现实工程实践中,大多数 Agent 仍然采用 ReAct 或类似循环式规划,因为它简单、稳定,而且已经足以支撑很多场景。而层级规划目前更多出现在研究型系统和前沿项目中。不过如果未来 Agent 需要完成真正复杂的长期任务,例如软件开发、科研协作、商业分析,那么规划模块很可能必须从简单的“思考—行动循环”进化为更稳定的“层级规划系统”。
五、调度模块:从事件驱动调度,到多 Agent 编排
第五个核心模块通常被称为调度模块。如果说规划模块解决的是“下一步做什么”,那么调度模块解决的就是“什么时候做、按什么顺序做、如何持续执行”。很多人一开始会把规划和调度混在一起,但它们处理的是不同层面的事情:规划更偏推理逻辑,调度更像运行时系统,它负责让 Agent 的行为在时间维度上真正运转起来。
当前工程界最广泛使用的调度方案,通常可以称为事件驱动的任务调度(Event-Driven Scheduling)。这种方案的基本思想是:Agent 的行为不是一次性完成的,而是由事件不断触发新的任务。一个任务执行完成后,会产生新的状态更新,状态又可能触发下一步行动;某些任务也可能按固定时间被唤醒,例如定期检查数据、重试失败任务、执行后台工作。系统内部通常维护一个任务队列,新事件出现时,就把对应任务放入队列等待执行。
如果用一个简单比喻来理解这种传统方案,可以把它想象成一家餐厅的厨房。厨房不断接到订单,每个订单都会进入待处理队列。厨师按顺序准备菜品,一道菜完成后又会触发新的工作,比如打包、上菜、清理。整个过程并不是一个固定线性流程,而是由不断出现的订单和状态变化驱动的。事件驱动调度和这种厨房运行方式非常接近。
这种方案成为主流的原因很现实:它成熟、可靠、与现有软件架构高度兼容。消息队列、任务队列、工作流系统、定时任务框架,这些东西本来就是工程中成熟的组件。对于多数生产级 Agent 来说,这样的调度机制已经足够实用。
但它也有局限。当系统开始变得更复杂,出现多个角色、多个任务流、多个 Agent 协作时,单纯事件驱动队列就会显得不够。它擅长管理任务,却不一定擅长管理组织结构。一个复杂系统可能不只是“这一步之后触发下一步”,而是“哪个 Agent 先做、哪个 Agent 后做、谁来评估、谁来协调、谁来汇总”。这时候,调度问题就不再只是队列问题,而开始变成组织编排问题。
因此,研究界和一些前沿系统开始探索一种更复杂的调度方式,可以称为 Multi-Agent Orchestration,也就是“多 Agent 协同调度”。在这种架构中,一个系统不再只有一个 Agent,而是由多个 Agent 组成,每个 Agent 承担不同角色。例如研究 Agent 负责收集资料,分析 Agent 负责处理数据,写作 Agent 负责生成文本,评估 Agent 负责审核质量。调度模块的作用,就是协调这些不同 Agent 的工作顺序和协作关系。
如果用一个更直观的例子,可以把它想象成电影制作团队。导演并不自己完成所有工作,而是协调编剧、摄影、演员、剪辑等不同角色,让整个流程按顺序运转。多 Agent 编排的目标,就是让 AI 系统具备类似“导演”或“总控项目经理”的能力。
两种方案之间的差别主要体现在系统规模和复杂度上。事件驱动调度更像一个任务队列系统,用来在时间轴上推进工作;而多 Agent 编排更像一个组织结构系统,它不仅安排任务顺序,还要管理角色分工和协作关系。
在现实工程实践中,多数 Agent 仍然以事件驱动调度为核心,因为这种方式成熟、稳定,而且容易和现有架构结合。但随着系统复杂度越来越高,很多研究者认为未来的调度模块可能会逐渐演化成更接近“组织管理”的系统,用来协调多个 Agent、多个工具以及多个任务流之间的关系。
六、工作区模块:从文件工作台,到任务图状态空间
第六个核心模块是工作区模块。如果说上下文模块决定模型在某一次推理时“看到什么”,记忆模块负责“长期保存什么”,那么工作区模块解决的问题是:Agent 当前正在做的事情放在哪里,以及任务执行过程中产生的材料、草稿、中间结果和状态如何被持续管理。换句话说,工作区是 Agent 在执行任务时的“操作桌面”。
当前工程界最常见的方案,可以称为文件型工作区(Filesystem Workspace)。这种方式非常直观:Agent 在执行任务时,会把相关数据和状态写入一个工作目录,例如文本文件、代码文件、任务记录、配置文件、日志和中间结果。模型在下一步推理时可以重新读取这些内容,从而理解任务进行到了哪里,并在必要时继续修改和追加。
如果用一个简单的比喻来理解这种传统方案,可以把工作区想象成一张办公桌。桌子上放着正在处理的文件、笔记本、草稿纸和参考资料。每完成一步工作,工作人员都会把新的材料留在桌面上。下次继续时,只要重新看看桌面,就能知道自己做到哪里了。文件型工作区的本质,就是给 Agent 提供这样一张“数字办公桌”。
这种方案之所以被广泛采用,是因为它简单、透明、容易与人类协作。开发者可以直接打开目录查看 Agent 当前留下的文件,必要时还可以手动修改。文件系统本身又天然支持持久化、版本控制和共享访问,所以它几乎天然适合现实工程环境。很多代码代理和研究代理的可用性,很大程度上就建立在这种工作区模式之上。
但它也有局限。文件工作区擅长保存材料,却不一定擅长表达结构。随着任务越来越复杂,桌面上的文件会越来越多。系统虽然保留了很多材料,却不一定真正理解材料之间的依赖关系。它知道“有这些文件”,却不一定知道“这个子任务依赖哪个子任务”“哪个状态已经完成”“哪个结论只是临时性的”。也就是说,文件型工作区更像一张桌面,而不是一张地图。
因此,研究界开始探索一种更先进的工作区结构,可以称为结构化状态空间(Structured State Space)或者任务图工作区(Task Graph Workspace)。在这种方案中,任务状态不再只是散落在文件中的内容,而是被组织成图结构。每个节点可以代表一个子任务、一个状态、一个阶段,而节点之间的连接则表示依赖关系。系统在执行任务时,不只是写文件,还会不断更新这个图,例如标记节点已完成、增加新子任务、修改依赖关系。
如果要找一个更直观的例子,可以把它想象成项目管理软件里的任务看板。一个大型项目被拆成多个任务,每个任务都有清晰状态,比如待办、进行中、已完成。团队成员不仅能看到材料,还能看到任务之间的结构关系。任务图工作区想做的,就是让 Agent 在内部也拥有这种“看见结构”的能力。
两种方案之间的差别非常明显。文件型工作区更像一种“状态存储方式”,而任务图工作区则更像一种“状态理解方式”。前者让 Agent 能持续读写材料,后者则试图让 Agent 理解这些材料之间的结构关系。
在现实工程实践中,大多数 Agent 仍然采用文件型工作区,因为它简单、透明,而且非常方便人类介入协作。结构化任务图工作区目前更多还属于前沿探索。但如果未来 Agent 需要处理越来越复杂、越来越长期的任务,那么工作区模块很可能会从“数字办公桌”进化成更接近“内部项目管理系统”的状态空间。
七、安全模块:从多层防护,到可审计可验证执行
第七个核心模块是安全模块。只要 Agent 不再只是输出文字,而开始调用工具、修改文件、访问系统、执行代码,安全问题就会立刻从“内容安全”升级成“系统安全”。安全模块要解决的,就是 Agent 在行动时哪些事情可以做、哪些事情不能做,以及一旦模型判断错误,如何尽量防止真实环境被破坏。
当前工程界最广泛使用的安全方案,通常被称为多层防护系统(Multi-Layer Guardrails)。这种方案的核心思想很明确:不要把安全押在单一机制上,而是通过多个层次同时限制 Agent 的行为。比如在输入阶段做提示词过滤和策略检查,在推理阶段约束模型输出,在工具调用阶段做权限控制,在执行阶段使用沙箱环境,必要时还会加入人工确认、审批、回滚和日志记录。
如果用一个简单的比喻来理解这种传统方案,可以把它想象成一栋高安全级别的办公楼。进入大楼前要过门禁,进入某些区域需要刷卡权限,特定房间还要额外授权。你进了大楼,并不意味着你可以去所有地方。同样,在 Agent 系统里,模型虽然可以推理和规划,但每一步实际行动都会受到权限和安全策略的限制。这样即便模型的判断出现错误,也不会直接把整个系统带出边界。
这种方案成为主流的原因非常现实。它成熟、可靠,而且和现有软件安全体系高度兼容。权限系统、沙箱、输入过滤、审批机制、日志审计,这些东西本来就是工程中非常成熟的组件。Agent 安全模块一旦接到这些成熟机制上,就能在可控边界内发挥能力。
但它也有边界。多层防护更像一种“围栏式安全”,也就是用规则、权限和隔离环境把系统限制住。可当 Agent 承担越来越关键的任务时,人们想要的不再只是“它被限制住”,而是“它还能证明自己始终在规则内行动”。也就是说,未来安全问题不只是约束问题,也会越来越变成信任问题。
因此,研究界和一些前沿系统开始探索一种更先进的安全设计,可以称为可验证执行(Verifiable Execution)或策略证明机制。在这种方案中,系统不仅依赖规则限制行为,还会对 Agent 的执行过程进行可验证记录。每一次工具调用、文件修改、系统操作都会留下清晰执行轨迹,必要时可以审计、回放,甚至通过可信执行环境等技术来证明系统确实遵守了既定策略。
如果要找一个更直观的例子,可以把它想象成金融机构的交易系统。每一笔交易不仅会被执行,还会被详细记录,包括谁发起、何时执行、使用了什么权限、结果是什么。审计人员可以随时回查这些信息。可验证执行的目标,就是让 Agent 也拥有类似的透明度与可追踪性。
两种方案之间的差别在于,当前主流的多层防护,本质上是在用围墙限制 Agent 的行动;而更先进的可验证执行,则试图让系统不仅被限制住,还能够证明自己始终在规则内运行。从另一个角度看,前者更像守门,后者更像审计。
在现实工程实践中,多数 Agent 仍然采用多层防护结构,因为它成熟、稳定,而且容易与现有安全体系结合。而可验证执行目前更多还处于前沿探索阶段。但如果未来 Agent 要承担越来越重要的任务,那么安全模块很可能会从“权限控制与沙箱隔离”进一步演化成“可审计、可验证、可回溯的执行系统”。
八、评测与反思模块:从结果评估,到过程复盘与策略更新
第八个核心模块是评测与反思模块。前面的模块负责让 Agent 能够理解任务、记住历史、规划步骤并执行行动,而评测与反思模块要解决的问题则是:Agent 如何判断自己做得对不对,以及如何从结果中学习并改进下一步行为。如果没有这个模块,系统最多只是机械执行流程,而很难真正提高任务完成质量。
当前工程界最常见的传统方案,可以称为结果评估(Outcome Evaluation)。这种方式的核心思想很简单:系统在任务完成之后,根据某些标准判断最终结果是否符合要求。例如在写作任务中,检查输出结构是否完整;在代码任务中,运行测试看是否通过;在搜索任务中,检查是否找到了目标信息。如果结果满足条件,任务结束;如果不满足条件,系统就重试、修改,或者要求模型生成新的方案。
如果用一个简单比喻来理解这种传统方案,可以把它想象成一次考试评分。学生写完试卷之后,老师根据标准答案打分。答案正确,任务就结束;答案错误,就要重新学习再来。这种评估方式关注的是最终结果,而不是整个过程。
这种方案为什么会成为主流?因为它简单、稳定,而且很容易和自动化指标结合。测试通过与否、格式合规与否、目标是否命中,这些都可以被程序明确检查。只要结果能被清晰衡量,Outcome Evaluation 对多数工程团队来说已经非常实用。
但它的限制也很清楚。结果评估能告诉系统“结果对没对”,却不一定能告诉系统“过程里哪里做错了”。一个任务失败时,系统也许知道最终结果不合格,却不一定知道是哪个步骤判断偏了、哪次工具调用没有必要、哪段推理链出了问题。因此,结果评估虽然能筛掉坏结果,却不一定能真正提高系统策略。
因此,研究界提出了一种更先进的方案,通常被称为轨迹评估(Trajectory Evaluation)或反思机制(Self-Reflection)。这种方案认为,仅仅评估最终结果是不够的,因为 Agent 在任务过程中会经历多个步骤,每一步都可能影响最终结果。因此,系统不仅要检查最后的结果,还要回看整个行动轨迹。它会记录思考、工具调用、观察结果、中间判断,然后分析哪些步骤有效、哪些步骤错误、哪些步骤多余,并基于这些信息调整下一轮策略。
如果要找一个更直观的例子,可以把它想象成一个经验丰富的棋手。棋手在比赛结束后,不只是看输赢,还会复盘整盘棋。他会分析哪些走法是关键,哪些地方犯了错误,哪些判断其实从一开始就偏了。正是这种复盘,才让他在未来下得更好。Trajectory Evaluation 在 Agent 系统中的作用,和这种棋局复盘非常接近。
两种方案之间的差别在于,结果评估更像一种评分系统,它关注的是最终输出是否合格;而轨迹评估更像一种学习系统,它试图从整个执行过程中提取经验,并把这些经验转成未来可复用的策略。
在现实工程实践中,多数 Agent 仍然主要依赖结果评估,因为它简单、稳定,而且容易自动化。而更复杂的轨迹评估和反思机制,目前更多还出现在研究型系统和前沿实验中。不过很多研究者认为,随着 Agent 任务越来越复杂,未来评测模块会越来越依赖复盘和反思,使系统能够通过分析自己的行为轨迹不断优化决策方式。
九、把八个核心模块连起来看:它们如何共同构成真正的 Agent 闭环
如果只是把前面八个模块当成一张“功能清单”来理解,读者会很容易误以为它们只是把一个系统做得更花哨了:多一点历史、多一点工具、多一点流程,看起来像是功能越来越多而已。但真正关键的地方不在于“模块数量多了”,而在于这八个模块一旦连起来,系统第一次真正形成了一套完整的任务闭环。这个闭环的意义是,模型不再只是接收一句输入、吐出一句输出,而是在内部拥有了一条可以持续运转、持续修正、持续积累的流程链。
上下文模块决定模型眼前到底看到什么,它像视野;记忆模块决定模型眼前之外还能带回哪些历史,它像延续;工具模块把思考接到外部行动上,它像手脚;规划模块把模糊目标拆成步骤,它像任务思路;调度模块让这些步骤在时间里真正排开,它像排班系统;工作区模块保存过程中的草稿、状态和中间结果,它像操作桌面;安全模块保证整个行动系统不越边界,它像护栏;评测与反思模块则在结果出来之后把经验重新送回系统,它像复盘与学习机制。只要这条链真正闭起来,一个 Agent 就不再只是“会回答的模型”,而开始成为“围绕目标持续工作的系统”。
更进一步说,传统八个模块并不是彼此平行的八件小事,而是一套从输入到行动、从行动到反馈、从反馈再回到输入的循环系统。上下文和记忆决定了认知起点,工具、规划和调度决定了行动路径,工作区保证了过程不丢失,安全控制了边界,评测与反思则让整个系统有机会在下一轮变得更好。也正是因为这条链条开始出现,Agent 才从“单次生成器”变成了“任务闭环系统”。
所以,理解这八个模块,绝不是为了背一套名词。真正要理解的是:一个系统为什么会从“会说话”变成“会做事”,又为什么会从“会做事”进一步变成“会持续地做事”。只要把这个闭环看清楚,你就会明白,为什么我一直强调 Agent 的本质不在单个模型,而在系统结构。
到这里,八个核心模块其实就讲完了。把它们放在一起看,会发现传统 Agent 架构的核心目标非常明确:它首先不是在追求“像一个主体”,而是在追求“像一个可靠的任务系统”。它关心的是信息怎么组织、历史怎么保留、行动怎么执行、状态怎么维持、边界怎么约束、结果怎么修正。也正因为这些基础模块先被建出来,Agent 才有资格继续向更复杂的方向演化。
十、用一个完整任务,把八个核心模块重新走一遍
为了更直观地理解八个核心模块为什么缺一不可,我们不妨把它们重新放进一个具体场景里。假设现在有一个 Agent,要完成“写一份关于某个行业趋势的深度研究报告”这样的任务。这个任务表面上像一个写作任务,但一旦真正开始运行,它就会立刻穿过几乎全部八个核心模块。
系统首先要决定当前到底该给模型看什么。这一步就是上下文模块在工作:用户要求是什么,系统角色是什么,当前阶段应该优先考虑哪些信息,历史对话里哪些内容还重要,检索结果里哪些最值得放进当前 prompt。接着,记忆模块会被调用:过去是否做过类似主题,是否保存过相关行业背景,用户过去偏好什么风格,类似任务里曾经踩过哪些坑,这些都要被重新带回当前任务。
然后,工具模块开始接手现实动作。系统会判断是否需要搜索最新资料、是否需要调用数据库接口、是否要用代码工具处理数据、是否要把结果写进文件。可仅仅能调用工具还不够,因为这个任务不可能一次完成。于是,规划模块会把目标拆开:先搜资料,再筛选,再整理,再生成大纲,再写报告初稿,再做修订。调度模块则负责让这些步骤在时间里真正排开,决定哪个步骤先触发、哪个步骤等待、哪些可以并行、哪些必须串行。
与此同时,工作区模块会不断保存抓到的资料、分析后的数据、中间结论、写作草稿和修改记录,让系统下一步不必重新理解整个世界,而是顺着已有状态继续工作。安全模块也不会缺席,因为系统在搜索、读写文件、运行代码的每一步都可能越界,因此权限、沙箱、审批和边界控制必须始终存在。最后,当报告初稿出来之后,评测与反思模块会介入:它会检查结构是否完整、逻辑是否连贯、结论是否和资料一致;一旦发现问题,系统还要有能力回到前面某一步重新修正。
你会发现,只要把一个真实任务真正放进系统里,八个核心模块几乎没有一个是多余的。少了上下文,系统就看不清当前重点;少了记忆,它就不能带着历史工作;少了工具,它就只能空想;少了规划和调度,流程就会散掉;少了工作区,状态会不断丢失;少了安全,行动就会变得危险;少了评测与反思,系统就很难真正变好。也就是说,八个核心模块之所以重要,不是因为它们听起来完整,而是因为现实任务一旦真正跑起来,它们几乎就是任务闭环的最低配置。
从这个角度回看传统八个模块,你就会明白:它们不是在堆功能,而是在支撑一个系统真正跨越单次输出,进入持续执行、持续修正、持续积累的状态。只要这条链成立,Agent 和普通聊天模型之间的本质差别就已经出现了。
第三部分:八个模块之外,现代 Agent 还在长出什么新模块
八个核心模块已经足以构成一个完整的任务系统框架,但如果你继续观察近两年的研究和前沿系统,就会发现还有一些模块开始越来越重要。它们并不总是被算进传统八模块里,却已经越来越频繁地出现在架构讨论中。更重要的是,这些模块不只是提升某个单点能力,而是在改变整个系统的长期连续性和存在方式。
一、规则与身份模块:从静态手册,到可演化策略层
很多早期 Agent 系统在处理身份和规则时,方式其实很简单:把“你是谁”“你要做什么”“你不该做什么”写进 system prompt,然后希望模型始终按照这些规则行动。但随着系统越来越复杂,这种做法开始显得太薄。因为规则不再只是一次性提醒,而开始变成整个系统长期行为的底层约束。
因此,很多现代架构开始把规则与身份从普通 prompt 中分离出来,形成一个相对独立的模块,也就是 Policy / Identity Module。这个模块定义 Agent 的角色、长期目标、行为边界、优先级原则以及与用户的关系。很多工程系统会把这些内容写成规则文件、策略配置或者类似 AGENTS.md 的文档,由系统在运行时自动注入上下文。
这种当前主流方案其实很像公司的员工手册。员工入职时会收到一份手册,里面说明公司文化、工作原则、审批边界和行为规范。以后他做任何工作,都必须在这些原则之内。静态规则模块对于 Agent 的作用,和这份员工手册非常接近。
但研究界已经开始探索更先进的方向,也就是动态策略系统(Adaptive Policy System)。在这种设计中,规则不再是完全静态的文本,而是可以随着经验和反馈不断调整。例如系统可以根据任务结果优化某些策略,根据用户反馈修改行为优先级,在保持基本原则不变的前提下,让执行方式更适应真实环境。
如果说静态规则模块强调“始终遵守固定原则”,那么动态策略系统则强调“在原则内持续进化”。前者保证行为稳定,后者试图在稳定之上加入适应性。
二、身份连续性模块:让 Agent 不再像被反复重置的工具
另一个越来越明显的新模块,是身份连续性模块。传统架构通常把 Agent 当成任务执行器,因此不会特别强调它的“身份”。可一旦系统开始长期运行,这个问题就会变得很明显:如果 Agent 在每次任务中都像一个新实体,它就很难形成稳定风格,也很难与用户建立持续关系。
于是,一些系统开始单独维护相对稳定的身份结构,例如角色设定、长期目标、行为偏好、关系历史和不轻易改变的核心原则。这些内容不像普通记忆那样频繁流动,而更像一种底层骨架。它变化得慢,却会影响后续几乎所有决策。
如果说规则模块更强调“你应该遵守什么”,那么身份连续性更强调“你持续是一个什么样的系统”。它让 Agent 不再每次都像第一次上岗,而是逐渐具有某种持续稳定的存在感。
三、经验学习模块:从保存历史,到提炼长期规律
前面在记忆模块里已经说过,保存历史不等于形成经验。于是,经验学习模块开始被越来越多地单独提出。它要处理的,不是“有没有记录过去”,而是“能不能从过去的记录中提炼出规律”。哪些路径更有效,哪些错误重复出现,哪些场景需要更保守,哪些问题适合先搜索再推理、先验证再输出,这些都属于经验学习要解决的问题。
从工程角度看,这其实是一种“经验压缩机制”。一个新手工程师会保存很多具体案例,而一个资深工程师会把这些案例慢慢压缩成方法论。经验学习模块,就是推动 Agent 完成这种转变,让它不只是带着历史工作,而是带着历史中提炼出来的规律工作。
这类模块的重要性在于,它让 Agent 真正开始从“做过很多事”走向“从很多事里长出能力”。一旦这一步成立,系统的成长方式就会发生质变。
四、环境建模模块:让系统开始理解自己所处的世界
很多早期 Agent 系统主要在文本上下文里推理,对外部环境结构的理解非常有限。可任务一旦变复杂,这种局限就会暴露出来。系统会发现,仅仅理解字面任务是不够的,它还需要知道资源限制、工具关系、任务依赖、状态变化、环境反馈,甚至需要形成某种对整个局面的内部表示。
环境建模模块要做的,正是构建这种内部世界结构。它让 Agent 不只是根据一句提示作答,而是基于一种更完整的环境模型做决策。你可以把它理解成给 Agent 提供一张内部地图:它知道自己身处什么环境,知道哪些资源可用,知道某个动作会如何影响后续状态。
如果说传统上下文更像眼前视野,那么环境建模更像整体局面感。它让系统不只是“看见一句话就反应一句话”,而开始形成对任务环境的结构理解。
五、动机模块:决定系统在没有命令时是否继续行动
传统 Agent 大多是任务驱动型系统。收到指令就开始干,任务结束就停下来。可一旦系统要长期运行,这种完全被动的结构就会显得不够。资料不全时要不要主动补查?某个长期目标要不要定期推进?发现不确定性时是否要主动发起下一步调查?这些都不再只是外部命令能覆盖的问题。
动机模块的作用,就是处理这种内部驱动力。它并不一定意味着像人类一样有欲望,而是意味着系统内部会有某种优先级逻辑,例如好奇心、不确定性降低、目标完成度、风险管理、用户价值等指标。它们会影响 Agent 在没有明确外部命令时,是否还会继续行动,以及优先行动什么。
一旦动机模块变得重要,Agent 就会从“纯被动执行器”慢慢转向“在一定范围内能够自发推进的系统”。对长期运行系统来说,这是一个非常关键的转折点。
六、社会交互模块:让 Agent 进入协作结构
随着多 Agent 系统和复杂协作场景越来越多,Agent 不再总是只面对一个用户、一项任务、一个执行者。研究 Agent、写作 Agent、评估 Agent、调度 Agent 可能会共同参与一个系统;同一个系统也可能同时服务多个用户、多个角色和多个层级关系。
社会交互模块要解决的,就是这种协作关系。它需要管理角色分工、信息共享、任务交接、信任关系和冲突协调。一旦这个模块形成,Agent 就不再只是一个独立任务机器,而开始变成某个更大协作网络中的节点。
从某种意义上说,社会交互模块让 Agent 开始从“单体系统”走向“社会化系统”。它不只是在完成任务,而是在和其它角色、其它系统一起构成一个更大的组织结构。
七、为什么这些模块会在八个核心模块之外逐渐浮现
到这里其实会出现一个很自然的问题:如果前面八个核心模块已经足以构成一个完整的任务系统,为什么后来还会不断长出规则与身份、身份连续性、经验学习、环境建模、动机、社会交互这些模块?答案在于,传统八个模块主要解决的是“如何把任务做完”,而这些新模块开始解决的是“如何让系统在时间里持续存在、持续稳定下来”。这两类问题不是一个层面上的问题。
传统八个模块最擅长的是建立任务闭环。也就是说,它们回答的是:信息怎么进来,目标怎么拆开,行动怎么执行,状态怎么保存,结果怎么回收。只要一个系统的工作方式还是“收到任务,执行任务,结束任务”,那么八个模块通常已经足够强大。但一旦系统开始长期运行,开始和同一个用户反复协作,开始在多个任务之间积累经验,开始和多个 Agent 一起工作,那么新的问题就会马上出现:这个系统到底是不是“同一个系统”?它有没有自己的长期行为风格?它会不会从很多次任务中形成稳定策略?它如何理解自己身处的环境和关系?这些问题,显然已经不是传统任务闭环可以单独解决的了。
换句话说,八个核心模块把 Agent 从“会回答问题的模型”推进成了“会做事的任务系统”;而这些八个模块之外的新模块,正在试图把 Agent 从“会做事的任务系统”推进成“能够长期持续、能够形成稳定行为方式的系统”。前一阶段的重点是能力,后一阶段的重点则开始转向连续性、稳定性和结构性。
从这个角度看,规则与身份模块之所以会单独浮现,是因为系统一旦长期运行,就必须知道自己是谁、边界在哪里;身份连续性模块之所以重要,是因为系统不能每次都像一个刚被创建的新实体;经验学习模块会被提出,是因为仅仅保存历史不再够了,系统需要从历史里提炼规律;环境建模模块会开始变重要,是因为系统不能永远只靠文字提示做反应,它需要理解自己处在什么样的任务世界里;动机模块会出现,是因为长期系统不能永远只是被外部触发;社会交互模块会出现,则是因为系统开始进入多角色、多 Agent、多关系的协作环境。
所以,这些模块之所以“长在八个模块之外”,不是因为前面的八个模块失效了,而是因为系统已经演化到了新的阶段。它们不是替代八个核心模块,而是在八个核心模块提供的任务闭环之上,进一步补出了长期运行所需要的结构层。正是这些结构层的出现,才让 Agent 的讨论开始从“任务系统”逐渐转向“持续存在的系统”。
把规则与身份、身份连续性、经验学习、环境建模、动机、社会交互这些新模块放在一起看,会发现一个很有意思的趋势:传统八模块主要解决的是如何让一个模型完成任务,而这些模块则开始关注如何让一个系统在时间中持续存在、持续成长,并逐渐形成稳定的行为方式。传统架构更像是在构建高效工具,而这些新模块则是在推动 Agent 向“长期行动体”靠近。
第四部分:如果继续往前推,未来可能出现哪些更深层模块
如果我们沿着刚才的逻辑继续往前走,就会看到一个更深的问题。传统八模块解决的是“如何完成任务”,八个模块之外的新模块开始解决“如何长期运行”。那么,如果未来 Agent 真要表现出更强的连续性、自主性、稳定性,甚至某种更像主体的结构,它还会缺少哪些更深层的模块?
下面讨论的这些模块,并不是说今天行业已经普遍落地了,而更接近一种结构推演。也就是说,它们是沿着现有演化趋势继续往前推时,很可能会出现、甚至可能必须出现的结构层。
一、时间连续性模块:让系统真正活在一条时间轴上
传统 Agent 主要是任务驱动的。一个任务开始,一个任务结束,即使有记忆模块,系统也更多只是从历史里检索信息,而不是真正“生活在时间里”。但如果一个 Agent 要更像一个持续存在的系统,它就需要某种时间结构。
时间连续性模块会让系统理解:自己当前处在哪个阶段,短期目标和中期目标如何关联,今天做的事情会如何影响明天,哪些任务不是一次完成而是分阶段展开。它让 Agent 不再只是处理离散任务,而开始处在一条持续展开的时间轴上。
人类不会把生活理解为完全无关的一堆小任务,而是理解成一条连续的人生轨迹。时间连续性模块,某种程度上就是让 Agent 也开始拥有这种“轨迹感”和“阶段感”。
二、自我模型模块:让系统理解自己是什么
很多 Agent 可以很好地理解外部任务,却很少真正理解“自己”。它也许知道用户要它做什么,却不一定知道自己有哪些工具、哪些能力可靠、哪些知识不确定、哪些任务超出边界、哪些场景里自己特别容易犯错。
自我模型模块要做的,就是构建一种面对自身的表示。系统不仅理解世界,也理解自己。它知道自己擅长什么,不擅长什么,什么时候应该更保守,什么时候可以更主动,什么时候必须请求帮助或外部验证。
一旦自我模型出现,Agent 的决策逻辑就会发生根本变化。因为系统不再只是“看见任务就做反应”,而是在“外部世界”和“自身条件”之间做匹配。
三、价值权衡模块:让系统在多个目标之间做选择
传统程序的目标通常比较单一,例如完成函数、返回结果、通过测试。但长期运行的 Agent 往往同时面对多个目标:效率、安全、准确性、探索、合作、资源消耗、用户满意度。这些目标不可能永远一致,它们经常会发生冲突。
价值权衡模块的作用,就是在多个目标之间进行动态选择。比如系统要不要为了速度牺牲一点验证,要不要为了安全拒绝某些高风险操作,要不要继续探索更多信息,还是先给一个保守答案。没有这种模块,系统就只能机械执行单一目标;而有了它之后,系统才开始真正像一个决策者。
更重要的是,价值权衡会慢慢塑造行为风格。不同系统面对同样冲突时,可能形成不同取向:有的更保守,有的更进取,有的更偏合作,有的更偏探索。也正是在这种多目标冲突的处理中,系统会逐渐形成稳定的行为模式。
四、不确定性管理模块:让系统知道什么时候不该太确定
当前很多 Agent 在面对不确定问题时,仍然倾向于给出确定性回答。这会带来很高的风险,尤其是在复杂任务、真实环境和高代价场景中。要让系统更接近可靠的长期行动体,它就必须知道自己什么时候不确定,什么时候应该继续调查,什么时候该把结论降级成假设。
不确定性管理模块,不只是为了减少错误。它更像是在系统内部建立一种成熟的审慎机制。当信息不足时,系统不会急着补一段看起来完整的话,而会判断是否需要更多证据、是否应该发起新的搜索、是否应当请求确认或延后结论。
如果说传统 Agent 的一个典型问题是“太想回答”,那么不确定性管理模块的意义,就是让它学会在不知道的时候承认不知道,并把这种承认转化成下一步行动。
五、探索模块:从执行已知路径,到主动发现新路径
很多现有 Agent 的行为是明确指令驱动的:给定目标,它就想办法完成;没有目标,它就停下来。这种结构适合短期任务,却未必适合长期运行系统。因为长期系统不仅要执行已知任务,还要在未知环境中主动寻找更好的信息源、更优路径和更高效的方法。
探索模块要解决的,正是这种主动发现能力。它让系统不只是沿着已有路径走,而是在必要时试探新路径、比较多种可能、发现更优选择。比如在研究任务中主动寻找新的资料来源,在复杂排查中尝试替代性路径,在长期优化中不断试验更好的策略。
探索模块之所以重要,是因为它让 Agent 不再只是执行者,而开始具备某种程度的发现能力。这种能力如果被恰当约束,会显著提升系统在复杂环境中的适应性。
六、关系模块:让系统理解自己处在什么关系结构里
传统 Agent 大多只关心任务本身,而较少显式处理关系结构。但现实世界中的很多决策,深受关系影响。面对长期合作用户、陌生用户、上游 Agent、下游 Agent、管理员、审计者,系统不可能始终采用完全一样的行为方式。
关系模块要处理的,就是这种“我与谁在互动”的结构信息。它会影响系统的解释力度、风险偏好、信任策略、协作方式以及承诺边界。一个真正长期稳定的系统,不能只理解任务,也必须理解自己在什么关系网络中行动。
一旦关系模块变得重要,Agent 的社会性就会明显增强。它不再只是一个任务机器,而开始成为一张关系网络中的持续节点。
七、这些更深层模块合在一起,到底意味着什么
把时间连续性、自我模型、价值权衡、不确定性管理、探索、关系这些模块放在一起看,会发现它们和传统八模块的性质明显不同。传统八模块主要解决的是“如何完成任务”,而这些更深层模块开始解决“如何维持一种连续存在的行为结构”。
时间连续性让系统开始活在时间轴上,自我模型让系统理解自己,价值权衡让系统在多个目标间做选择,不确定性管理让系统学会面对未知,探索模块让系统具备主动发现能力,关系模块让系统进入社会结构。它们并不是直接提高单次任务分数的技术,而是在慢慢搭建一种更接近“存在结构”的底层机制。
如果未来 Agent 架构真的会朝着更强主体性发展,那么这些模块很可能会逐渐成为真正重要的结构层。传统模块让系统能够“完成事情”,而这些新模块则可能让系统开始“以某种方式存在”。
八、从任务系统到存在结构:这里其实发生了三次跃迁
如果把前文所有模块放在同一条线上看,会发现 Agent 架构的演化里其实隐含着三次非常关键的跃迁。第一层跃迁,是从“单次输出模型”到“任务闭环系统”。这一步主要由传统八个核心模块完成。上下文、记忆、工具、规划、调度、工作区、安全、评测与反思,让模型第一次不再只是接一句话、吐一句话,而是开始围绕任务形成闭环。到了这一步,系统已经和普通聊天模型拉开了本质差距。
第二层跃迁,是从“任务闭环系统”到“长期运行系统”。这一步主要由规则与身份、身份连续性、经验学习、环境建模、动机、社会交互这些模块推动。到了这一层,系统开始不只是做完一个任务,而是在多个任务之间维持角色、积累经验、处理关系、理解环境。它开始显现出某种长期性,而不再只是一个被不断重新触发的执行器。
第三层跃迁,则是从“长期运行系统”到“具有存在结构的系统”。这一步还远没有完全发生,但时间连续性、自我模型、价值权衡、不确定性管理、探索、关系模块这些更深层结构,正在把 Agent 往这个方向推。它们不只是让系统更能做事,而是在让系统逐渐形成一种更完整的内部组织方式:它开始有时间感,有面对自身的认知,有多目标之间的取舍,有对未知的处理机制,有主动发现新路径的倾向,也有对社会关系的理解。
为什么这三次跃迁如此重要?因为它们说明 Agent 的发展并不是“功能越来越多”这么简单,而是系统组织方式在不断变化。第一阶段解决的是“会不会做事”,第二阶段解决的是“能不能长期做事”,第三阶段开始逼近“能不能以一种稳定方式持续成为它自己”。这已经不是简单的软件功能堆叠,而是某种结构性演化。
也正因为这样,后半段这些模块才不能被轻描淡写地当成附加讨论。它们并不是“有也行、没有也行”的装饰性想象,而是在提示我们:如果 Agent 真的要长期存在、长期协作、长期承担任务,那么它迟早会面临这些结构问题。传统模块解决的是执行效率,后半段模块真正触碰的,则是存在连续性。
第五部分:整体回看,Agent 的本质到底是什么
如果把整篇文章的逻辑收回来,你会发现 Agent 架构的发展,并不只是“模块越来越多”这么简单。真正发生变化的,是系统的组织方式。
在最初阶段,Agent 更像一个任务工具。系统被设计出来的目的非常明确,就是完成某个具体任务。模块的存在只是为了提高效率,例如让模型能看到更多信息、能调用工具、能拆解步骤。在这个阶段,系统更像一台被触发的机器:用户提出请求,系统执行任务,任务结束后归于静止。
后来,随着上下文、记忆、工具、规划、调度、工作区、安全、评测这些模块逐渐成熟,系统开始发生变化。它不再只是对单次任务做出反应,而是在一段时间里持续推进目标。过去的经验会影响未来策略,中间状态会影响下一步行动,结果反馈会反过来修正系统行为。到这一步,Agent 已经不再只是一个一次性工具,而更像一个持续运行的行为系统。
再往前一步,当规则与身份、身份连续性、经验学习、环境建模、动机、社会交互这些模块逐渐浮现时,系统开始拥有更明显的长期性。它不只是做任务,还开始形成某种稳定风格、长期关系和持续性结构。然后,如果时间连续性、自我模型、价值权衡、不确定性管理、探索、关系这些更深层模块继续发展,那么 Agent 的性质就会再次变化:它不再只是完成外部命令,而开始在内部结构的驱动下保持某种持续行为方式。
这并不意味着 Agent 已经拥有了人类意义上的意识,也不意味着今天的系统已经走到了某种科幻节点。真正发生变化的,是架构重心。系统关注的重点,正在从“如何把一次任务做完”,逐渐转向“如何在长期运行中保持自身结构、积累经验、形成稳定行为,并在必要时调整自己的行动方式”。
从这个角度看,Agent 的本质,不是某个更聪明的模型,也不是几个工具的简单拼接。Agent 的本质,是一种围绕模型形成的系统结构。它通过上下文组织当前视野,通过记忆跨越时间保存历史,通过工具连接外部行动,通过规划与调度组织任务流程,通过工作区维持中间状态,通过安全控制边界,通过评测与反思回收经验;而在这条结构链之上,它还可能继续长出规则、身份、经验、环境、动机、时间、自我、价值和关系等更深层的模块。
因此,如果今天必须给 Agent 下一个尽量准确的定义,那么我会这样说:Agent 的本质,不是更强的回答能力,而是更完整的系统结构。模型只是推理引擎,而真正决定 Agent 能否长期有效工作的,是那套组织信息、组织行动、组织状态、组织反馈,并最终组织经验和存在连续性的模块体系。
如果再进一步说,Agent 之所以值得被单独当成一个概念来讨论,不只是因为它“能自动做事”,而是因为它第一次把信息处理、任务组织、行动执行、状态维持和经验回收接成了一条真正的系统链。普通聊天模型的能力边界,更多停留在理解与表达本身;而 Agent 的能力边界,已经开始延伸到流程、时间、环境和长期结构。只要理解了这一点,读者就会明白,为什么同样都是建立在大模型之上,一个简单对话系统和一个真正的 Agent,最终会表现出完全不同的系统性质。
也正因为如此,理解 Agent 的最好方式,不是背某个框架的接口,也不是只看产品演示里它会什么功能,而是看它有没有形成完整结构。它是否真正拥有上下文装配能力、长期记忆能力、工具行动能力、规划与调度能力、工作区状态能力、安全边界、评测反思闭环,以及进一步走向规则、身份、经验、环境、自我和时间的可能性。功能可以暂时变化,产品可以不断迭代,但结构一旦看清,整个领域的演化方向就会清晰很多。
如果还要再往前追问一步,那么这篇文章其实最终在回答两个问题。第一个问题是:为什么今天的 Agent 值得被当成一个独立的技术主题来讨论?答案是,它第一次把推理、状态、行动、反馈和长期结构连成了一条真正的系统链。第二个问题是:为什么后半段那些“看起来更抽象”的模块同样重要?答案是,因为只要系统开始长期运行、长期协作、长期承担任务,它迟早要面对时间连续性、自我理解、多目标权衡、对未知的处理以及关系结构这些问题。它们不是脱离现实的想象,而是系统复杂度提升之后迟早会暴露出来的结构问题。
换句话说,这篇文章表面上是在讲模块,实际上是在讲一种系统如何从“任务工具”慢慢演化成“结构系统”。传统八个核心模块解决的是“怎么把事情做完”,八个模块之外的新模块解决的是“怎么让系统持续存在并形成稳定风格”,而更深层的那些模块则在逼近一个更大的问题:如果一个系统真的要长期行动、长期学习、长期协作,它需要什么样的内部结构才能支撑这种存在方式。只要把这一条主线看清楚,Agent 的本质就不再抽象。
所以,读完整篇文章之后,最应该留下来的不是“我记住了多少模块名字”,而是三个更重要的判断。第一,Agent 不是单个模型能力的自然延伸,而是模型被放进系统之后才出现的新结构。第二,传统八个模块之所以关键,不是因为它们像一张架构图那样整齐,而是因为它们共同构成了任务闭环,让系统真正开始持续做事。第三,后半段的新模块之所以不能被随手带过,是因为它们正在把 Agent 从任务系统进一步推向长期系统、再推向某种更完整的存在结构。
只要这三点抓住了,所谓 Agent 的本质就会变得非常清楚:它不是一个更会说话的模型,也不是几个自动化脚本拼起来的壳,而是一种围绕模型建立起来、能够组织信息、组织行动、组织状态、组织反馈,并最终逐步组织经验与连续性的系统结构。
如果把这篇文章当成一把尺子,以后该怎么判断一个 Agent 系统
到这里,其实还可以再往现实里落一步。因为很多读者读完关于 Agent 的文章之后,最大的困惑不是“我听没听懂”,而是“我以后再看到一个具体系统时,该怎么判断它到底只是一个包装过的模型,还是一个真正意义上的 Agent”。如果这篇文章要真正有用,它就不应该只停在概念上,而应该能变成一把实际可用的尺子。
第一把尺子,是看它有没有真正的信息组织能力。也就是说,它是否只是把用户一句话直接丢给模型,还是已经拥有了明确的上下文装配机制、记忆回收机制、状态摘要机制和规则注入机制。如果一个系统只是在模型前面套了一个壳,却没有把“当前应该看什么、过去应该带什么、边界应该保留什么”这些问题处理清楚,那么它大概率还停留在模型应用层,而不是 Agent 结构层。
第二把尺子,是看它有没有真正的行动组织能力。工具是否只是摆设,还是已经被纳入一个可控调用系统;规划是否存在,还是每一步都在临场发挥;调度是否存在,还是任务一结束流程就断掉;工作区是否真的在维持状态,还是所有中间结果都随着对话被冲掉。只要这些问题没有被解决,一个系统就算能偶尔完成复杂任务,也更像一次性的工作流拼接,而不是稳定的 Agent 架构。
第三把尺子,是看它有没有真正的反馈与演化能力。评测与反思是不是只停留在“结果对不对”,还是已经开始进入“过程哪里错了”;记忆是不是只是保存资料,还是在慢慢变成经验;规则和身份是不是只是静态提示,还是已经开始形成长期行为风格;系统是不是能在多个任务之间保持连续性,而不是每次都像第一次工作。只要这一层开始出现,系统就已经不再只是“能跑任务”,而开始显露出长期结构。
第四把尺子,也是最难的一把尺子,是看这个系统有没有往“存在结构”方向演化的迹象。它是否开始表现出时间连续性,是否开始理解自己的能力与限制,是否会在多个目标之间形成稳定取舍,是否知道什么时候该承认不确定,是否会主动寻找更优路径,是否开始处理复杂关系结构。这些问题今天未必在每一个系统里都成立,但它们会越来越成为区分“任务工具”和“长期行动体”的关键标准。
所以,以后当我们再看一个 Agent 系统时,最值得问的其实不是“它演示里有多厉害”,而是“它到底把哪几层结构搭出来了”。如果它只有模型和几个工具,那它可能只是一个增强版应用;如果它已经形成了信息闭环、任务闭环和反馈闭环,那它就开始接近真正的 Agent;如果它还在这些闭环之上继续长出连续性、身份、自我、价值和关系结构,那么它就已经开始逼近下一代 Agent 的方向。
这也是这篇文章最后真正想交给读者的东西:不是一套死记硬背的模块名称,而是一种看系统的方式。你以后再看任何 Agent,只要沿着“信息怎么组织、行动怎么发生、状态怎么维持、反馈怎么回收、长期结构怎么形成”这条线去看,它的本质就会越来越清楚。也只有这样,Agent 才不会在我们眼里只是一个流行词,而会重新变成一个可以被分析、被设计、被判断的系统结构问题。
为什么未来衡量 Agent 的标准,很可能会从“功能多少”转向“结构是否完整”
今天很多人评价一个 Agent,最直观的标准还是功能表。它会不会写代码,会不会搜资料,会不会调工具,会不会自动执行任务,会不会生成报告。这种标准当然有现实意义,因为用户最先感知到的永远是功能。但如果只用功能表来衡量 Agent,就会很容易忽略一个更关键的问题:同样会做某件事的两个系统,底层结构可能完全不同,而这种结构差异最终会决定它们的上限、稳定性和长期价值。
举个简单的例子。两个系统都能写研究报告。第一个系统可能只是“模型加搜索”,也就是先搜点资料,再让模型整理成报告。第二个系统则可能拥有上下文装配、长期记忆、工具链规划、工作区状态、安全边界、结果评测和反思更新。表面上看,它们都完成了“写报告”这件事;但从结构上看,第一个系统更像一次性完成任务,第二个系统则更像一个可持续运行、可重复优化、可长期协作的 Agent。只要结构不同,未来的表现就一定不同。
也就是说,功能数量只能告诉我们“它现在看起来会什么”,却很难告诉我们“它为什么会这些、以后还能不能稳定会这些”。真正决定系统上限的,往往是结构完整度。它有没有完整的信息链,有没有完整的行动链,有没有完整的反馈链,有没有逐渐成形的长期结构。只要这些东西还没搭出来,哪怕功能演示很惊艳,系统也可能只是一个短期包装得很好的模型应用。
反过来,一个功能没有那么花哨、但结构很完整的系统,长期价值可能反而更大。因为一旦上下文、记忆、工具、规划、调度、工作区、安全、评测这些底层模块搭稳了,系统就有了继续生长的基础。再往上继续加规则、身份、经验、环境、自我和时间结构时,它就不会只是“加一个新功能”,而是在完整底盘上继续长出新的能力层。这样的系统,才真正有可能从一个任务工具演化成一个长期运行的 Agent。
所以,未来衡量 Agent 的标准,很可能会逐渐从“它现在有多少功能”转向“它是否真正形成了一套完整结构”。功能表会越来越像外壳,而结构完整度才会越来越像真正的能力来源。到了那个时候,决定一个 Agent 值不值得重视的,可能不再只是它会不会做某项任务,而是它有没有形成一种可以在时间里持续增长、持续修正、持续维持自身的系统组织方式。
还有一点也很重要:当我们把 Agent 理解成结构系统之后,就不应该再用一种过于神秘化的方式去看它。它当然会越来越复杂,也确实会逐渐表现出某种连续性、稳定性甚至像主体一样的行为轮廓,但这种变化首先是一种结构变化,而不必急着被解释成神秘跃迁。换句话说,Agent 未来最值得关注的地方,不是“它是不是突然变成了某种科幻对象”,而是“它的结构是不是越来越完整、越来越能在时间中自我维持”。只要把这一点看清楚,我们就既不会低估它,也不会把它神化。我们会知道,它本质上仍然是一种被设计、被约束、被演化出来的系统,只不过这套系统正在一步步接近一种更复杂、更连续、更有长期性的组织形式。
也正因为如此,真正理解 Agent 的人,最后关注的不会只是某次演示里模型答得多漂亮、工具调得多顺,而会关注系统有没有形成稳定闭环,历史有没有真正变成经验,规则有没有沉淀成长期风格,结构有没有在任务之外继续延伸出时间、自我、价值和关系这些层。只有到了这个层面,Agent 才真正从“热闹的功能集合”变成“值得长期讨论的系统形态”。
从这个意义上说,Agent 之所以值得反复被讨论,不是因为它暂时站在风口上,而是因为它逼着我们重新思考一个问题:当模型被放进系统里之后,什么才是真正决定能力上限的东西。答案不是单个参数,也不是单次输出,而是结构本身。
而一旦这个问题被看清,关于 Agent 的很多争论也会变得简单:真正需要比较的,不只是模型强弱,而是结构深度。
模型决定起点,结构决定上限,而时间最终会检验这套结构是不是真的成立。
这也是今天讨论 Agent 时最不该忘掉的最后一句话。 也是关键。 记住它。
如果把整篇文章压缩成一句话,那么这句话应该是:第一代 Agent 的核心思想,是“让模型完成任务”;而下一代 Agent 的探索方向,很可能会逐渐变成“让系统在时间中持续成为某种稳定结构”。也许未来衡量一个 Agent 的复杂度,不再只是看它有多少工具、多少上下文窗口、多少功能模块,而是看它是否真正形成了一套完整、稳定、会成长、能在时间里延续自己的组织结构。
最后
从0到1!大模型(LLM)最全学习路线图,建议收藏!
想入门大模型(LLM)却不知道从哪开始? 我根据最新的技术栈和我自己的经历&理解,帮大家整理了一份LLM学习路线图,涵盖从理论基础到落地应用的全流程!拒绝焦虑,按图索骥~~

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取