![]()
2008年,一群工程师花了18个月拆散一个巨型单体系统。2026年,AI团队正用3个月把同样的巨石重新垒起来。
这不是怀旧,是数据。现代AI智能体(AI Agent,能自主决策并执行任务的AI系统)框架正在把推理、工具调用、记忆塞进同一个代码块——当年SOA架构(面向服务的架构,将应用拆分为独立服务的软件设计方法)要消灭的东西,正以"简化开发"的名义复活。
生产环境的崩溃不会给你发邮件预告。
当流量峰值到来时,耦合的系统像多米诺骨牌:推理层卡住,工具执行跟着僵死,记忆模块连带着把数据库连接池耗尽。拆,要三个月。不拆,每周凌晨两点收报警。
第一步:把状态管理踢出去
AI智能体的状态是毒药。对话历史、中间计算结果、工具调用轨迹——这些东西如果散落在业务代码里,扩容时你会体验什么叫"分布式系统的恐怖"。
Ali Muwwakkil在LinkedIn上写了一段被很多人跳过的真话:「团队往往忽视清晰接口定义的重要性,这会导致后期集成头痛。」他见过太多案例:前期省下的设计时间,后期以十倍偿还。
状态管理独立成服务,意味着你可以给记忆模块配SSD,给推理层配GPU,给工具执行配廉价CPU。资源不再互相绑架,账单也能分开看。
一个具体做法:用事件溯源(Event Sourcing,一种通过记录状态变更事件来重建系统状态的模式)代替直接状态存储。每次LLM(大语言模型,如GPT/Claude等生成式AI的核心组件)调用、每次工具返回,都变成不可变事件流。想回滚到三分钟前的决策点?重放事件就行。
第二步:模块之间只许传纸条
事件驱动架构(Event-Driven Architecture,通过异步消息传递实现组件解耦的设计模式)不是新技术,但AI团队经常假装它是。同步调用链在demo里跑得漂亮,生产环境里是绞索。
想象一个场景:智能体调用搜索工具,等待3秒。这3秒里,推理线程被占用,内存被锁定,新的用户请求在队列里排队。三个并发请求就能把单实例压垮。
换成事件驱动:推理模块扔出"需要搜索"事件,立刻释放资源去处理下一个请求。搜索服务完成后回传事件,推理模块按需唤醒。中间可以加队列削峰,可以埋监控,可以插重试逻辑——这些在同步调用里都是噩梦。
关键指标:模块重启时,其他模块应该毫无感知。
如果你的工具执行服务挂了,推理层应该继续响应用户(哪怕暂时做不了某些事),而不是跟着500错误。这需要契约设计:每个事件携带足够上下文,接收方不依赖发送方的存活状态。
第三步:每个能力都是独立服务
这是最反直觉的一步。团队本能地想复用代码,把"通用"逻辑抽成库。结果?库版本一升级,三个服务一起崩。
独立服务意味着独立部署、独立扩缩容、独立回滚。推理模块想换Claude 4?不需要工具执行团队配合测试。记忆模块要切向量数据库?推理层连配置文件都不用改。
代价是运维复杂度。但2026年的基础设施已经不同:容器编排、服务网格、可观测性工具链,这些在2008年需要专职团队维护的东西,现在几个YAML文件就能启动。
Ali Muwwakkil提到的「清晰接口定义」在这里是生死线。OpenAPI规范、JSON Schema、版本化契约——前期多写的100行文档,能避免后期200小时的联调。
一个检验标准:新成员能否在不看内部实现的情况下,调用你的服务并预测行为?如果不能,耦合已经偷偷发生。
为什么现在必须动手
模型迭代速度是倒逼因素。GPT-4到Claude 3.5到Gemini 2.5,能力边界、价格、延迟特性全在变。耦合系统换模型像换心脏,得停服、得全量回归测试。解耦系统换模型像换轮胎,拧几个螺丝,流量切过去,观察指标。
另一个隐性收益:测试。独立服务可以独立打桩(Stub,用预设响应替代真实依赖的测试技术),单元测试不用拉起整个LLM。CI/CD(持续集成/持续部署,自动化构建测试发布的工程实践) pipeline从20分钟压到2分钟,开发者愿意跑测试了,bug才能早发现。
2008年的教训被写进教科书,2026年的团队却需要重新学习。技术轮回的讽刺在于:每一代人都觉得自己面对的问题独一无二。
你的智能体框架现在是什么状态?如果今天要把推理层流量切到另一个模型,需要改几行代码、停服几分钟、协调几个团队?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.