ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

大模型+Agent如何打破传统企业集成困局:从ESB到智能体架构

大模型+Agent如何打破传统企业集成困局:从ESB到智能体架构

老王的“屎山”历险记:一次被传统集成逼疯后的彻底反思

干了十几年企业数字化,我自认见过各种奇葩系统。但去年帮一家制造业客户做数据打通时,还是被结结实实地上了一课。他们的ERP、MES、CRM各玩各的,销售要查个订单进度,得打开三个系统人工比对;财务月底对账,EXCEL表格能堆成山。IT部门想做个集成,要么请外包写死接口,要么买ESB总线产品,结果改一个字段要排期三个月。看着那一锅越搅越稠的“技术债浓汤”,我心里只有一个念头:这活儿,不能再这么干了。

后面我下定决心,把整套集成方案推倒重来,基于“大模型+Agent”的思路,搞了一套能自己理解需求、自己编排流程、自己执行任务的系统。虽然不是那种科幻电影里的全自主机器人,但至少把过去要写几百行代码的对接工作,压缩成了一段自然语言描述加几个Agent的协同。这套东西跑通之后,我突然意识到,我们过去引以为傲的“严谨集成”,其实很大程度上是在为系统的“不 intelligent”买单。今天不聊虚的,就把我这次从“屎山”里爬出来的全过程、踩过的坑和沉淀下来的心得,掰开揉碎讲给你听。

1. 先说说“屎山”是怎么形成的:企业集成的老路子,病根在哪

聊Agent之前,必须先给传统集成方式“验验尸”。不然你很难理解,为什么我要放着成熟方案不用,非要去趟“大模型”这摊浑水。咱们得直面一个现实:企业IT架构,尤其是传统制造业或大型商贸企业,经过十几年建设,基本都是一个“烟囱林立”的状态。

1.1 点对点集成的“蝴蝶效应”

最原始的做法,就是点对点。系统A需要系统B的数据,拉个开发,写个接口,直接连。这事儿单看没毛病,又快又直接。但系统一旦多起来,A连B、B连C、C又连A,接口数量呈指数级爆炸。我见过最夸张的一个客户,核心系统间的接口文档有一千多个,其中三分之一是死接口,调用方早就换架构了,但代码还在那儿挂着。这就像老城区拉电线,今天拉一根,明天补一根,最后成一团乱麻。谁都不敢动,因为不知道这根线拔了,哪栋楼会停电。这就是典型的“蝴蝶效应”,改一个点,崩一片面。

1.2 “中心化”ESB的“死板与沉重”

后来行业里推崇ESB(企业服务总线),把所有接口逻辑抽到中间层。思路是对的,但在实际落地中,ESB往往变成了另一个“屎山中心”。一方面,ESB本身的配置极其复杂,需要专门的团队维护,业务部门提个需求,IT要写一堆路由规则和协议转换逻辑,响应速度依然慢;另一方面,ESB把系统间的耦合变成了与ESB的耦合,一旦ESB出问题,全线瘫痪。最要命的是,ESB里的流程是写死的,业务方想调整一个审批节点,不是改配置,而是要改代码,本质上和点对点没啥区别。说白了,老路子解决的是“连接”问题,但没解决“变化”问题。

1.3 数据“打通”了,业务“没通”

就算接口连上了,数据同步了,也仅仅是“数据层面的打通”。业务逻辑呢?业务规则呢?举个特别简单的例子:客户下单后,系统判断“是否需要人工审核”。这个规则可能散落在CRM、ERP、甚至销售自己的脑子里。传统集成把它变成了一堆硬编码的if-else,写死在某个接口里。结果就是,业务规则一变,系统就要重新开发。所以,“数据孤岛”这个词我觉得都不够准确,更准确的说法是“业务孤岛”和“认知孤岛”。系统之间没有对同一件事的共同理解。这才是传统集成最大的坑——它管住了数据的流动,但管不住业务语义的变迁。

2. 为什么“大模型+Agent”能打穿?本质是让系统“长嘴”和“长脑”

我决定转向“大模型+Agent”这套新范式,不是追逐热点,而是被那锅“屎山”逼的。传统的集成是“拉郎配”,强行把不合适的系统绑在一起;而Agent方案是“让系统长嘴”,自己会去问、会去协调、会去判断。这其间的差距,是思维方式上的降维打击。

2.1 从“API调用”到“意图理解”

传统集成,核心是API(应用程序接口),你得很清楚知道要什么参数、返回什么结构,一切都在预定义的契约里。Agent方案呢,核心是“意图理解”。系统不再死板地调用某个写死的接口,而是接收一个模糊的任务,比如“帮我查下华东区上个月所有逾期订单,并把客户投诉的标红”。放在以前,这需要写一段复杂的SQL(结构化查询语言)去关联订单表、客户表、投诉记录表。但现在,Agent能拆解这个任务:先定位订单库,再筛选区域和时间,接着关联投诉模块,最后做展示排序。这背后依赖的是大模型对语言(自然语言)的理解能力,而不是传统代码的逻辑能力。如果说API是让系统“有手有脚”,那大模型就是让系统“有脑有嘴”。

