先说结论:这份九校联合整理的高效智能体综述,是我近期读过的Agentic AI材料里,把“记忆、工具使用、规划”三大方向梳理得最干净的一份。圈子里聊Agent框架的人很多,但能把这三条技术主线串成一个整体框架、还能给出评测方法和落地启发的综述,确实不多。如果你想在2026年之前快速建立对智能体的系统认知,而不是继续在零散的技术文章里打转,这份综述值得静下心读一遍。
这篇文章我不打算复述综述原文,而是以我的实际阅读体验和工程视角出发,把综述里的关键结论、技术逻辑、我踩过的坑和换来的想法,按适合从业者的方式重新整理一遍。适合正在做Agent应用开发的工程师、刚入门的研究生、以及想判断“记忆、工具、规划到底哪个方向该投入”的技术决策者。
1. 为什么都盯着“记忆、工具、规划”——这篇综述先把问题定义清楚了
1.1 一个被反复问的问题:Agent到底比普通LLM多了什么
过去一两年,市面上冒出了大量冠以“Agent”之名的产品,但相当一部分只是给大模型套了一层提示词外壳,用户多问两轮就露馅。真正意义上的高效智能体,至少要具备三个能力:能记住任务和对话的有效信息(记忆),能调用外部接口和工具完成实际问题(工具使用),能对复杂任务做拆解与执行路径的选择(规划)。
这份综述最让我认可的地方,是它没有上来就堆模型架构和训练技巧,而是先把这三件事的定义、边界、子问题拆开了。记忆问题关心的不是“能不能记住”,而是“在有限的上下文窗口和存储成本下,哪些信息值得长期保留、哪些应该被清除、哪些需要按需检索”;工具使用关心的不是“能不能调用函数”,而是“面对成千上万个工具时,如何快速选出对的、参数怎么填、调用失败后怎么恢复”;规划关心的不是“能不能给个大纲”,而是“在分支众多的任务空间里如何做决策、如何在执行中根据中间结果修正路径”。
这三个问题一旦被明确下来,后面再看各种框架、论文、开源项目,就有一条非常清晰的判断主线了。比如某个开源项目宣称“多智能体协作很强”,你要看的是它在任务分解和状态共享上做了什么,而不是它启用了多少个Agent实例。
1.2 用“快递分拣员”的类比理解三大方向的关系
我在读综述时一直在找一个能向非技术朋友解释智能体架构的类比,最后发现“快递分拣员”挺贴切。
一个高效的分拣员有三样东西离不开:自己的小本子(记忆),手边的扫码枪和传输带(工具),以及脑子里对“包裹怎么走最优路径”的判断(规划)。小本子如果只记今天上午的包裹,下午遇到连续任务就断片;扫码枪如果只能扫一种条码,遇到异形包裹就卡住;规划如果只按固定路线,遇到传送带故障就全线停摆。智能体也一样——记忆决定它能在多长的时间跨度内保持一致的行为,工具决定它能对环境施加多大程度的操作,规划决定它在不确定环境里的应变水平。
综述里专门强调了一个观点:三大方向不是割裂的三块,而是互相咬合的。工具调用失败后的补救路径依赖记忆提供的上下文;长期记忆的写入策略需要规划模块判断“当前这段信息值不值得存”;而规划分支的选择结果,本身就应当作为一段结构化记忆写入存储。看到这一层,再看任何智能体系统设计,你都不会只盯着某一个组件了。
2. 记忆方向:从“看完就忘”到“该记的能记住、不该记的敢扔掉”
2.1 短期记忆与长期记忆的分层,不是学术名词而是工程刚需
综述在记忆部分第一件事就是给记忆做了分类。最基础的是短期记忆,相当于对话和工作上下文,很多人把它直接理解为上下文窗口,这个理解不够完整。短期记忆也包括当前任务的状态缓存、中间推理结果的暂存,它讲究的是读取快、随任务结束而释放。工程上常见做法是把最近几轮对话或最近几步工具调用的结果拼成一个局部上下文,只给当前这步决策看。
长期记忆则要解决跨会话、跨任务的信息保持问题。综述总结了三种主流的长期记忆载体:向量数据库、知识图谱、结构化文件。向量库适合语义相似度检索,做“我记得好像遇到过类似问题”很合适;知识图谱适合保存实体关系,比如“这个账号属于哪个项目、上次改了什么配置”;结构化文件则是成本最低的选择,适合存偏好、配置、规则这类信息量小但稳定的内容。
我自己的项目里,长期记忆的选型原则是:能用结构化文件就不用向量库,能用向量库就不上知识图谱。道理很简单,知识图谱的构建和维护成本是持续的,一个小团队如果没人专门负责实体抽取和关系维护,图谱很快就会烂掉,反而污染检索结果。
2.2 记忆的写入、读取、遗忘:综述里藏着三个关键设计点
很多人以为记忆模块就是一个“向量库加检索”,但综述花了大量篇幅讲三个容易被忽略的设计点。
第一是写入策略。不是所有信息都值得存,也不是所有信息都值得完整地存。高频的做法是分级摘要:原始信息先放短期工作区,如果发现某段内容多次被用到,或者被规划模块标记为高价值,再触发压缩整理并写入长期存储。这里有一个关键参数——摘要是损失性的,过度压缩会丢失细节,而丢失细节在排障类任务里往往是致命的。我自己在日志类Agent上就吃过亏,把错误堆栈压成了“某接口异常”,结果后续定位问题时完全找不到线索。现在的做法是摘要里必须保留关键标识符列表,哪怕上下文多花几十个token。
第二是读取策略。单纯按向量相似度取Top-K并不够。综述里提到一个更实用的混合排序思路:相关性分与时间衰减加权,同时加入多样性约束,避免返回的十条记忆全都在讲同一件事。这个细节太符合实际了,因为真实业务里的记忆噪声是普遍存在的,有时候用户只是多问了一句无关的话,语义相似的错误记忆就会被反复检索出来,把Agent带偏。
第三是遗忘机制。综述明确说“遗忘不是bug而是特性”。长期记忆如果只增不删,检索难度和存储成本都会上升,更麻烦的是过时信息会对决策产生误导。工程上推荐的是按重要性和时间双维度打分,定期触发压缩或淘汰。比如一条记录了三个月前的临时配置的记忆,如果没有再次命中,就应该降权甚至清除。我在做订阅消息聚合Agent时加了遗忘机制后,检索命中准确率提升了大概两成,效果非常直接。
2.3 记忆评测为什么难——这也是综述里相当诚实的一部分
综述还指出了一个很现实的问题:记忆模块很难单独评测。因为记忆的最终价值体现在下游任务的完成质量上,而不是“记住了几个片段”。所以现在通行的做法是把记忆组件放进完整的Agent任务链路里做端到端评估,通过对比有无记忆模块的任务完成率差异,间接衡量记忆的质量。
这也意味着,如果你在做记忆优化,不要只看单次检索的Recall指标,要设计一个“连续多轮任务”来检验。比如我给某客服问答Agent做记忆升级时,直接构造了三十组需要跨五轮以上对话才能完成的用户需求,让它在关闭长期记忆、开启长期记忆、开启长期记忆加遗忘机制三种模式下各跑一遍,用任务完成率和平均对话轮数两个指标做对比。这种评测方式比任何单点指标都有说服力。
3. 工具使用:能调用函数只是入场券,真正难的是选对和恢复
3.1 工具是智能体的手,但“有手”和“会用手指”之间隔着三层问题
综述里对工具使用的定义很清楚:工具使用指的是智能体通过调用外部接口、API、代码解释器或网页操作,把大模型的文本能力转化为对真实环境的操作能力。和单纯让LLM输出一段JSON调用一个函数不同,在真实工程环境里,智能体面对的常常是几百上千个工具。
我在一次给内部运营系统接入智能助手时,把公司现有接口全部做成工具描述后发现,光是把所有这些工具描述塞进提示词就不现实。token消耗太大,而且模型在长清单里选错工具的概率直线上升。综述里也提到了这一层:当工具数量超过一定规模,把全部工具塞进上下文是最笨的办法。
解决思路是引入工具检索层。先把所有工具的描述、参数、使用场景预处理好,用户请求进来后先用向量检索召回候选工具集(比如二十到三十个),再让大模型在候选集里做选择。这个小改动直接让我的工具调用准确率从不到七成提升到九成上下,而且每次请求的token消耗也降下来了。
3.2 工具选择与参数填充:最容易翻车的两个环节
综述把工具选择拆成两个子问题:选哪个工具,以及参数怎么填。
选哪个工具的问题,除了上面说的检索召回,还有一个容易被忽视的细节——工具描述的质量。很多团队在把API包装成工具时,只用一句“获取用户信息”这种模糊描述。实际上工具描述应该像给API写商品介绍一样,说清楚这个工具适合在什么场景下调用、返回什么格式、有没有副作用。我后来给工具描述加了“调用前注意”字段,专门标注容易误用的场景,模型选错的概率又降了一截。
参数填充更考验系统性。综述里提到一个我很认同的策略:不要把参数定义的校验逻辑寄托在模型自觉上。工具层必须做强制校验,包括枚举值检查、必填项检查、类型转换。因为大模型在生成JSON时偶尔会手滑给一个格式正确的枚举值错误值,这时候如果不校验直接发请求,轻则返回错误,重则触发危险操作。
3.3 调用失败后的恢复能力,比调用本身更值得投入
工具使用里最难也最容易被低估的,是失败后的恢复。真实世界的API没有文档里写的那么稳,超时、限流、参数被网关拦截、下游服务返回了预料外的结构,这些情况每天都在发生。
综述里给出的方案框架是:把工具调用设计成带反馈的闭环,而不是一次性发射。工具调用失败后,把错误信息作为观察结果回传给模型,让模型判断是换一个工具、调整参数重试、还是干脆告诉用户“这件事做不了”。但这里必须加一个重试上限,否则模型会在同一错误上反复打转,浪费大量token和时间。我一般把重试上限设为两次,并且要求第二次重试必须换策略,而不是原样再发一遍。
另一个很实用的经验是给工具调用做日志追踪。每次调用的工具名、参数摘要、返回状态、错误信息全部记入日志和短期记忆,这样不仅在排障时能快速还原路径,还等于给Agent累积了一份“哪些工具在哪些场景下容易失败”的经验库,可以用来优化工具描述和选择策略。
3.4 RAG和工具使用的关系,别把它们对立起来
很多开发者把RAG和工具使用当成两个互斥的选项,但综述里的观点是它们解决的是不同层级的问题:RAG负责把外部静态知识补进上下文,工具负责对环境施加动态操作。一个需要查“公司请假制度”的Agent,用RAG就够了;一个需要“帮我在系统里提交请假申请”的Agent,就必须走工具调用。
但实际项目中这两者常常是串行出现的。我的常见做法是:先由RAG检索到相关操作手册,手册里写清楚了提交申请需要哪些字段和哪个接口,再由模型根据手册内容触发对应的工具调用。这时候RAG提供的知识就变成了工具参数的结构化来源,准确率比让模型凭空生成参数高得多。
4. 规划方向:从单步ReAct到分层任务分解,智能体的“思维路径”怎么选
4.1 单步决策与全局规划的区别
规划能力是三大方向里最抽象、也最影响用户体验的一环。最经典的ReAct模式就是“思考-行动-观察”循环,模型每走一步都先想一下,再调用一个动作,再根据观察结果决定下一步。这种模式实现简单,适合任务分支不深、单步决策即可推进的场景,比如信息查询类Agent。
但真实业务里,很多任务需要先规划再执行。综述里把它总结为Plan-and-Execute模式:智能体先对用户请求做整体任务拆解,生成一个可执行的分步计划,然后逐步执行,执行过程中根据中间反馈决定是否修改计划。这两种模式的区别,有点像一个新手按导航一步步走,和一个老司机先看地图规划好路线再出发。
我做了一个带调研性质的Agent,最初采用纯ReAct模式,结果在跑一个五步以上才能完成的多源信息收集任务时非常不稳定:经常走到第三步就忘了最初的目标,或者因为中间某一步的噪声结果偏离了主线。改成Plan-and-Execute后,先把大任务拆成“查资料-整理框架-逐节填充-核对来源”几个阶段,执行稳定性明显改善。这也印证了综述里的一个判断:任务越复杂、链路越长,显式规划的价值就越大。
4.2 任务分解、重规划与反思:规划不能“一步到位”
综述在规划部分花了不少篇幅讲任务分解的质量问题。好的任务分解不是把“写一篇综述”拆成“写第一章、写第二章”,而是拆到每个子任务都有明确的可执行标准、可验收产出。我在实践中发现,拆解粒度失当是规划失效的主要原因:拆得太粗,子任务本身还复杂到需要再分解;拆得太细,计划列表长得没法看,模型自己都记不住。
另一个关键设计是重规划(Replanning)。环境是动态的,用户会打断,接口会失败。如果计划一旦生成就不可变,Agent就跟没有规划一样。综述里建议在计划中预留检查点,每完成一个里程碑就评估“当前情况还支持原计划吗”,如果偏差超过阈值就触发重规划。我在客服工单处理Agent里加了“用户补充信息导致问题范围变化”的检测后,重规划触发时机的把握越来越准。
反思机制也值得一提。综述里提到的反思跟人类“复盘”很像:每轮任务结束后,把成功经验或失败原因回写到记忆里。这里规划和记忆两个方向就产生了交集——反思结果本身就是一种高价值的长期记忆。我的做法是让反思模板固定,包含“任务目标、实际路径、偏差原因、下次改进点”四个字段,全部写入结构化记忆文件,后续任务启动时可以查一下有没有同类历史。
4.3 规划评测的三个指标:成功率之外还要看步数和恢复成本
综述里给出的规划评测思路让我很有启发。大多数团队评估智能体只看任务成功率,但规划质量还应该看平均执行步数和失败恢复成本。
平均执行步数反映规划的简洁性。在相同成功率下,步数越少说明路径越优,token成本越低。我跑实验时经常遇到一种情况:Agent用十几步绕弯完成了任务,虽然成功了但显然规划质量不高。加了步数统计后,这类问题就能被量化发现。失败恢复成本则衡量“一旦出错,需要额外多少步才能回到正轨”。这个指标结合重规划机制来观察,能直接检验规划模块的稳健性。
5. 综述里容易被忽略、但部署时一定绕不开的四件事
5.1 记忆和上下文管理的成本曲线
记忆不是白来的。短期记忆占总上下文,每轮对话都要重新发给模型,加长上下文会推高单次推理的延迟和费用。长期记忆的写入要调用摘要和向量化模型,检索要调用向量库和排序模块,这些都会增加中间环节的开销。
工程上我建议给智能体设置预算门限:单任务允许的最大token消耗、最大步数、最大工具调用次数。预算门限不是用来限制能力上限的,而是用来兜底防止失控。没有预算控制的智能体,在一次混乱的规划循环里烧掉十万token不是什么稀奇事。
5.2 工具权限的最小化与沙箱执行
工具使用能力的边界必须清晰。给Agent暴露所有接口等同于把生产环境大门敞开。综述里虽然没有展开讲安全,但部署层的经验是明确的:按角色和场景划分工具权限,每个Agent只挂载它真正需要的工具集;危险操作(删除、修改、发送外部消息)需要二次确认或添加后置审批。
如果Agent需要执行代码类的工具操作,尽量把执行环境放进沙箱,限制网络出口、文件系统和系统调用。我见过一例内部Agent因为代码工具未做沙箱,在一次测试时误操作写脏了共享目录,还好是开发环境。从那以后我把代码类的工具全部切到隔离容器了。
5.3 评测一定不能只看演示用例
综述的作者团队反复强调“评测方法要公开透明”。这一点真的太重要了。现在很多项目拿两三个惊艳Demo到处宣传,但实际拉去跑长尾任务立刻现原形。我给团队定的规矩是:建一套固定的评测集,里面除了正常任务,还要包含中断、歧义、工具故障、用户前后矛盾这些边界情况;每次改动模型或Agent链路,都要在这套评测集上跑完整回归,看成功率、平均步数、成本三个指标的波动方向。
5.4 从单Agent到多Agent协作,别盲目跟风
多Agent协作是热点话题,但综述里给了一个冷静的判断:多Agent不等于更聪明。多个Agent协作引入的通信开销、职责重叠、信息不一致问题,在小任务上往往得不偿失。更合理的路线是先把单Agent的记忆、工具、规划做到位,当任务确实出现明显的不同职责域、且并行执行能带来效率提升时,再考虑拆分为多个角色型Agent。
6. 这份综述对普通团队的三条实用价值
6.1 别贪大而全,先把“最小闭环”跑通
我在自己团队内部反复强调一个观点:高效智能体的起步不是搭一个大而全的框架,而是跑通“记忆-工具-规划”的最小闭环。哪怕最简单的版本——用对话记录当短期记忆、挂两个API工具、用Prompt实现一套简单的ReAct循环——只要把这个闭环完整跑起来,就已经超过大多数“只接API不设计链路”的半成品了。
6.2 优先级建议:工具先行、记忆随后、规划最后做复杂化
如果你是刚起步,我给的建议是先把工具使用做好。原因是工具的效果最容易量化,接口调用成功率和任务完成率直接挂钩,也最容易获得团队认可。第二步补记忆,尤其是跨会话的长期记忆,这会让Agent从“每次重新认识你”变成“越用越懂你”。最后再优化规划,因为规划是在前两者都稳定之后才值得做复杂化的环节——地基不稳,规划层再花哨也没用。
6.3 用评测数据代替直觉,是团队最容易赢的一步
最后一点是我个人最大的体会。Agent研发里最不缺的就是“灵光一现”的直觉,但最缺的是把这些直觉转化为可对比评测的方案。把任务成功率、平均步数、工具调用失败率、单任务成本这四个数字做成一张趋势表,每周更新。只要这张表在正常上升,你不需要纠结任何框架争论——你走的方向就是对的;如果某个改动让指标掉了,不管Demo多惊艳,立刻回滚。
这份综述的价值不在于给了什么银弹,而在于它用一套清晰的框架,把Agentic AI领域的记忆、工具、规划三大方向做了系统性的梳理与小结。我自己读完后最大的收获,是终于能把脑海里零散的经验、踩坑的教训、读过的文献归位到统一坐标上。如果你也在做智能体相关的工作,建议把这份综述当作自己的技术地图,然后沿着地图去深入各个方向的原始论文和工程实践。