掌握多智能体架构:AI系统设计进阶指南,5种模式详解及实战案例!
本文探讨了在构建复杂AI系统时何时从单智能体架构转向多智能体架构的必要性并详细介绍了五种多智能体设计模式子智能体、移交、技能、路由和自定义工作流。文章强调了上下文管理、分布式开发和任务并行化是引入多智能体架构的核心驱动力并通过Handoffs模式的实战案例展示了如何实现上下文工程。最后文章提出了根据不同需求选择合适模式的选型原则旨在帮助开发者更高效地设计AI系统。01 前言在构建复杂的 AI 系统时架构设计的原则依然适用如果单智能体Single Agent配合合适的提示词和工具就能解决问题请永远优先选择单智能体。单智能体架构简单、调试容易且 Token 成本更低。然而当单Agent达到极限——例如 Agent 需要处理几十个工具导致决策失误或是在庞大的上下文中迷失方向时我们才真正需要引入多智能体架构。02 核心驱动引入多智能体架构的核心驱动力在于以下三个方面1、上下文管理Context Management现实中上下文窗口并非无限多智能体允许进行上下文隔离只向特定 Agent 展示其所需的专门知识避免模型被冗余信息淹没。2、分布式开发Distributed Development允许不同团队独立开发和维护各自的子智能体如“搜索 Agent”和“写入 Agent”最后通过清晰的边界组合成大系统。3、任务并行化Parallelization可以同时启动多个专门的 worker 并发执行子任务如并行调研不同主题大幅提高系统响应速度。03 多智能体架构根据 LangChain 官方实践多智能体设计主要分为以下五种模式。1、子智能体模式 (Subagents)一个中心化的**主智能体Supervisor**通过将子智能体作为“工具”来协调它们。主智能体决定调用哪个子智能体、提供什么输入并负责汇总结果。**使用场景**个人助理系统主 Agent 根据需求分别调用“日历 Agent”和“邮件 Agent”。核心特点中心化控制所有路由都经过主智能体由其进行跨轮次的动态调度。上下文隔离子智能体在干净的窗口运行完成后仅返回结果防止主对话历史过于臃肿。并行执行主智能体可以在单次交互中并行调用多个子智能体执行独立任务。2、移交模式 (Handoffs)控制权在 Agent 间动态转移。工具调用会更新状态变量如 active_agent变量系统依据该变量切换不同的 Agent 或调整配置。使用场景客服流程中基础客服在验证身份后将赔偿问题转交给“销售专家”。核心特点状态驱动行为系统的行为和配置根据当前的状态变量动态调整。持久化状态状态信息在对话轮次之间持久存在支持复杂的长程对话流。顺序约束适合强制执行特定阶段的流程只有满足前置条件如输入保修 ID才解锁后续能力。3、技能模式 (Skills)单一 Agent 保持控制权但根据上下文按需加载专门的提示词和领域知识渐进式披露。为什么把Skills列为一种架构模式呢Skills的渐进式披露机制规避了初始 Prompt 过长导致的注意力涣散本质是将能力模块化为可组合的工具单元让 Agent 能按需调用从而形成“能力编排”的结构而不是单一流程。使用场景全能编程助手根据用户询问的语言如 Python 或 Rust动态加载对应的技术文档。核心特点提示词驱动特化技能本质上是包装好的专门提示词用于增强 Agent 行为。渐进式披露技能仅在需要时被检索并加载保持系统初始运行的轻量化。分形设计支持技能可以定义嵌套的子技能形成树状结构的专业知识组织。4、路由模式 (Router)通过分类步骤通常是单一 LLM 调用识别用户意图并将请求引导至零个或多个垂直领域 Agent最后汇总结果。**使用场景**多源知识库查询同时从 GitHub、Notion 和 Slack 获取信息并合成答案。核心特点查询拆解与分发路由步骤负责将复杂查询分解并分派给最合适的专业节点。并行扇出支持同时调用多个子 Agent 并行处理显著降低整体延迟。合成回复所有并行分支的结果最终由一个节点合成连贯、统一的最终回答。5、自定义工作流 (Custom Workflow)使用 LangGraph 完全自主定义执行流混合确定性逻辑代码和智能体行为支持循环和条件分支。使用场景评估者-优化者 (Evaluator-Optimizer) 模式一个节点生成结果另一个评估其质量未通过则循环重试。核心特点完全的结构控制开发者拥有对图结构的绝对控制权可定义任意的循环、分支和并行路径。确定性与动态性结合能够将严谨的代码步骤与动态的 LLM 推理节点无缝缝合模式组合支持将上述子智能体、路由等模式作为工作流中的一个节点进行嵌套使用。04 实战 - Handoffs模式实现Handoffs 的核心技术难点在于上下文工程******Context Engineering**。当从 Agent A 切换到 Agent B 时必须确保对话历史的完整性。一个示例import os from typing import List, Literal, Optional from pydantic import BaseModel from langchain.chat_models import init_chat_model from langchain_core.messages import HumanMessage, SystemMessage, AIMessage # # 1. 定义结构化输出 # classAgentDecision(BaseModel): action: - respond: 直接回复用户 - handoff: 转接给另一个 agent target: - Sales / Support转接目标 content: - 回复内容当 actionrespond 时使用 action: Literal[respond, handoff] target: Optional[Literal[Sales, Support]] None content: Optional[str] None # # 2. 初始化模型 # os.environ[DEEPSEEK_API_KEY] sk-... base_llm init_chat_model( modeldeepseek-chat, temperature0 ) # 结构化输出模型 decision_llm base_llm.with_structured_output(AgentDecision) # # 3. Support Agent # defsupport_agent(messages: List): 客服 - 普通问题直接回答 - 涉及退款 / 赔偿 / 商务 → 转 Sales decision decision_llm.invoke( [ SystemMessage( content( 你是客服Support。\n\n 规则\n 1. 普通咨询 → respond\n 2. 涉及退款、赔偿、补偿、价格、商务 → handoff 到 Sales\n\n 必须严格输出结构化结果。 ) ) ] messages ) return decision # # 4. Sales Agent支持转回 # defsales_agent(messages: List): 销售 - 处理赔偿 / 退款 / 商务 - 如果问题变回普通咨询 → 转回 Support decision decision_llm.invoke( [ SystemMessage( content( 你是销售Sales。\n\n 规则\n 1. 赔偿 / 退款 / 价格 → respond\n 2. 普通使用问题 / 技术问题 → handoff 到 Support\n\n 必须严格输出结构化结果。 ) ) ] messages ) return decision # # 5. 会话状态 # state { messages: [], current_agent: Support } # # 6. 单轮执行核心 # defrun_turn(user_input: str): 多 Agent 执行流程 1. 当前 agent 做决策 2. 如果 handoff → 切换 agent 3. 再执行一次直到得到 respond state[messages].append(HumanMessage(contentuser_input)) whileTrue: # 当前是 Support if state[current_agent] Support: decision support_agent(state[messages]) # 当前是 Sales else: decision sales_agent(state[messages]) # 如果需要转接 if decision.action handoff: print(f 转接到 {decision.target}) state[current_agent] decision.target # ⚠️ 注意continue 重新让新 agent 决策 continue # 如果是正常回复 else: response AIMessage(contentdecision.content) state[messages].append(response) return response # # 7. 运行 # if __name__ __main__: print(输入 exit 退出\n) whileTrue: user_input input(用户) if user_input.lower() in [exit, quit]: break resp run_turn(user_input) print(AI, resp.content) print(当前Agent, state[current_agent])示例首先定义了AgentDecision模型用于结构化输出然后初始化LLM这里用的DeepSeek并绑定结构化输出定义两个Agent客户和销售然后定义state记录会话内容消息和当前的agent最后定义执行流程和流转逻辑并通过模型输出来判断下一步的Agent这里状态会记录当前Agent下一轮会默认进入该Agent。测试输入和输出示例如下省略了AI输出内容用户你们这个套餐多少钱 转接到 Sales AI 省略AI输出 当前Agent Sales 用户这个功能怎么开启 转接到 Support AI 省略AI输出 当前Agent Support 用户如果买企业版可以便宜点吗 转接到 Sales AI 省略AI输出 当前Agent Sales核心流程图如下05 总结掌握多智能体架构本质上是学会用代码定义 AI 的思考路径。在选型时请参考以下选型原则如果追求重复请求的高效能选择 Handoffs 或Skills它们通过持久化状态可节省约 40-50% 的模型调用。如果需要多领域并行研究选择 Subagents 或Router它们在处理多语言对比等任务时能通过上下文隔离节省约 60% 的 Token 消耗。如果流程极其严谨且复杂选择 Custom Workflow利用其对确定性步骤如评估、过滤的掌控力来确保系统安全可控。AI行业迎来前所未有的爆发式增长从DeepSeek百万年薪招聘AI研究员到百度、阿里、腾讯等大厂疯狂布局AI Agent再到国家政策大力扶持数字经济和AI人才培养所有信号都在告诉我们AI的黄金十年真的来了在行业火爆之下AI人才争夺战也日趋白热化其就业前景一片蓝海我给大家准备了一份全套的《AI大模型零基础入门进阶学习资源包》包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。有需要的小伙伴可以V扫描下方二维码免费领取人才缺口巨大人力资源社会保障部有关报告显示据测算当前****我国人工智能人才缺口超过500万****供求比例达1∶10。脉脉最新数据也显示AI新发岗位量较去年初暴增29倍超1000家AI企业释放7.2万岗位……单拿今年的秋招来说各互联网大厂释放出来的招聘信息中我们就能感受到AI浪潮比如百度90%的技术岗都与AI相关就业薪资超高在旺盛的市场需求下AI岗位不仅招聘量大薪资待遇更是“一骑绝尘”。企业为抢AI核心人才薪资给的非常慷慨过去一年懂AI的人才普遍涨薪40%脉脉高聘发布的《2025年度人才迁徙报告》显示在2025年1月-10月的高薪岗位Top20排行中AI相关岗位占了绝大多数并且平均薪资月薪都超过6w在去年的秋招中小红书给算法相关岗位的薪资为50k起字节开出228万元的超高年薪据《2025年秋季校园招聘白皮书》AI算法类平均年薪达36.9万遥遥领先其他行业总结来说当前人工智能岗位需求多薪资高前景好。在职场里选对赛道就能赢在起跑线。抓住AI风口轻松实现高薪就业但现实却是仍有很多同学不知道如何抓住AI机遇会遇到很多就业难题比如❌ 技术过时只会CRUD的开发者在AI浪潮中沦为“职场裸奔者”❌ 薪资停滞初级岗位内卷到白菜价传统开发3年经验薪资涨幅不足15%❌ 转型无门想学AI却找不到系统路径83%自学党中途放弃。他们的就业难题解决问题的关键在于不仅要选对赛道更要跟对老师我给大家准备了一份全套的《AI大模型零基础入门进阶学习资源包》包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。有需要的小伙伴可以V扫描下方二维码免费领取