从单点到协作:Multi-Agent系统的架构演进

张开发
2026/4/9 13:28:40 15 分钟阅读

分享文章

从单点到协作:Multi-Agent系统的架构演进
从单点到协作:Multi-Agent系统的架构演进作者:码农老张头日期:202X年X月X日标签:#Agent #LLM #Multi-Agent #分布式系统 #架构演进引言各位开发者、AI从业者们好!我是老张头,最近被LLM(大语言模型)和Multi-Agent(多智能体)这俩词刷屏刷得有点“上头”——毕竟我搞分布式系统快20年了,当年分布式计算喊得最响的“分而治之、协同并行”,居然被一群基于LLM的“软角色”给玩出了新高度!去年年底OpenAI推GPT-4 Turbo和GPTs的时候,我还只是觉得“哎,给LLM加个UI和有限工具调用有意思”;今年年初LangChain Multi-Agent Toolkit、AutoGPT 2.0(不对,是AgentSwarm!)、微软的AutoGen 2.0,还有国内的智谱GLM Agent Studio、阿里通义千问Agentic Workflow一股脑涌出来,我才彻底坐不住了——这不是“复刻当年分布式中间件的老路”,这是用AI重新定义了“分布式计算单元”啊!痛点引入先聊聊我们这些老程序员最近两年在实际项目里踩过的“LLM单点坑”吧,毕竟技术博客不能光吹概念,得从“真痛”切入:“全知全能”的幻觉陷阱:让单个GPT-4去写一个包含前端React组件库、后端FastAPI服务、PostgreSQL分库分表、Redis缓存集群、Docker Compose部署脚本的电商微服务系统?不可能!它要么漏了分库分表的一致性逻辑,要么给前端写的TypeScript类型全是any,要么部署脚本没考虑Redis Sentinel的选举配置——单个Agent的上下文窗口再大(比如Claude 3 Opus 200K tokens),也装不下一个复杂系统的所有业务知识、技术细节和最佳实践;“串行低效”的任务执行:你要让单个LLM去做“先爬取最近30天的GitHub热门Python项目、再用Scrapy整理成Excel报表、然后用Matplotlib画出Top 10项目的Star趋势图、最后翻译成英文发邮件给技术负责人”这一系列任务?要么等半天(串行爬取→串行整理→串行画图→串行翻译→串行发邮件,哪怕每个子任务只要1分钟,加起来也要5分钟以上),要么中间某个子任务出错(比如GitHub API限流了),整个流程直接崩溃,连断点续传的能力都不一定有;“难以复用”的能力碎片化:你花了两周时间,用Prompt Engineering和Fine-tuning把一个GPT-4调得“特别会写Redis缓存的击穿、穿透、雪崩解决方案”,结果下一个项目需要“写MySQL分库分表的垂直拆分、水平拆分、跨库Join解决方案”,你又得从头开始调Prompt、找训练数据、重新Fine-tuning——单个Agent的能力是“定制化、一次性”的,没法像模块化组件一样“按需组合、开箱即用”;“难以对齐”的人类意图偏差:单个LLM有时候会“曲解”你的意思——比如你说“帮我给这个电商网站做个‘用户反馈’功能”,它可能给你写了一个简单的文本输入框+提交按钮,但其实你想要的是“支持图片/视频上传、自动分类反馈内容、自动分配给客服/产品/技术团队、带有SLA处理时效提醒、带统计报表的完整工单系统”——单个Agent的“意图理解能力”是“单视角、非结构化”的,没法像“产品经理+UI设计师+后端开发+前端开发+测试工程师”的团队一样,多视角、结构化地拆解和对齐人类意图。解决方案概述那这些“单点坑”怎么破?答案就是——Multi-Agent系统(多智能体系统)!简单来说,Multi-Agent系统就是“一群能够独立感知环境、自主决策、主动行动、并与其他Agent和环境进行交互协作的AI智能体”组成的系统。用当年分布式系统的话说,Multi-Agent系统就是:“分布式计算单元”从“CPU核心、物理服务器、虚拟机、容器”变成了“基于LLM/多模态模型的软角色智能体”;“通信协议”从“HTTP/HTTPS、TCP/IP、gRPC、MQTT”变成了“自然语言交互、结构化JSON/YAML协议、Agent专用通信标准(比如OpenAI的Function Call、微软的AutoGen对话协议)”;“协调机制”从“分布式锁、一致性算法(Paxos/Raft/ZAB)、负载均衡器”变成了“Prompt协调、投票协调、监督协调、合约协调、市场机制协调”;“容错机制”从“重试、熔断、降级、限流、副本集”变成了“Agent冗余、任务重分配、意图重对齐、能力补全”。最终效果展示(可选)先给大家看两个我最近用AutoGen 2.0和LangChain AgentSwarm做的小Demo的截图(哦,文字博客没法放截图,那我就用文字描述一下最终效果吧):Demo 1:电商工单处理系统Agent团队组成:用户意图对齐Agent:负责和用户交互,多轮对话拆解用户的真实需求,生成结构化的工单信息(比如工单类型、工单优先级、工单详细描述、工单附件、工单期望完成时间);工单自动分类Agent:负责根据工单的结构化信息,自动将工单分配给对应的客服Agent/产品Agent/技术Agent;SLA监督Agent:负责监督每个工单的处理进度,当工单快要超过期望完成时间时,自动发送提醒消息给对应的处理Agent和部门主管;技术Agent团队:包括“前端开发Agent”“后端开发Agent”“数据库开发Agent”“测试Agent”,负责协作处理技术类工单;工单验收Agent:负责和用户交互,验收工单的处理结果,如果验收通过,就关闭工单;如果验收不通过,就把工单退回给对应的处理Agent,并附上验收不通过的原因。最终效果:单个“前端开发Agent”处理不了的“修改电商网站首页Banner轮播图的过渡效果,同时优化移动端的适配问题,还要保证不影响首页的加载速度”这类复杂工单,通过“技术Agent团队”的协作,平均处理时间从原来的2小时缩短到了30分钟,用户满意度从原来的60%提升到了95%!Demo 2:AI科研助手团队Agent团队组成:文献检索Agent:负责根据用户的科研题目,从arXiv、Google Scholar、IEEE Xplore等学术数据库中检索最近5年的相关文献,并筛选出Top 20高引用率的文献;文献精读Agent:负责精读Top 20高引用率的文献,生成结构化的文献摘要(比如研究背景、研究问题、研究方法、研究结果、研究贡献、研究局限性);研究方向分析Agent:负责分析所有文献摘要,找出当前研究领域的“热点方向”“空白方向”“争议方向”,并为用户推荐2-3个适合的研究选题;实验设计Agent:负责根据用户选择的研究选题,设计详细的实验方案(比如实验目的、实验环境、实验数据、实验步骤、实验指标、实验预期结果);论文写作Agent团队:包括“摘要写作Agent”“引言写作Agent”“相关工作写作Agent”“方法写作Agent”“结果写作Agent”“讨论写作Agent”“结论写作Agent”“参考文献整理Agent”,负责协作完成学术论文的初稿;论文修改Agent:负责对学术论文的初稿进行修改(比如语法修改、逻辑修改、格式修改、降重修改),并生成最终的学术论文。最终效果:单个“文献检索Agent”加“论文写作Agent”需要花1个月才能完成的“基于Transformer的多模态情感分析研究”这类科研任务,通过“AI科研助手团队”的协作,平均完成时间从原来的1个月缩短到了1周,而且论文的初稿质量已经达到了“可以投EI会议”的水平!准备工作(可选)既然这篇文章是讲“Multi-Agent系统的架构演进”,那我们还是得先做一些“准备工作”——比如明确一些核心概念,了解一些前置知识,这样后面的内容才能讲得更清楚、更透彻。环境/工具如果你想跟着这篇文章做一些小实验的话,我推荐你准备以下环境和工具:Python环境:Python 3.10+(因为现在主流的Multi-Agent框架都是基于Python 3.10+开发的);LLM API Key:OpenAI GPT-4 Turbo API Key、Claude 3 Opus API Key、智谱GLM-4 API Key、阿里通义千问4.0 API Key(任选一个或多个都可以,OpenAI GPT-4 Turbo的效果最好,但价格最贵;智谱GLM-4和阿里通义千问4.0的效果也不错,而且国内访问速度快,价格便宜);Multi-Agent框架:如果你是初学者,我推荐你用微软的AutoGen 2.0(简单易用,上手快,有很多现成的示例代码);如果你是有一定经验的开发者,我推荐你用LangChain AgentSwarm(功能强大,灵活性高,和LangChain生态系统集成得很好);如果你是想做生产级的Multi-Agent系统,我推荐你用智谱GLM Agent Studio或阿里通义千问Agentic Workflow(有可视化的UI界面,有企业级的安全机制和部署方案)。基础知识为了更好地理解后面的内容,我建议你先了解以下几个方面的基础知识:LLM基础:比如什么是LLM、LLM的工作原理、Prompt Engineering的基本技巧、Function Calling的基本用法、Fine-tuning的基本流程——如果你对这些内容不太熟悉的话,可以去看我之前写的两篇文章:《从GPT-1到GPT-4:大语言模型的技术演进之路》和《Prompt Engineering从入门到精通:10个提升LLM输出质量的核心技巧》;分布式系统基础:比如什么是分布式系统、分布式系统的CAP理论、分布式系统的一致性算法(Paxos/Raft/ZAB)、分布式系统的容错机制(重试、熔断、降级、限流、副本集)——如果你对这些内容不太熟悉的话,可以去看Martin Kleppmann写的《Designing Data-Intensive Applications》(中文译名:《数据密集型应用系统设计》),这本书是分布式系统领域的经典之作;博弈论基础:比如什么是博弈论、博弈论的基本要素(参与者、策略、收益、信息)、博弈论的基本分类(合作博弈/非合作博弈、零和博弈/非零和博弈、静态博弈/动态博弈)——如果你对这些内容不太熟悉的话,可以去看Robert Gibbons写的《Game Theory for Applied Economists》(中文译名:《博弈论基础》),这本书是博弈论领域的入门经典之作。核心概念:从“Agent”到“Multi-Agent系统”在讲“Multi-Agent系统的架构演进”之前,我们必须先明确一个最核心的问题——到底什么是“Agent”?到底什么是“Multi-Agent系统”?这两个概念看起来很简单,但其实很多人(包括我自己刚开始的时候)都对它们有误解——比如很多人以为“Agent就是加了工具调用的LLM”,很多人以为“Multi-Agent系统就是把多个加了工具调用的LLM放在一起”。核心概念1:Agent(智能体)问题背景“Agent(智能体)”这个概念其实不是最近才有的——它最早可以追溯到20世纪50年代的人工智能领域(图灵测试其实就是在测试一个“是否具有人类智能的Agent”),后来在20世纪80年代的分布式人工智能(DAI,Distributed Artificial Intelligence)领域得到了广泛的研究和应用,再后来在20世纪90年代的移动Agent领域、21世纪初的物联网Agent领域也都有过一些尝试,但因为当时的“AI核心技术”(比如机器学习、深度学习、自然语言处理)还不够成熟,所以这些尝试都没有取得太大的成功——直到最近几年LLM的出现,“Agent”这个概念才真正“火”了起来!问题描述那到底什么是“Agent(智能体)”呢?不同的学者、不同的研究机构、不同的公司对“Agent”的定义都不一样——比如:斯坦福大学的Russell和Norvig在《Artificial Intelligence: A Modern Approach》(中文译名:《人工智能:一种现代的方法》)这本书里对“Agent”的定义是:“An agent is anything that can be viewed as perceiving its environment through sensors and acting upon that environment through actuators.”(智能体是任何可以被视为通过传感器感知环境,并通过执行器作用于环境的事物。)维基百科对“Agent(智能体)”的定义是:“In artificial intelligence, an agent is an entity that acts upon an environment. Generally, an agent has the ability to perceive its environment via sensors, make decisions based on its perceptions (which may include past perceptions and a model of the environment), and act upon the environment via actuators to achieve its goals.”(在人工智能中,智能体是一个作用于环境的实体。通常,智能体具有通过传感器感知环境的能力、基于其感知(可能包括过去的感知和环境模型)做出决策的能力、以及通过执行器作用于环境以实现其目标的能力。)微软的AutoGen团队对“Agent(智能体)”的定义是:“An AutoGen agent is an entity that can send and receive messages, use tools, and follow a system prompt to achieve a goal.”(AutoGen智能体是一个可以发送和接收消息、使用工具、并遵循系统提示以实现目标的实体。)OpenAI的GPTs团队对“Agent(智能体)”的定义是:“A GPT is a custom version of ChatGPT that you can create for a specific purpose, by combining instructions, extra knowledge, and skills.”(GPT是ChatGPT的自定义版本,你可以通过结合指令、额外知识和技能,为特定目的创建它。)问题解决虽然不同的学者、不同的研究机构、不同的公司对“Agent”的定义都不一样,但如果我们把这些定义的“共同点”抽离出来的话,就可以得到一个**“通用的、简洁的、可操作的”Agent定义**:Agent(智能体)是一个具有以下5个核心属性的实体:自主性(Autonomy):Agent可以在没有人类或其他Agent直接干预的情况下,自主地感知环境、自主地做出决策、自主地采取行动;感知能力(Perceptivity):Agent可以通过某种方式(比如传感器、API、自然语言交互)感知环境的状态和变化;行动能力(Actuativity):Agent可以通过某种方式(比如执行器、API、自然语言交互)作用于环境,改变环境的状态;目标导向性(Goal-Orientedness):Agent的所有感知、决策、行动都是为了实现一个或多个预先设定的目标;交互能力(Interactivity):Agent可以与其他Agent(包括人类Agent)进行某种方式的交互(比如自然语言交互、结构化JSON/YAML协议交互、Agent专用通信标准交互)。哦,对了,我还得强调一下——现在大家提到的“基于LLM的Agent”,只是“Agent”这个大概念的一个“子集”!除了“基于LLM的Agent”之外,还有“基于规则的Agent”“基于强化学习的Agent”“基于多模态模型的Agent”“基于混合模型的Agent”等等。不过,因为最近几年“基于LLM的Agent”是最火、应用最广泛的,所以这篇文章后面提到的“Agent”,如果没有特别说明的话,都指的是“基于LLM的Agent”。边界与外延现在我们已经明确了“Agent”的5个核心属性,那接下来我们就来聊一聊“Agent”的

更多文章