拓冰建站拓冰建站
首页 / 资讯中心 / 正文

从AI外挂到AI原生:系统架构的范式转移与核心组件设计

1. 从“AI外挂”到“AI原生”一场系统设计的范式转移最近和几个做架构的朋友聊天大家都有个共同的感受现在做系统感觉越来越“拧巴”了。过去几年我们习惯了把大模型LLM当作一个“超级外挂”——在原有的业务系统旁边开一个API接口把用户的问题扔给GPT再把返回的答案塞回原来的流程里。一开始效果拔群老板满意用户也觉得新鲜。但做着做着问题就来了响应时快时慢成本像坐火箭一样往上窜稍微复杂点的逻辑就出错更别提那些涉及敏感数据和业务流程的关键环节根本不敢让模型碰。这种“外挂式”的集成我称之为“AI增强”AI-Augmented。它本质上是把LLM当作一个更聪明的“计算器”或“搜索引擎”系统的主体架构、数据流、状态管理还是老一套。这就像给一辆马车装上了V8发动机动力是猛了但车架、悬挂、传动系统全都不匹配跑起来不仅颠簸还随时有散架的风险。而“AI原生架构”AI-Native Architecture要解决的正是这个根本性的不匹配问题。它不是一个简单的技术升级而是一次从底层开始的、彻头彻尾的系统重构。其核心思想是既然LLM的核心能力是理解和生成自然语言那么我们就应该围绕“语言”和“推理”来重新设计整个系统让AI从“外挂工具”变成系统的“核心引擎”。这听起来很抽象但我们可以用一个简单的类比来理解。传统的软件是“确定性的机器”输入A经过预设的逻辑B必然得到输出C。而AI原生系统更像是“非确定性的有机体”你给它一个目标或意图用自然语言描述它能够理解这个意图并自主规划、调用工具、处理信息最终达成目标。系统的边界、模块的划分、数据流动的方式全都变了。所以当你看到“AI原生架构”这个词时别把它想成是又一个新潮的架构图。它背后代表的是我们在LLM时代为了真正释放其潜力而必须进行的一场深刻的、痛苦但必要的系统设计范式转移。接下来我会结合具体的场景拆解这场重构到底要怎么做。2. 核心挑战为什么传统架构“hold不住”LLM在动手重构之前我们必须先搞清楚传统架构到底在哪些地方“水土不服”。只有诊断清楚病症才能对症下药。根据我过去一年多在多个项目中趟坑的经验主要矛盾集中在以下四个方面。2.1 非确定性与确定性的根本冲突这是最核心的矛盾。传统软件架构建立在“确定性”的基石之上。一个函数同样的输入必然产生同样的输出一个API调用多少次返回的格式和内容都是可预期的。我们依赖这种确定性来设计流程、编写测试、保证系统的稳定。但LLM是“非确定性”的。你问它同一个问题两次它可能给出两个不同但都正确的答案你让它生成一段代码每次的变量命名和结构都可能略有不同。这种非确定性不是bug而是其基于概率生成的本质特性。当非确定性的LLM被嵌入确定性的系统时灾难就开始了。比如一个传统的客服工单系统流程是固定的用户提交问题 - 系统匹配知识库 - 返回标准答案。现在我们把“匹配知识库”换成LLM来理解用户意图。如果LLM这次把“电脑开不了机”理解成硬件故障下次理解成系统问题那么后续流转的部门、调用的解决方案模板就全乱了整个流程的确定性被彻底打破。2.2 高昂的延迟与成本成为架构瓶颈LLM的推理尤其是大参数模型是计算密集型和内存密集型操作一次API调用动辄数百毫秒甚至数秒这比传统数据库查询或微服务调用高了几个数量级。在传统同步架构中这直接导致接口响应时间不可接受。更棘手的是成本。按Token计费的模式使得系统的运行成本与用户交互的深度和广度直接挂钩。一个复杂的、需要多轮思考和工具调用的Agent任务成本可能是简单问答的几十倍。在传统架构下我们很难对成本进行精细化的预测和控制。你无法像预估服务器带宽一样预估一次用户会话要花多少钱。这迫使我们在架构设计时必须把“成本感知”和“延迟优化”提升到前所未有的优先级。2.3 上下文管理从“数据库事务”到“会话记忆”传统系统处理状态靠的是数据库里的事务和Session。一个用户的操作状态被清晰地记录在数据表的行和列中。但LLM驱动的交互是连续的、带有记忆的会话。模型需要记住之前聊过什么才能进行连贯的对话。这个“记忆”不能简单等同于数据库里的聊天记录。它需要被提炼、摘要、并结构化成模型下次推理时可用的“上下文”。这带来了全新的架构问题记忆存储在哪里以什么格式存储原始对话、向量嵌入、结构化摘要记忆的检索机制是什么基于最近时间、基于相关性如何防止无关记忆干扰当前推理上下文窗口有限如何实现记忆在不同AI Agent之间的共享和传递2.4 工具调用与编排从“函数调用”到“能力发现与执行”这是AI Agent能力的核心。传统系统调用一个服务是显式的、硬编码的paymentService.charge(user, amount)。但AI原生系统中Agent需要根据目标自主决定“我需要调用什么工具”。这要求架构提供一套全新的基础设施工具注册与描述如何向LLM清晰地描述一个工具是干什么的、需要什么参数这通常需要结构化的自然语言描述如OpenAI的Function Calling格式。工具发现与路由当Agent有需求时如何从成百上千个可用工具中快速找到最合适的那一个这可能需要基于向量检索的语义匹配。参数提取与验证LLM输出的参数可能是模糊的、不完整的如“明天下午”如何将其转化为工具所需的精确参数如datetime(2024-05-20 14:00:00)并进行校验执行与容错工具调用可能失败如何让Agent感知失败并尝试替代方案这需要一套复杂的错误处理和工作流回退机制。可以看到这些挑战不是靠给现有系统打补丁就能解决的。它们要求我们重新思考系统的组成单元、通信协议和状态管理方式。3. AI原生架构的核心组件与设计模式面对上述挑战一套新的架构范式和组件正在形成。虽然还没有银弹式的标准答案但业界已经形成了一些共识性的核心组件和设计模式。我们可以把它们看作是构建AI原生系统的“乐高积木”。3.1 智能体Agent作为一等公民在AI原生架构中智能体Agent取代了传统的“服务”Service或“模块”成为系统的基本构建单元和调度核心。一个Agent是一个具有特定目标、具备规划、记忆和工具使用能力的自治实体。你可以这样理解传统的微服务是被动响应请求的“器官”而AI Agent是主动思考、规划和行动的“智能机器人”。系统不再是一个由固定流程串联起来的管道而是一个由多个Agent协同工作的“社会”或“团队”。根据其职责Agent可以大致分为几类编排型AgentOrchestrator相当于“项目经理”。它接收最高层的用户目标如“帮我规划一个三天的北京旅行”并将其分解成子任务分派给其他专家型Agent去执行并负责协调和汇总结果。专家型AgentSpecialist相当于“技术专家”。每个专家Agent精通一个特定领域并配备该领域的专用工具。例如一个“机票预订Agent”专门负责查询航班和下单一个“数据分析Agent”专门负责连接数据库并生成图表。工具服务Tool Service这是传统能力的封装。将数据库查询、支付接口、内部API等包装成Agent可以理解和调用的标准化工具。它们本身不一定有LLM能力但为Agent提供了“动手”的能力。一个典型的AI原生应用就是由一个或多个编排型Agent带领一群专家型Agent通过调用各种工具服务共同完成复杂任务。3.2 思维链与规划引擎让AI“先想再做”直接让LLM一次性输出最终答案对于简单任务可行但对于复杂任务其可靠性和准确性会急剧下降。AI原生架构引入了“规划”环节强制模型进行逐步推理。思维链Chain-of-Thought, CoT这是一种提示工程技术要求模型“展示其推理过程”。在架构层面我们可以设计专门的“推理步骤”输出格式并将中间思考过程作为可审计的日志保存下来这对于调试和提升透明度至关重要。规划引擎Planner这是一个更复杂的组件。它可能是一个专门的LLM调用其任务就是根据用户目标生成一个可执行的计划Plan。这个计划通常是一个任务列表Task List或一个有向无环图DAG描述了先做什么、后做什么、以及任务之间的依赖关系。像LangChain的Plan-and-Execute、AutoGPT的GPT Engineer模式其核心都是引入了规划阶段。在架构上规划引擎可能是一个独立的服务它输出的“计划”会成为整个系统后续执行的“蓝图”。这实现了“思考”与“执行”的解耦也使得系统能够处理更宏大、更长期的目标。3.3 记忆与知识库系统的长期记忆与事实来源记忆是Agent保持连续性和个性化的关键。AI原生架构中的记忆系统通常是多层的短期会话记忆Short-term Memory存储在有限的上下文窗口内。通常就是最近几轮的用户-Agent对话历史。架构上需要高效地管理这个滑动窗口确保最重要的信息被保留。长期记忆Long-term Memory这是突破上下文长度限制的关键。当对话或任务进行到一定阶段系统需要将重要的信息提取出来存储到外部向量数据库如Chroma, Pinecone, Weaviate或传统数据库中。存储的可以是原始对话摘要用另一个LLM调用将长对话总结成几个关键点。事实性知识从交互中提取出的结构化事实如“用户张三喜欢喝拿铁”。向量化嵌入将文本片段转换为向量便于后续基于语义相似度快速检索。知识库Knowledge Base这是系统的“教科书”或“手册”存储了领域特定的、相对静态的事实性信息如产品文档、公司制度、行业知识。它通常也通过向量化实现语义检索在Agent需要背景知识时被快速唤起。它与长期记忆的区别在于知识库是预先灌入的、相对客观的而长期记忆是在交互中动态积累的、主观的。一个健壮的AI原生系统必须精心设计记忆的存储、检索、更新和遗忘机制否则Agent会表现得像金鱼一样健忘或者被海量的无关记忆干扰得无法思考。3.4 工具与执行层AI的“手”和“脚”工具层是AI与物理世界和数字世界交互的桥梁。其架构设计要点如下声明式工具描述每个工具必须提供一个机器可读同时LLM也能较好理解的描述包括名称、功能描述、输入参数名称、类型、描述和输出示例。OpenAI的Function Calling、LangChain的Tool装饰器都是这方面的实践。工具路由与选择当Agent产生工具调用意图时系统需要从工具库中选出最相关的一个或多个。这通常结合两种方式基于描述的语义匹配将工具描述向量化与Agent的意图描述进行相似度计算。基于规则的硬匹配对于一些关键工具可以设置关键词或规则进行直接匹配保证准确性。安全沙箱与权限控制这是重中之重不能让一个“写邮件”的Agent意外获得“删除数据库”的权限。架构上必须实现严格的工具权限模型为每个Agent分配最小必要权限集。对于高风险操作如支付、删除应引入人工确认或二次授权机制。标准化响应格式工具执行后的结果需要被格式化成LLM易于理解的文本描述同时最好也能包含结构化的数据供后续其他工具使用。3.5 评估与监控为“非确定性”系统装上仪表盘传统系统的监控主要看QPS、延迟、错误率。AI原生系统的监控维度要复杂得多成本监控实时监控每个会话、每个用户的Token消耗和API调用费用设置预算告警。质量评估人工评估黄金标准但成本高。基于模型的评估LLM-as-a-Judge用另一个通常更强大的LLM根据预设的规则对主Agent的输出进行打分。例如评估回答的相关性、事实准确性、安全性等。业务指标关联将AI的输出与最终业务结果挂钩如客服AI的回复是否减少了后续人工介入率。可观测性与调试由于非确定性调试极其困难。架构必须提供完整的“思维轨迹”日志记录下每一步的规划、工具调用请求、工具返回结果、以及LLM的中间推理过程。这相当于AI系统的“黑匣子”是排查诡异问题的唯一依据。4. 实战重构将一个传统系统改造为AI原生理论说再多不如看一个具体的例子。假设我们有一个传统的“内部IT支持工单系统”。用户通过网页表单提交问题选择问题类型、输入描述系统根据问题类型路由给不同的处理组客服人员在后端查看并处理。传统架构痛点表单分类死板用户常常选错类别客服需要手动阅读大段模糊描述简单问题如“重置密码”也需要走完整流程效率低下。重构目标打造一个“AI工单助手”能够自然语言对话理解用户问题自动分类、自动检索知识库尝试解决解决不了再智能转人工并附上清晰摘要。4.1 第一步定义AI智能体与职责我们不再围绕“表单”和“路由规则”来设计而是围绕“智能体”来设计。接待与分流AgentGreeting Triage Agent职责与用户进行初始对话澄清问题判断紧急程度和问题领域。工具访问用户基本信息库、查询近期类似工单。输出一个结构化工单对象包含问题摘要、问题分类、紧急程度、相关用户信息。自助解决AgentSelf-Help Agent职责针对已知的、有标准解决方案的常见问题如密码重置、软件安装直接引导用户或自动执行解决。工具知识库检索工具、执行标准操作脚本的工具如在AD中重置密码。输出解决方案步骤或“问题已解决”的状态。专家路由与摘要AgentExpert Routing Summary Agent职责对于自助解决Agent处理不了的问题根据问题分类将其路由到最合适的客服专家组如网络组、硬件组、软件组。同时将之前的所有对话和诊断信息提炼成一份给客服人员的摘要报告。工具组织架构查询工具、工单系统创建/更新API。输出创建或更新后的工单附带清晰的摘要和推荐处理人。4.2 第二步设计会话流与状态管理传统的“表单提交-状态变更”流程变为“多轮对话-智能体协作”流程。用户发起对话“我的Outlook一直提示需要密码。”接待与分流Agent启动。它通过对话询问用户电脑型号、操作系统、出现提示的频率等并查询该用户过去一周是否有类似工单。它判断这是一个“软件/邮件客户端”类的“中优先级”问题。该Agent将初步判断交给自助解决Agent。自助解决Agent检索知识库找到“Outlook持续提示密码的十大解决方案”并开始一步步引导用户“请先尝试点击‘文件’-‘账户设置’...”。如果用户根据引导解决了流程结束工单自动关闭。如果引导无效自助解决Agent将控制权交还给接待与分流Agent并附上已尝试的步骤。接待与分流Agent更新工单信息然后调用专家路由与摘要Agent。专家路由与摘要Agent分析整个对话生成摘要“用户张三电脑为Win11Outlook 365持续提示密码。已尝试重置账户设置无效。疑似证书或配置文件问题。建议路由至‘邮件系统支持组’的李四工程师。” 随后它在后台工单系统中创建工单并分配给李四。状态管理整个流程的状态不再仅仅是数据库里的“工单状态”字段而是一个复杂的“会话状态对象”其中包含了当前活跃的Agent、历史对话、已尝试的解决方案、收集到的用户信息等。这个状态对象需要被持久化以便在对话中断后能恢复。4.3 第三步集成工具与知识工具封装将“重置AD密码”、“查询软件安装状态”等操作封装成安全的API工具。将工单系统的“创建工单”、“分配工单”、“更新状态”接口也封装成工具。知识库构建将现有的IT知识库文档Word、PDF、Confluence页面进行切片、向量化存入向量数据库。为自助解决Agent配置对该向量库的检索工具。4.4 第四步实现成本、延迟与质量管控成本为每个Agent设置每次调用的最大Token预算。对于“自助解决Agent”可以使用更小、更便宜的模型如GPT-3.5-Turbo因为它的任务相对标准化。对于需要复杂推理和摘要的“专家路由Agent”才使用更强大的模型如GPT-4。延迟采用异步处理。用户发送消息后系统立即返回“正在处理”然后在后台运行Agent链。对于知识库检索等I/O操作做好缓存。例如常见问题的解决方案可以缓存其向量和答案避免每次重新检索和生成。质量在“专家路由与摘要Agent”生成摘要后可以引入一个“质量校验Agent”用小模型即可检查摘要是否包含了所有关键信息Who, What, When, Tried What如果缺失则要求补充。对所有工单的最终解决结果进行回访将“用户满意度”与AI处理环节关联起来持续优化Agent的提示词和工具使用逻辑。通过这个案例可以看到重构不是一蹴而就的。可以从一个最痛的子流程开始如“接待分流”引入第一个Agent跑通闭环看到收益再逐步将更多的逻辑AI原生化和智能化。5. 技术选型与基础设施考量当你决定走向AI原生时会面临一系列技术选型。这里没有最佳答案只有最适合你团队和场景的权衡。5.1 编排框架LangChain vs. LlamaIndex vs. 自研LangChain目前生态最繁荣的“全能型”框架。它的抽象层次非常丰富从最底层的Model I/O到中间的Chains、Agents再到高层的LangGraph用于构建有状态的、多Agent工作流。它的优势在于组件多、社区活跃、文档丰富适合快速原型和构建复杂的、需要多种工具和记忆的工作流。缺点是抽象较重学习曲线陡峭有时为了完成简单任务需要理解很多概念性能开销也可能较大。LlamaIndex最初专注于“数据连接”是构建RAG检索增强生成应用的利器。它在文档加载、索引、检索方面非常强大和灵活。现在也扩展了Agent和Workflow的能力。如果你的应用核心是让LLM查询和理解你自己的私有数据知识库LlamaIndex是更专注、更优雅的选择。对于以RAG为核心的应用它往往比LangChain更直接。自研如果你团队技术实力强应用场景非常特定或者对性能、控制力有极致要求自研一套轻量级的编排核心是可行的。核心无非是管理提示词模板、调用LLM API、解析返回结果尤其是工具调用、调度工具执行、管理上下文。这能避免框架的冗余开销但也意味着你需要自己解决缓存、流式输出、复杂工作流编排等所有问题。我的建议对于大多数团队从LangChain或LlamaIndex开始是更稳妥的。先利用它们快速验证想法当遇到性能瓶颈或框架限制时再考虑对关键路径进行自研替换。5.2 模型层云端大模型 vs. 本地开源模型这是最重要的决策之一直接关系到成本、延迟、数据隐私和可控性。特性云端大模型 (如 GPT-4, Claude-3)本地开源模型 (如 Llama-3, Qwen, DeepSeek)能力与智能顶级。在复杂推理、遵循指令、创造性任务上表现最佳。追赶中。70B参数级别的模型已非常接近第一梯队但在最复杂的任务上仍有差距。7B-14B的模型适合特定任务。成本按Token付费。高频使用成本可观且难以预测。前期硬件投入。需要购买GPU服务器。但一旦部署边际成本极低适合高频调用场景。延迟与吞吐依赖网络和API提供商可能有速率限制。本地网络延迟极低。吞吐量取决于自有硬件可控。数据隐私数据需出境。敏感行业金融、医疗、政务需谨慎即使有合规协议风险依然存在。数据完全内部可控。是处理敏感数据的唯一选择。可控性与定制黑盒。无法调整模型内部权重只能通过提示词和外部系统来引导。白盒。可以进行微调Fine-tuning让模型更适应你的领域术语和任务格式。运维复杂度无需运维模型。只需处理API调用错误、降级等。需要专业的MLOps团队。负责模型部署、版本更新、资源监控、性能优化。选型策略追求极致效果、快速启动、非敏感数据首选云端大模型。处理敏感数据、有高频调用需求、成本敏感、需要定制化坚定地走向本地模型。可以从在非核心场景试用7B模型开始积累经验。混合架构这是很多企业的最终形态。用本地小模型处理大量的、简单的、敏感的查询如内部知识问答将复杂的、需要顶级推理能力的任务路由到云端大模型。这需要在架构层面设计好模型的路由和降级策略。5.3 向量数据库记忆与知识的核心向量数据库负责存储和检索AI系统的“记忆”和“知识”。选型时考虑性能索引构建速度、查询速度QPS和延迟、支持的最大向量维度。功能是否支持过滤Filtering是否支持多种距离度量余弦、欧式、点积是否支持元数据存储运维是云服务还是自托管社区是否活跃客户端SDK是否完善成本云服务的定价模式或自托管的硬件成本。目前常见的选项有Pinecone云服务简单易用但贵、Weaviate开源功能全面自带向量化和GraphQL接口、Chroma开源轻量级专注于嵌入易于集成、Qdrant开源Rust编写性能优异、Milvus开源功能强大适合大规模生产环境但运维复杂。对于初创项目或中等规模应用Chroma或Qdrant是不错的起点它们平衡了功能、性能和易用性。5.4 部署与运维全新的挑战AI原生应用的运维与传统应用截然不同。弹性伸缩负载不再是均匀的。一次复杂的Agent推理可能链式调用多次LLM和工具消耗大量计算资源和时间。你需要监控的不再是简单的HTTP请求队列而是“推理任务队列”。自动扩缩容策略需要基于Token消耗速率、任务队列长度等新指标。可观测性日志系统必须能记录完整的“思维链”。你需要能追踪一个用户请求穿越了哪几个Agent每个Agent调用了什么工具输入输出是什么LLM的中间推理过程是怎样的。这需要结构化的日志和强大的追踪Tracing系统如OpenTelemetry。版本管理与回滚你的“代码”不仅包括业务逻辑还包括大量的提示词Prompt、Agent的工作流定义、工具的描述。这些都需要进行版本控制如Git。一次提示词的微小改动可能导致模型行为发生巨大变化。必须有便捷的A/B测试和快速回滚机制。安全与合规输入输出过滤必须在调用LLM前后对用户输入和模型输出进行严格的审查防止提示词注入、敏感信息泄露、生成有害内容。工具权限隔离如前所述实行最小权限原则。审计日志所有AI决策、工具调用、数据访问都必须有不可篡改的审计日志。6. 避坑指南从概念到落地的关键陷阱最后分享几个我亲身踩过或见别人踩过的大坑这些坑往往在技术之外却决定了项目的成败。陷阱一盲目追求“全自动”忽视人的价值AI原生不是要取代所有人而是重塑人机协作。在架构设计初期就必须为“人工接管”预留接口。例如当Agent的置信度低于某个阈值时当工具调用涉及高风险操作时当用户明确要求转人工时流程必须能无缝、优雅地将上下文交接给人类坐席。设计一个“人机回环”Human-in-the-loop的机制比追求100%的自动化率更重要。陷阱二忽视提示词工程Prompt Engineering的稳定性很多团队把提示词当作“魔法咒语”随意修改。在AI原生系统中提示词是核心业务逻辑的一部分其重要性不亚于传统代码。必须对提示词进行版本控制、代码审查和严格的测试。建立一套提示词的单元测试和集成测试框架确保其对各种边界输入都能产生稳定、安全的输出。陷阱三低估数据准备与知识治理的复杂度“垃圾进垃圾出”在AI时代依然成立。你的Agent表现多好很大程度上取决于它背后的知识库和记忆数据质量。构建高质量、结构清晰、覆盖全面的知识库是一个需要持续投入的脏活累活。你需要建立数据清洗、标注、更新和版本管理的流程。否则再漂亮的架构也是空中楼阁。陷阱四用做项目的思路做AI原生产品传统软件项目有明确的需求、范围和交付物。但AI原生应用尤其是Agent其能力边界是模糊的、演进的。你可能一开始只想做一个智能客服但用户会自然地用它来查订单、改预约、甚至闲聊。如果用固定的项目思维去框定它会扼杀其潜力。更好的方式是采用产品迭代思维定义核心价值指标如问题解决率、用户满意度然后小步快跑根据数据和用户反馈让Agent的能力自然生长。陷阱五团队技能树不匹配构建AI原生系统需要的不仅仅是机器学习工程师。你需要软件架构师设计可扩展、可靠的系统架构。后端工程师实现工具层、API集成、状态管理。数据工程师处理知识库数据、构建数据管道。产品经理/UX设计师设计自然的人机交互流程定义Agent的“性格”和边界。安全与合规专家确保系统符合数据安全和行业规范。 跨职能的、紧密协作的团队是成功的关键。转向AI原生架构是一条充满挑战但回报巨大的道路。它要求我们放下过去的经验以全新的视角去审视软件系统如何构建。这不仅仅是技术的升级更是思维模式的进化。起点或许可以很小从一个具体的、高价值的场景开始引入第一个Agent解决一个实际的痛点。在过程中你会逐渐积累起对非确定性系统设计、成本控制、人机协作的深刻理解。记住目标不是建造一个无所不能的超级AI而是打造一个能够与人类智慧协同、持续学习和进化的智能系统。这场重构的旅程现在才刚刚开始。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门