2.2 核心武器:函数调用与“快思考慢思考”

讲到技术细节,很多人以为Agent就是接个模型API(应用程序接口)这么简单,其实大错特错。这里面的核心是Function Calling(函数调用)能力。模型不只输出文字,还能输出“要不要调用某个工具、参数是什么”。我拿查订单举例:Agent收到指令后,大模型先“思考”一下(这里用到的就是慢思考,一步步推演),然后生成一个中间指令:call_query_order(status=‘overdue’, region=‘east_china’, month=‘2024-11’)。后面接一个具体的Agent或者服务去执行。这就把大模型的“脑子”和业务系统的“手脚”完美接驳了。没有Function Calling,大模型就是个只会聊天的玩具,有了它,才能成为真正干活的Agent。

2.3 打穿“数据孤岛”的另一种路径:语义层

说到底,“打穿数据孤岛”不是把数据物理搬到一个地方,而是在“语义层”建立统一。老方案是建立一个巨大的数据中心,把数据倒进去,但业务系统的更新、语义的变化,中心是感知不到的。我这次的解决方案,是构建一个“语义映射层”。比如系统里的“customer_id”,“client_code”在不同系统里叫法不一,我就把这些字段和业务含义的描述全部喂给大模型做前置训练(或者说RAG(检索增强生成)增强)。这样,Agent在理解“客户”这个业务概念时,就能自动映射到对应系统的对应字段上。这相当于给大模型戴上了一副“企业知识眼镜”,让它能看清不同系统中同一个业务实体的千万张脸。

3. 实战拆解:一个“订单异常自动处置”Agent的实现全过程

理论讲多了没意思,直接看我落地的一个真实场景:“订单异常自动处置”。以前这个流程,需要人工盯着好几个系统,发现异常单据(价格不符、库存不足、客户地址缺失),然后手动创建工单,再推给不同的负责人。现在,我用Agent全自动跑通,整个流程搭建大概用了一个下午。

3.1 第一步:配置你的“Agent群”而不是写死流程

我不再画流程图了,而是定义“角色”。我建了三个Agent:

  • 监听Agent:专门盯订单系统的变更日志和异常事件。
  • 诊断Agent:收到异常信号后,去关联查询ERP(企业资源计划)的库存、客户系统的地址、价格系统的历史价格,综合判断异常根源。
  • 处置Agent:根据诊断结果,自动走不同的处置策略。比如库存不足就生成采购建议单,价格不对就冻结订单并通知商务。

以前这套逻辑,要写在ESB里或是写个定时任务脚本,代码量大概在一千行左右。现在,我只需要把每个Agent的职责边界和它们能调用的工具描述清楚,剩下的事情全部交给大模型去编排。这种“去流程化”的设计,简直爽到起飞,业务方改规则时,只需要改Agent的“人设”提示词,不用再改代码。

3.2 第二步:给Agent配上“多模态”工具(关键中的关键)

真正的重头戏,不是Agent的对话逻辑,而是它“手”能伸多长。我用了一个开源工作流引擎(这里不点名,工具无所谓,思路都一样),把之前不相关的几个业务系统API(应用程序接口)封装成标准的“工具”挂载给Agent。这样,Agent不仅能“说”,还能“做”。

你比如诊断Agent发现库存不足,它不再只是返回一段话“库存不足”,而是直接调用“创建采购订单”这个工具,并把供应商、数量、交期全部填好。我实际跑通后发现,这玩意儿的容错率比预期好很多。大模型偶尔会“抽风”填错参数,但通过在工作流里加一个“人工确认节点”来控制风险,即由Agent生成全部建议,再由具体执行人点一下确认。既兼顾了效率,又守住了合规的底线。

3.3 第三步:喂“企业知识”,拒绝一本正经地胡说八道

如果你以为把大模型API(应用程序接口)一接,它就能懂你公司的业务,那你多半要交学费。大模型本身就不懂你那套特殊的“价格体系”和“折扣规则”,它只会胡编。我的做法是,RAG(检索增强生成)。把公司的《订单管理规范》、《定价策略须知》、《异常处理SOP》这些PDF文档,全部切片向量化存进知识库。Agent在诊断时,会先检索相关规章制度,再结合检索结果去判断。

这一步就是天壤之别。没用RAG(检索增强生成)前,Agent会一本正经地告诉你:“根据经验,客户D类订单应该优先处理”,这妥妥的就是胡说八道。用了RAG(检索增强生成)以后,它就会明确说:“根据《订单管理规范》第3.2条,D类订单需要销售总监二次审批”。这才是真正的“企业级”Agent,不飘、不虚、有依据。

4. 七个避坑指南:从“能用”到“好用”的经验之谈

