聊到智能体,你可能已经看过不少演示视频:让AI帮我订机票、写代码、整理表格。可一旦自己动手做,就会发现那个“什么都能干”的智能体,其实很容易卡在第三步或者第四步——跑飞了、重复执行了、上下文太乱忘了前面说啥。最近大半年,智能体方向的论文密集得吓人,我趁机把注意力相关的几类代表性工作重新梳理了一下,发现研究圈的重心已经明显从“单轮任务的惊艳表现”转向“长时间运行的系统能力”。这篇分享不是逐篇翻译论文,而是把这阵子我看到的智能体最新进展,按我自己的理解重新组织一遍,适合正在做Agent研发的工程师、想引入智能体的产品负责人,以及准备入门这个方向的同学。
1. 智能体研究的新方向:从单点demo到系统能力
1.1 研究重心转移的三个信号
我最早接触智能体时,大家比拼的是“单轮任务能不能做对”,比如给一个自然语言指令,模型能不能正确调用工具、返回结果。那时候论文里最漂亮的图表是某几个基准测试上的准确率。但最近半年,风向变了。
第一个信号是“跑得久”开始被当成正经指标。以前一个任务通常几十秒内结束,现在论文里开始出现连续执行几百步、跨多个会话的长周期任务。某篇讨论自动化的研究明确说,真实用户并不在乎你第一步多惊艳,而在乎你连续运行一周别把数据弄乱。这个转变背后是应用场景的实感:短任务早就被基础模型解决得差不多,剩下的硬骨头都是长链路、多分支、需要中途改需求的复杂场景。
第二个信号是“自我纠错”从加分项变成了必选项。过去模型答错了,大家当作正常概率。现在智能体论文里大量出现自我验证、反思、回退重试的环节,研究问题也从“能不能答对”变成“答错了能不能意识到、能不能改回来”。有篇做浏览器操作的研究专门统计了错误类型,发现超过一半的失败来自步骤级的小错误,而不是整体规划错误。这直接推动了后面反思类工作的爆发。
第三个信号是评估体系本身的进化。越来越多的论文不再只报告准确率,而是报告任务成功率、平均步数、每步工具调用成功率、token总消耗这些“工程向”的指标。这种变化说明智能体研究正在从纯粹的科学探索,转变成需要兼顾成本、稳定性和可维护性的系统工程。
1.2 技术栈分层:中间层成为主战场
如果给智能体技术栈画个简化的分层,大致可以分成三层。底层是基础模型能力,包括上下文窗口、指令跟随、推理能力、函数调用能力,这些主要由模型训练侧驱动。上层是具体场景应用,客服、代码生成、浏览器自动化、数据处理,每个行业都有自己的一套交互逻辑。真正变化最剧烈的是中间层,也就是连接模型能力和场景应用的“系统层”。
系统层这几年冒出来一堆组件:任务编排器、记忆管理模块、工具注册与路由、多智能体通信协议、可观测性日志系统、评测与回归框架。比如记忆管理,早期大家只是把历史对话拼进prompt,现在论文开始讨论分层记忆、记忆压缩、记忆冲突消解。工具调用也从“写死几个函数”发展成“大规模工具库里的自动检索与选择”。
中间层之所以成为主战场,是因为模型能力本身已经很难拉开差距,但系统设计的好坏直接决定智能体在真实场景里能不能用。同样是调用一个工具,有的系统能让模型在报错后自动换参数重试,有的系统就直接卡死。同样面对用户中途改需求,有的智能体能及时更新计划,有的还在死磕旧目标。这些差异几乎全部来自系统层的设计,而不是模型本身。所以大家很快达成共识:智能体不是“一个强大的模型”,而是一套围绕模型的完整系统。
2. 单体智能体进化:长上下文、推理与工具调用的三个关键点
2.1 长上下文不是越长越好,关键是“会整理”
长上下文是智能体发展的地基。过去智能体做到第十步就开始“失忆”,因为最早的模型上下文只有几千token,稍微多聊几句就把前面的内容挤出去了。现在主流基础模型的上下文窗口大幅扩大,理论上一本几百页的书都能塞进去,这给智能体的长时间运行提供了底层的可能性。
但长上下文并不等于长记忆,这是我踩过最深的坑之一。上下文窗口变大,只说明你能输入更多内容,不代表模型能有效利用这些内容。某篇研究做了一个实验,把大量历史操作记录全部塞进上下文,结果发现模型后期的决策质量反而下降。原因并不难理解:无关的历史日志占据了注意力,模型被淹没在海量信息里,抓不住真正重要的线索。这就像把一个房间扩大五十倍却不做收纳,东西还是乱,找起来甚至更慢。
有效利用长上下文,核心动作是“整理”。论文里的常规做法分几类:一是分段结构,把系统指令、当前任务、历史摘要、工具说明放在不同区域,模型在处理时能区分优先级;二是摘要压缩,每隔一定步数把旧日志用模型压缩成摘要,保留关键信息而不是完整记录;三是检索增强,不把全部历史塞进上下文,而是根据当前任务检索相关片段。我个人在实际项目中用的是“摘要+检索”的混合方案:长期记忆全部入库,每次决策前拉取与当前任务相关的历史记录,而不是无脑拼接全部日志。
2.2 推理策略从“想一下”变成“想清楚再执行”
推理能力在智能体里的角色,这两年也发生了很明显的变化。早期大家把推理当成“让模型多想一步”,典型做法是在prompt里加一句“请一步步思考”。现在的论文已经把推理做成一个完整的闭环:计划、执行、检查、修正。模型不再仅仅是在生成答案前多想一步,而是在整个任务执行过程中持续地“想清楚再执行”。
这个转变来自一个很朴素的观察:智能体执行任务一定会出错,关键是出错后怎么办。某篇做代码生成的研究把智能体的执行过程拆开,发现大量最终失败案例在中间步骤就埋下了隐患,但模型没有中途发现,一路执行到底才暴露问题。于是研究者开始给智能体加“中间检查点”:每完成一个子操作,就让模型对当前状态做一次快速评估,如果发现偏离预期,立刻回退或调整。这个操作看似简单,却让整体成功率明显提升。
推理也是有代价的。让模型每一步都做深度反思,会翻倍甚至三倍地增加token消耗和响应延迟。某篇我做过的流程自动化实验里,加了完整反思循环之后单任务成本从几万token涨到十几万,速度也慢得让人抓狂。合理的做法是分级部署:快速路径直接执行,发现异常或高失败风险时再触发深度推理。有位研究者提过一个很实用的原则:简单任务走快思考,复杂任务走慢思考,错误恢复时走最慢的思考。这个原则值得直接抄进自己的系统设计。
2.3 工具调用走向大规模工具库:选对工具比会用工具更重要
工具调用能力已经成了智能体的标配,但研究方向已经从“能不能调用工具”转向“在大量工具里能不能选对工具”。打个比方,以前是给模型一个电话,告诉他拨号就行;现在是把一个几百人的通讯录给模型,你得自己找到该找的人,还得知道用什么语气和对方说话。
这个转变背后是工具数量的膨胀。真实场景里,一个稍微完整的智能体可能要接入几十甚至上百个工具:查库存、发邮件、改数据库、调图表、访问外部接口。某篇做工具选择的研究发现,工具数量超过二十个以后,模型选错工具的频率显著上升,而且会一本正经地调用一个“看起来合理但实际不存在”的工具。这个现象有个名字叫参数幻觉,具体表现是模型编造出不存在的函数名、字段名或参数格式,导致API调用直接失败。
解决参数幻觉,靠prompt喊话没用,必须靠工程手段。第一层是给每个工具写清楚的结构化schema,用类型约束和必填字段挡住大部分编造;第二层是调用前做一次参数校验,不符合schema的请求直接拦截,不让它真正发出去;第三层是调用失败后的自动重试,带错误信息让模型自己修正。对于风险较高的工具,比如删除操作、发送消息、外部支付,我强烈建议加一个人工确认环节。别看这一步会牺牲一些自动化程度,但它能挡住非常多灾难性的误操作。
3. 多智能体协作:从多轮对话走向组织化分工
3.1 为什么单体智能体扛不住复杂任务
单体智能体再强,也有几道绕不过去的墙。第一道墙是上下文污染。一个任务如果既涉及数据分析又涉及文案撰写还涉及跨系统操作,所有信息全挤在同一个上下文里,模型很容易把几个目标搅在一起。第二道墙是角色耦合。让同一个模型既当规划者又当执行者,还要当审查者,等于让一个员工同时干产品、开发、测试三个岗位,精力必然分散。第三道墙是恢复困难。单体智能体一旦在某个环节出错,往往只能从头重来,很难精准定位到出错的那一部分做局部修复。
多智能体协作的出现正是为了解决这几道墙。核心思路简单说就一句话:把一个无所不能的智能体,拆成多个各司其职的智能体,让它们像一个小团队一样配合。某篇偏综述方向的文章用了一个很形象的比喻:一个人再能干也干不过一个组织良好的办公室,因为组织能并行处理、能互相校验、能按专长分工。我做过的某个跨平台数据同步系统,一开始就是单体结构,后来发现两个场景的规则经常互相干扰,拆成几个独立智能体之后,各管各的规则,问题一下子清了不少。
但多智能体不是银弹。它最大的缺点是协调成本。你看团队开会一个小时就为了确定谁干什么,智能体之间发消息也一样消耗token和时间。任务本身如果只有三步,拆成多个智能体纯属浪费。所以什么时候上多智能体,在本文第6章我会给出一张选型判断表,这里先记住一个原则:任务复杂度越高、子任务之间边界越清晰,多智能体的收益越大。
3.2 通信协议设计:别让智能体“群聊式”发散
多智能体系统里最容易翻车的地方不是单个智能体的能力,而是它们之间的通信方式。早期很多做法很粗暴:所有智能体共享一个消息池,谁都能往里面发消息,谁都能看到所有消息。这种“群聊式”结构跑两个角色还行,角色一多就彻底发散。某篇研究专门对比了几种通信结构,结论很有意思:完全自由的群聊反而表现最差,因为无关消息互相干扰,智能体们忙着读消息,根本没时间干活。
设计通信协议时要考虑几个关键点。一是消息结构,最好用结构化消息,带上发送方、接收方、消息类型、内容、时间戳,而不是一段松散的自然语言。结构化程度越高,接收方越容易判断“这消息跟我有没有关系”。二是消息路由,不要让所有消息广播到所有角色,要有明确的收件人规则,类似于公司里的邮件分组。三是通信轮次上限,两个智能体之间如果为了一个小小的分歧来回拉扯五十轮,任务肯定完蛋,所以每对智能体之间最好设置轮次上限,超了就交给上级裁决。
异步和同步的选择也很讲究。有些任务需要严格等待结果,比如规划者发出指令后执行者必须完成后才能进入下一步,这种就要走同步通道;有些任务可以并行推进,比如研究者和编码者各干各的,最后汇总,这种就走异步通道。我见过一个系统设计成所有消息都走异步,结果规划者还没收到结果就继续派活,最后整个任务逻辑全乱套。后来改成“关键路径同步、分支路径异步”,系统立刻稳定了很多。
3.3 角色分工与死锁问题:动态协作的实践边界
多智能体的角色分工,这两年也有一个清晰的变化:从固定模板走向动态生成。早期的工作喜欢预设固定角色,比如规划者、执行者、审查者各一个,任务来了就往这套模板里套。这种做法在小场景里好用,但真实任务千奇百怪,固定模板经常错配。现在的研究倾向于让系统根据任务自动判断需要哪些角色,再让每个角色声明自己的职责和能力边界。某篇工作把这种做法称为“按需组织”,本质上是把任务拆解的步骤也交给模型完成。
动态分工听起来美好,但有一个非常现实的问题:死锁。智能体A在等智能体B的结果,智能体B又在等智能体A的确认,两边谁也不让,任务就这么卡住。我真实遇到过这类问题,排查了半天才发现两个智能体在互相等待。后来解决方案也很简单:给每个智能体设置超时上限,等待超过一定时间就自动上报给总控节点,总控节点负责调度、重派或者直接接管。总控节点就是整个系统的兜底,它的存在让每个子智能体可以放心失败,失败之后不会拖垮整个任务。
角色分工的粒度同样值得反复调试。角色太少,等于没拆;角色太多,协调成本高到离谱。我做过一个多智能体实验,一开始分了八个角色,结果光通信日志就占了绝大多数token,最后只能砍掉一半角色才让任务跑起来。一个比较实用的经验是:先按“规划、执行、检查”三个粗粒度角色起步,只有当执行环节确实出现明显瓶颈时,再往下细分。别一上来就追求精细分工,多智能体系统的复杂度是随着角色数量非线性增长的。
4. 记忆与反思:让智能体真正“越用越聪明”
4.1 记忆分级:工作记忆、情景记忆与语义记忆怎么落
智能体要“越用越聪明”,核心在记忆系统。论文里经常提到记忆分级,这套概念其实来自认知心理学对人类记忆的分类:工作记忆对应正在处理的信息,情景记忆对应经历过的事件,语义记忆对应长期积累的知识。工程上完全可以参考这个框架做映射。
工作记忆就是当前执行任务的上下文,它的特点是生命周期最短、更新最频繁,需要时刻保持精确,所以通常直接放在模型上下文里,不做持久化。情景记忆对应智能体过去执行过的任务轨迹,包括用了哪些工具、踩过哪些坑、最后怎么成功的,这类记忆通常需要持久化,在下一次遇到相似任务时被唤醒。语义记忆对应长期不变的知识,比如公司内部的接口规范、业务规则、工具使用手册,它相对稳定,适合放在知识库里供所有任务共享。
很多人以为记忆系统就是“把所有历史塞进向量库,然后按相似度检索”,实际远远不够。检索信号的设计很关键。纯粹按语义相似度检索,容易把“看起来像”的旧记忆拉出来,却没抓住真正有用的上下文。比如当前任务和目标客户A相关,最该被唤醒的不是相似表述的旧任务,而是同一个客户上次的执行记录。所以至少要为记忆打上时间、实体、任务ID这些结构化标签,检索时先用这些信号过滤,再用语义相似度做排序。这个“结构化过滤在前、向量相似度在后”的顺序,是我自己的项目里效果提升非常明显的一个调整。
记忆写入也不是简单地把执行日志存起来。写入前要做格式校验,太长的要压缩,太乱的要整理,敏感信息要脱敏。某篇做记忆管理的研究里有一个很值得借鉴的做法:每一条记忆都记录来源任务ID、创建时间、置信度,后续使用的系统可以根据置信度决定这条记忆是直接采用还是仅供参考。这个细节避免了很多“错误记忆毒害后续任务”的问题。
4.2 反思循环:复盘是提升成功率最划算的投入
反思是让智能体从失败中学习的关键机制。它的基本流程很简单:任务结束后,智能体把这次的执行过程回放一遍,找出失败原因,生成经验教训,存入记忆。这个动作在人类世界里就是“复盘会”,在智能体系统里就是一次额外的模型调用。
不要小看这一步带来的收益。某篇做客服智能体的研究显示,加入反思模块后,同类任务的重复失败率明显下降,系统在处理相似问题时调用外部API的次数也少了。原因不难理解:第一次可能靠瞎试,反思后知道了正确路径,第二次就直接走正确路径。我在一个文档处理系统里加了类似机制,效果同样立竿见影:系统从“每次重新摸索”变成“越来越熟练”。
但反思不是免费的。每次反思都要消耗token,都要增加延迟。如果每走一步都反思一次,系统会慢到没法用。我的经验是给反思设置触发条件:任务整体失败时必须反思;用户明确表达不满时触发反思;某个关键指标低于阈值时触发反思。正常执行的任务可以不反思,或者只在结束阶段做一次轻量总结。还有一个实用的做法是控制反思深度:简单任务只需要一句话级别的修正建议,复杂任务才需要多轮深度分析和行动清单。
4.3 记忆系统的工程挑战:存储、版本化与污染治理
记忆系统的工程实现,坑比想象中多得多。第一个问题是存储选型。向量数据库适合做语义相似度检索,但在精确条件查询上很弱;关系型数据库擅长结构化查询,却不擅长语义匹配。真实系统里最常见的方案是混合存储:结构化标签和元数据放关系库,向量和正文放向量库,查的时候两边结合。别偷懒只用一个,记忆系统的检索质量会打折扣。
第二个问题是记忆版本化。记忆不是永远正确的,新经验可能推翻旧结论,所以每条记忆至少要带版本号和时间戳。某篇研究提到了一个经典事故:智能体把一条错误的操作路径写进了长期记忆,后续任务全部被这个错误记忆带偏,系统越用越傻。事后排查发现,这条记忆没有任何来源标注和置信度校验,系统也无法判断它是否已被推翻。解决办法是给记忆加“来源+置信度+生效状态”三个字段,并且允许管理员人工审核和撤回。
第三个问题是记忆污染,这是我最想提醒大家的。污染指的是不该写入记忆的内容被写进去了,比如某次异常状态下的临时处理方式被当成通用经验,或者某个用户隐私数据被当成业务规则记录。污染一旦进入长期记忆,影响会被逐步放大。常见的治理手段包括:写入前过滤低质量内容、对敏感信息做脱敏处理、周期性清理过期与低置信度记忆、允许人工干预删除错误条目。很多论文介绍了记忆机制,但真正写工程细节的很少,这部分一定要自己亲自动手踩坑才能体会。
5. 评估体系:从demo驱动转向评测驱动的研发模式
5.1 评测维度:不再只看单轮准确率
智能体研究和工程最容易被忽略的一块,是评估体系。早期大家习惯了看“准确率有多少”,那是分类任务的评价方式,对智能体这种长链路系统并不合适。最近很多论文都在重建评估体系,大概可以分成几个维度:任务成功率、步骤成功率、平均步数、token总成本、故障恢复率。这张表我整理在自己的项目手册里,每次调整系统结构都会跑一遍。
| 评估维度 | 度量方式 | 说明 |
|---|---|---|
| 任务成功率 | 最终目标是否达成 | 最核心指标,但需要明确“成功”的判定标准 |
| 步骤成功率 | 每个子动作的成功比例 | 定位错误发生在执行层还是规划层 |
| 平均步数 | 完成任务消耗的步骤总数 | 评估效率,步数激增往往意味着计划混乱 |
| token总成本 | 单次任务的总消耗 | 直接决定商业可行性,必须纳入评估 |
| 故障恢复率 | 出错后成功恢复的比例 | 反映系统的鲁棒性,比“永不犯错”更现实 |
评测集的设计也要讲究。有篇综述提了一个观点我特别认同:评测集要包含成功路径和失败路径两种样本。只测成功路径,系统就像一个只练过标准题的考生,遇到真实世界里用户中途改需求、工具偶尔报错、输入格式不标准这类长尾情况就抓瞎。我现在做评测集时会特意加入“干扰信息”“边界输入”“中途变更需求”这些要素,这些才算真正的实战演习。
5.2 细粒度失败分析:把失败点定位到具体环节
只看最终成功率,就像考试只告诉学生“不及格”却不告诉错在哪题,对系统优化毫无帮助。最近的研究趋势是细粒度失败分析:把一次任务拆成多个子步骤,逐步骤标记失败位置,再对失败原因做分类统计。
失败类型大致可以分成几类:规划错误,比如目标拆解不合理;工具调用错误,比如参数格式不对或选了错误的工具;解析错误,比如模型输出了模型无法解析的内容;验证错误,比如结果和预期不符但系统没有及时发现;策略失效,比如计划本身正确但执行环境发生了变化。每次失败都打上这样细的标签,优化起来才有方向。如果大量失败集中在工具调用环节,那优先修工具schema和校验逻辑;如果集中在规划环节,那就调整提示词或引入更复杂的规划策略。
所有失败案例应该进入回归测试集。一套智能体系统会随着修改不断演变,今天修好的问题,下周可能因为换个模型版本就复发。把每次修过的bug都变成回归样例,每次升级系统时全部重跑一遍,能省下大量返工的痛苦。我这边每次失败案例会记录五样东西:触发场景、模型输入、模型输出、报错信息、修复动作。有了这些,回归测试就不是简单重跑,而是能看出“这次修复到底改变了什么”。
5.3 评测驱动的迭代闭环:先建评测集,再改系统
智能体研发模式正在从“造一个demo,看效果不错就发出去”转向“评测驱动的迭代闭环”。这个闭环说起来很简单:先建评测集,再跑当前系统,拿到失败报告,根据失败报告改系统,再回到评测集复跑。但真按这个流程做的团队其实不多,很多人还是习惯“改了再说,改完随便测测”。
代码上,我习惯把回归流程做成一个固定脚本。每一条失败日志都要能被自动收集、归类、逐一回放进最新版本的系统。
def run_regression(agent_version, cases): results = [] for case in cases: outcome = agent_version.run(case["scenario"]) results.append({ "expected": case["expected"], "actual": outcome, "passed": case["expected"] == outcome, "case_id": case["id"], }) failed = [r for r in results if not r["passed"]] report(failed) # 每次代码或prompt变更后,跑一遍全部历史回归样例 run_regression(current_agent, load_regression_suite())这套脚本跑出来的失败报告,应该直接指导下一次迭代。如果一个失败案例反复出现,说明当前架构对这个场景存在结构性缺陷,不是改prompt能解决的,需要重新审视工具接入或者记忆策略。我个人经验是,一个跑得顺的智能体系统,研发时间分配大约是三成写功能、七成跑评测和修回归。很多人觉得七成太多,但等你真正被线上事故折磨过一轮,就会明白这个比例一点都不夸张。
6. 工程落地的选型建议与避坑速查
6.1 怎么判断任务是否需要多智能体
前面说了多智能体的好处和代价,最后落到实践时一定会问:我这个场景到底要不要上多智能体?我给一个简单粗暴的判断流程。先看任务步骤数量,少于五步、没有反复试错的,单体就够。再看子任务之间需不需要并行处理,需要并行的可以拆多智能体。再看协调成本,两个智能体就需要消息传递,每个消息都消耗token,如果子任务之间依赖关系过于复杂,消息风暴会吞掉所有收益。
| 方案 | 适用场景 | 优势 | 主要代价 |
|---|---|---|---|
| 单体智能体 | 步骤少、目标明确、单角色 | 实现快、成本低、容易调试 | 无法并行、上下文易污染 |
| 多智能体 | 步骤多、子任务边界清晰、可并行 | 分工专业、可并行、单点故障易恢复 | 协调开销高、需要通信设计 |
| 人机协同 | 高风险、高不确定、需要人工确认 | 安全性高、灵活 | 自动化程度受限,依赖人工介入 |
成本方面也要提前算账。多智能体系统的token总消耗通常比单体高一个量级。某篇做多智能体成本分析的研究统计过,一个包含四个智能体的系统,通信消息占总token的30%以上。这也意味着,如果你很在意单次任务成本,多智能体不是个轻松的选择。我自己的经验是:先用单体把流程跑通,拿到准确的成功率和成本基线之后,再看瓶颈在哪里,如果拆几个角色能明显提升成功率或者降低全局成本,再动手拆。跳步骤直接上多智能体,很容易连基线都找不着。
6.2 智能体系统常见问题速查表
这几年在做智能体系统时,我积累了一张问题速查表,遇到诡异现象先从这张表开始排查。下面这些案例全部来自我自己的实践和一些论文里的调查报告,不一定每一条都会发生在你身上,但踩过一次就知道有多疼。
| 常见问题 | 可能原因 | 处理建议 |
|---|---|---|
| 智能体重复执行同一动作 | 缺少幂等控制,重复调用没有副作用检查 | 为工具调用加执行记录,同一请求不允许重复执行 |
| 工具参数幻觉 | 模型编造不存在的字段或参数格式 | 用结构化schema约束,调用前做参数校验,失败后自动重试 |
| 长时间任务越跑越慢 | 历史日志全部堆进上下文 | 分层管理上下文,定期摘要压缩,引入检索机制 |
| 多智能体消息风暴 | 无约束广播消息,无人做路由过滤 | 结构化消息+接收方过滤,限制通信轮次上限 |
| 多智能体死锁 | 一个智能体等待另一个的回复,双方互等 | 设置超时上限,总控节点兜底调度 |
| 记忆污染导致越用越傻 | 错误记忆写入长期库且未被纠正 | 记录来源与置信度,支持版本化和人工召回 |
| 系统改完旧问题复发 | 没有回归测试,修了这头漏了那头 | 维护回归集,每次修改后全量重跑 |
| 用户中途改需求后任务崩盘 | 智能体继续执行旧目标 | 加需求变更监听机制,检测到变更后重新规划 |
6.3 给研发团队的几条落地建议
最后聊几条给研发团队的落地建议。第一条,从小闭环开始。别一上来就规划一个包罗万象的智能体平台。选一个具体到不能再具体的场景,比如“自动把表格转成日报摘要”,把整个闭环跑通,再往外扩。第二条,可观测性要当一等公民来设计。智能体系统不像传统软件,出错时你根本不知道是哪步错了,没有日志和回放系统就约等于盲人摸象。每次执行至少要有trace_id、步骤列表、输入输出快照,方便事后复盘。第三条,评估先行,评测集建在功能前。这需要一点点反直觉,但相信我,先写评测集再写代码,迭代效率高得多。第四条,给系统设计“失败”这条路。智能体一定会失败,与其追求永不失败,不如设计快速恢复机制:重试、回退、降级、人工接管,这些要写进系统设计的第一页。
我个人最近看这些论文最大的改变,是接受一个残酷的事实:智能体系统没有“完美运行”这回事,只有“快速恢复”。把兜底、重试、回退、降级这些机制当成和模型能力同等重要的工程任务,可能才是真正拉开差距的地方。希望你做的时候也别只盯着准确率,多想想失败之后怎么办。智能体这批进展真正有价值的部分,并不在于某个模型又变强了多少,而在于我们开始认真对待系统的可靠性、成本和可维护性。这些东西听起来不如“模型又刷新了SOTA”那么性感,却恰恰是智能体能否走出demo、走进真实业务的关键。