光说不练假把式,我说几个在实现过程中肯定会遇到的痛点,给后来者打个预防针。这套Agent系统做下来,最大的感受就是:技术难点不难,难的是“信任”和“边界”。

避坑一:别指望一个大模型干所有事

市面上总有厂商吹通用大模型是万能的,真部署下来就露馅了。企业级场景里,一个任务拆给多个专用Agent协作,比一个全能Agent干到底要稳得多。就像大公司分工一样,每个Agent职能清晰,有专门的“工具调用Agent”,有专门的“逻辑判断Agent”,有专门的“文档撰写Agent”。真的,一旦其中一个跑飞,不至于整个流程崩盘。

避坑二:把“Prompt”当代码来管理

不要觉得这是个新东西就轻视它,Agent的能力上限,很大程度上取决于提示词的质量。我踩过的坑是,直接在聊天框里调Prompt,改来改去最后自己都记不住哪个版本有效。后来我把所有Agent的提示词放进了Git仓库里,和代码一起做版本管理。改提示词就是改需求,要过测试、要留记录。这一步做不好,你的Agent就会变成新一坨“提示词屎山”。

避坑三:永远加一条“人工兜底”

想在企业里推AI,最忌讳的就是“全自动无人值守”。相信我,老板不敢用,业务部门更是会抵制。我现在的方案,所有涉及资金变动、客户承诺、重大风险的动作,Agent都必须停在“待确认”状态,推送给对的人。用“机器建议+人工决策”的半自动模式,先把效率和经验建立起来,再逐渐扩大自动化边界。

避坑四:别被“大模型幻觉”带偏

只要涉及自然语言处理,就一定会有“幻觉”问题。特别在生成SQL(结构化查询语言)或数据分析结论时,极容易出错。我现在的策略是,让Agent只负责生成查询条件和框架,具体的数据计算还是交给底层的数仓平台去跑,最后再把结果结构化地喂给大模型去解读。也就是让大模型做“翻译官”,而不是做“计算员”。

避坑五:日志和可观测性,比模型参数重要十倍

Agent系统是一个典型的“黑盒”,出了问题更难查。传统系统报错,有堆栈信息;Agent出了问题,你只会看到一句“抱歉,我无法完成该请求”。所以,一定要在系统设计之初就引入“链路追踪”,记录每一次Agent的思考过程、调用工具的参数和返回结果。后来出问题,排查的就是这个过程回放。没有这些日志,出问题就只能当瞎子,两眼一抹黑。

避坑六:处理好“人”的抵触情绪

技术落地最大的阻力往往是人的惯性。你搞个Agent,是把业务人员的经验抽离出来变成系统能力。这时候,你作为一个架构师,不仅要做技术,还要做“政治”。我做法是给业务方留个“后门”,让他们随时能介入Agent的决策,并保留人工修改的接口。一定要明确告诉业务团队,这东西不是抢饭碗的,是个不吃晚饭、不会闹情绪的实习生。它做错了,责任在我,做对了,功劳在业务侧优化了流程。

避坑七:别一上来就搞“重构”

如果你现在的系统已经乱成一锅粥,那千万别指望Agent是银弹,能瞬间给你理顺。最稳妥的落地方式是在“边缘”切入。先拿一些非核心的、重复度高的场景(比如报表生成、工单分类、发票验真)跑起来,让Agent帮你把数据管道里的脏活累活先干了。等团队对这种“新物种”建立了认知和信任,再一步步向核心决策流程迈进。贪大求全,多半会烂尾。

5. 后续还能怎么玩?从流程自动化到“决策自动化”

我做的这个订单处置Agent,本质上还属于“流程自动化”范畴,是把已知规则和逻辑捋顺。但这条路打通后,想象力空间就大了。

下一步我计划做的,是“经营分析Agent”。以前月底要写月报,是把数据拉出来,再用PPT拼几个图表,AI顶多是帮你润色文字。现在我想用Agent去自动解读数据异动背后的原因,比如发现华东区销售额下滑,Agent先通过数据对比,定位到是某个品类、某个渠道掉了,然后它会去爬舆情数据,看是不是出现竞品低价,最后在报告里生成一段“归因分析”。甚至它还能主动给销售团队发指令,建议调整某款产品的促销策略和话术。

这条路走下去,企业数字化终于能从“记录发生了什么”进化到“决策接下来发生什么”。大模型的加入,等于给企业装上了一套中枢神经系统,让所有数据不再是躺在库里的“死数字”,而是成为能感知业务、响应市场的“活细胞”。架构师这个角色,也从“拉线的电工”变成了“设计神经系统的大脑”。

这趟改造下来,我最大的感受是,技术在快速迭代,但核心的架构思想是相通的。别盯着那些花花哨哨的模型名字,踏踏实实把数据治理好,把业务流程梳理清楚,再让Agent去扮演那个不知疲倦的“胶水层”,把各个系统、各个角色粘合起来。这个过程里,你会不断遇到新的麻烦,但每一次解决,都是在为你那堆“屎山”松松土。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进