尧图精选

AI代理交互下的多人多AI协同系统架构实践

🕒 发布时间:2026/10/2 18:52:14 📁 来源:尧图网络
最近在跟团队推进一个内部项目名字念起来挺长基于AI代理代为交互的多人多AI协同系统架构研究。说白了就是做一层Agent网关让一群人、一群AI模型在一个统一的体系里协作干活。多数团队现在还在人直接连模型的直连模式一人一个账号、一个对话窗口问出来的东西互相不通气。这套架构想解决的不是哪个模型更强而是多模型并存之后谁说了算、上下文放哪里、任务怎么传这三个问题。对已经在做AI应用落地、或者准备搭AI中台的架构师和开发来说值得往下看。我先把最核心的观点放前面AI代理AI Agent在这套体系里不是更聪明的模型而是交互代理层。它不替模型思考而是替人管理模型、替任务分配资源、替团队沉淀知识。多人多AI协同难点从来不在模型能力而在系统各组件之间的共识机制。只要把代理层设计好了后面接什么模型、换什么模型对使用方来说都是无感的。1. 为什么需要代为交互多人多AI协同的本质痛点1.1 直连模式的失控现场想象一下实际工作流团队里有人用ChatGPT有人用Claude有人用本地部署的开源模型还有人维护着一个接内部知识库的问答Bot。最早大家图省事把模型API直接接进IM机器人一人一个入口结果就是混乱。第一个问题是上下文割裂。同一个业务问题上午在A模型那边问了一半下午换B模型重新起头新模型完全不知道前面的背景答案自然对不上。更麻烦的是团队成员之间彼此看不到对方的上下文A成员调用的模型输出了一个关键结论B成员毫不知情又在另一个模型里重复问了同样的问题白白浪费时间。第二个问题是上下文漂移。即便只用同一个模型长对话一多模型就容易被先前的闲聊带偏越聊越偏离主线。我在实际项目里见过最典型的情况是一个会话连续聊了三四个小时后模型开始把旧方案当新结论整个任务方向直接跑偏。第三个问题是权限和数据边界失控。直连模式下团队成员可以随手把内部代码片段、客户资料、未发布的方案粘贴到任意模型对话里没有任何经过代理的统一管控和审计。很多做企业应用的人一听到这个就头大因为这意味着数据流完全不可控出了问题连追溯的入口都没有。第四个问题是缺少编排。直连模式下人是任务的唯一调度者。一个问题需要先搜索、再总结、然后翻译、最后校对这种多步骤流程时人就得自己当胶水把每一步结果手动搬运到下一步。AI只是单点工具还没形成所谓的多AI协同——或者更直白地说协同是靠人肉实现的。1.2 代理层 从人直连AI到人对接Agent的架构转变这套架构的核心变化就是在人和模型之间插入一层AI代理。把人工智能代理当作一个前台调度员它不亲自干所有活但它知道活应该派给谁、需要请示谁、干完怎么归档。引入代理层之后原来的直连关系变成了三层关系人只面对统一入口不再关心背后接的是哪个模型。模型变成可插拔组件今天用这个、明天换那个对使用方无感。会话状态、工具权限、任务流程全部收归代理层管理。这个转变的收益用一个生活类比就能讲清楚。以前是公司每个部门都直接接待外部客户客户得自己找到销售、技术、财务重复讲N遍需求现在是有了客户经理代理层客户只需要对接一个人后面的事情由客户经理在内部协调。从客户视角看沟通成本大幅下降从公司视角看知识沉淀和流程管控都收口了。在实际架构里代为交互有四个递进层次。最基础的是代理路由统一接收请求识别意图后分发给合适的模型。再往上是代理编排把复杂任务拆解成子任务在不同模型之间流转自动汇总结果。再高级一些是代理协商多个模型对同一个问题给出不同答案时由仲裁机制裁决。最高级是代理记忆代理层能跨会话、跨用户地沉淀共同上下文让后续任务站在之前工作的肩膀上继续干。这套思路对任何做AI应用集成的人都有参考价值尤其是企业内部AI中台建设、多模型网关设计、以及RPA与AI结合的自动化流程。2. 代理层核心设计分层架构与关键模块2.1 从零搭建一个五层架构我们最终落地的架构大致可以分成五层。每一层各管一件事层与层之间通过标准接口交互避免彼此污染。接入层解决谁来用的问题。覆盖IM机器人、Web端、移动端和OpenAPI。这一层只做统一入口和身份认证尽量做得薄业务逻辑越少越好。编排层是整个代理层的核心解决怎么干活的问题。包含五个关键模块会话管理器维护唯一的sessionId持久化消息列表支持上下文版本快照。任务调度器负责任务拆解、依赖关系维护和执行顺序调度。消息总线Agent之间不直接调用而是通过事件消息交互解耦彼此。仲裁服务处理多Agent输出冲突确定最终结果。审计网关记录每一次调用、每一次决策痕迹、每一次数据流向。模型抽象层解决用谁干的问题。通过统一接口封装不同模型供应商对外输出统一的调用协议。不管是OpenAI兼容接口还是本地部署的国产开源模型在抽象层看来都是一样的计算单元。上下文与记忆层解决记住什么的问题。短期会话缓存走Redis长期团队知识走向量库公共背景资料走持久化存储。工具与权限层解决允许干什么的问题。用一个工具注册表维护所有可调用的外部能力比如搜索、计算器、代码执行沙箱、内部API。每个工具都需要声明入参、出参、权限等级和成本。这五层合在一起才构成了一个完整的AI代理系统架构。不是装个LangChain调用几个模型就叫代理了真正关键的状态管理、路由、权限、审计全都在编排层里。2.2 任务编排的三种主流模式多AI协同任务最终都要落到编排模式上。我梳理出了三个主流的模式**主从模式Orchestrator-Worker**比较像项目经理带外包团队。一个主Agent负责理解用户总目标把任务拆成几个独立的活分给多个Worker Agent并行执行最后回收结果。这个模式好处是清晰直观适合知识库问答、多文档对比这类任务可并行的场景。缺点是主Agent容易成为瓶颈如果拆解能力不行整个链路就垮了。另外主Agent本身也会受上下文窗口限制任务太多时规划质量会明显下降。**管道模式Pipeline**像工厂流水线。任务被拆成一串有序步骤每步的输出是下一步的输入。比如生成代码→代码审查→修复问题→生成测试用例非常适合这种有明确先后依赖的流程。它的优点是每一步职责单一出了问题容易定位缺点是整条链路的延迟是累加的而且中间任何一步挂了后续就全部停摆。我自己的经验是管道的步数不要超过五到六步再多的话失败率和延迟都会让人难以接受。**图模式Graph**是三者中最灵活也是实现成本最高的。任务被表示成一个有向图节点是具体的Agent动作边是条件和数据流转。图模式允许条件分支、循环、回退模型可以根据前一步结果动态决定下一步动作。我们团队目前的主力编排引擎就选的图模式因为它最接近真实决策过程。代价是需要更严谨的状态管理和防环机制否则Agent在图里绕圈子出不来。选型上没有银弹。我给出的选择标准很简单团队刚开始做验证先主从模式流程固定且步骤清晰管道模式足够要处理探索性、不确定性强的复杂任务直接上图模式。2.3 上下文分区全局、会话、任务三级管理多AI协同最容易被忽略的技术细节是上下文的边界。很多团队做出来的系统感觉AI很笨很多时候不是模型问题而是把不该混淆的上下文混在一起了。我们设计了三层上下文隔离全局上下文是团队共享的公共背景包括项目目标、行业术语、常用规范。这层数据存持久化存储所有Agent在响应前都会自动加载相当于公司的新员工手册。会话上下文是某一次多人协同讨论的过程内容包括正在讨论的主题、已形成的结论、待确认的问题。这层存在短期缓存里配合会话时间窗口过期自动清理。任务上下文是单个子任务的输入输出比如某个执行Agent收到的临时指令、它产出的临时结果。这层生命周期最短任务完成后只保留摘要不保留全过程。用抽屉来理解毫不费力全局是公共资料柜人人可取但定期更新会话是会议室白板会议期间随便写散会就擦任务是一次性便利贴用完即扔。这么分区管理的好处很直接。第一防止模型把不属于当前任务的背景混进推理降低干扰第二降低上下文窗口压力——不是每轮都把所有历史塞给模型第三方便权限控制比如不同会话甚至可以对不同的模型隐藏部分全局上下文。2.4 关键技术选型与取舍这部分没有任何标准答案我只说我们验证过的组合。编排引擎是底座目前可供选择的方案不少。LangGraph适合需要精细控制状态和图的团队Python生态好调试能力强CrewAI上手快角色化概念直观适合快速做MVPAutoGen偏研究风格Agent之间对话协作能力强但生产化需要自己做较多包装Dify这类平台化产品则适合不想维护底层代码的团队可是定制自由度会受限。我们的取舍标准是是否支持图模式、是否有良好的可观测性、社区活跃度是否够高。最终选了以LangGraph为核心的理念这也纯粹是从团队技术栈出发的选择。模型接入走的是OpenAI兼容协议配合Ollama跑本地模型生产环境用vLLM做高性能推理服务。这样切换成本最低同一个抽象层的代码不需要改接口。存储选型方面会话缓存用Redis持久化审计用PostgreSQL知识库用向量数据库。数据量上来之后要注意Redis内存增长建议给每个会话设置TTL和大小上限。3. 多AI协同的关键机制共识、冲突仲裁与人类介入3.1 模型抽象与动态路由策略多AI协同的第一步是把能力各异的模型包装成统一计算单元。模型抽象层的核心职责是统一协议输入统一格式、输出统一格式、错误处理统一格式。这样上层编排逻辑不关心底层是闭源商业模型还是本地开源模型只关心输入一个任务得到一个结果。有了抽象层之后动态路由策略才能发挥作用。我们维护一张路由规则表按任务类型、预算、时延要求来决定把请求发给谁。核心逻辑是代码生成和Debug任务优先走代码能力最强的模型。长文档总结任务优先上下文窗口大的模型避免上下文超限。简单意图识别走本地轻量模型速度快且省成本。涉及敏感内部数据时只允许走本地部署模型。这套路由规则每季度更新一次因为模型迭代很快。实施路由时要注意一点路由决策本身也要被审计否则出了质量问题无法追溯是谁在什么规则下做的选择。3.2 多Agent输出不一致时怎么定正确答案多人多AI协同里同一个问题多个Agent给出不同答案几乎是必然的。关键问题就变成以谁为准。按复杂程度递增我们整理了四种共识策略简单多数投票适用于分类题、判断题这类有明确选项的任务。三个执行Agent投票取多数。成本低、效率高但三个都不靠谱时也照样错。加权投票按各模型在历史同类任务上的准确率加权把低分模型的票权压低。适合有一批历史评估数据的场景。评审Agent仲裁独立的审查Agent接收所有候选答案和推理过程用打分卡正确性、完整性、可执行性给出最终选择。成本比投票高但能够处理开放性问题的冲突。人在回路仲裁最高优先级的策略。系统把不同答案并排展示给人类决策者由人拍板。我们的经验是共识策略应当分级。低风险任务比如生成文案初稿自动仲裁即可中等风险任务比如生成代码改动至少加一道审查Agent高风险任务比如对外发消息、财务操作强制走人审。有一个坑要提醒投票不是越多越好。三个模型已经能提供足够多样性加到五六个模型边际收益非常低反而把成本和延迟推高。实测下来三到四个执行Agent是最舒服的平衡点。3.3 人在回路机制不是所有事情都要自动化整套系统里AI代理承担了大量交互但那些关键节点上必须留人。人在回路Human-in-the-loop机制做得好不好直接决定系统敢不敢在真实业务里跑起来。我们在代理层定义了一类特殊的待确认状态。当某个Agent想执行高风险操作时先发出一个审批请求操作进入pending_approval状态。等人类决策者确认后才转为executed被驳回则转为rejected并把这个结果返回给发起Agent让它修正方案。整个状态机由编排层统一控制任何人审节点的状态变化都会被审计记录。实现层面有几个关键参数值得记录审批超时时间我们默认30分钟超时按驳回处理并通知发起方、审批人指定策略可以选择具体人、角色组或轮值队列、以及免审白名单同一个Agent的同一类操作如果一周内被连续批准五次以上可以自动放行低风险变体。强调一句人审不是降低效率的累赘。恰恰是因为人审节点的存在我们才敢把更多Agent动作从只读开放到可写。兜底越可靠自动化才敢放得越开。4. 从架构到落地最小原型与避坑实录4.1 技术栈选型与编排引擎对比如果你也想从零做一套原型验证不要一上来就堆组件先用最少的东西跑通闭环。我们验证用的组合是FastAPI做后端服务Redis存会话和任务状态三个Agent模型分别承担任务路由、执行和审查职责前端用WebSocket做实时消息推送。整套东西在一台8核16G的机器上就能跑起来。编排引擎是我们花时间对比最多的地方。我做了个对比表方便你快速决策方案适合场景优势劣势LangGraph需要精细状态控制的复杂流程图编排灵活可观测性强学习曲线陡峭CrewAI快速验证角色化协同上手快角色概念直观复杂流程控制力弱AutoGen研究多Agent对话协同Agent间对话自然生产化需要大量包装Dify平台不想维护底层代码部署快、自带界面深度定制受限无论是哪个方案核心还是代理层的设计思路。工具只是实现思路才是系统架构的骨架。4.2 最小原型的设计与关键参数我简化描述一下我们验证用的原型流程用户通过Web端发送一个复杂任务请求比如调研三种向量数据库的对比输出选型建议。路由Agent解析用户意图识别出需要检索、对比、评估三个子任务按依赖关系生成编排图。编排层把三个子任务分发给三个执行Agent其中两个并行做检索一个做评估。审查Agent接收所有候选输出按正确性、完整性和可执行性打分选出最优结果。系统将结果返回前端如果任务涉及高成本或外部敏感动作先转人审再返回。这个流程里有两个关键参数容易被忽略。第一是单任务超时我们默认60秒超过就重试一次最多重试两次。如果两次都失败不再死磕而是直接把部分结果返回让用户决定是否续跑。第二是上下文窗口预算每次调用模型前编排层会计算当前剩余可用的上下文空间超预算时自动做摘要压缩而不是粗暴截断。还有一个参数是最大编排轮数我们限制单次用户请求最多触发20个Agent动作。这是一个安全阀防止Agent在子任务之间无限循环。实测下来大多数正常任务在5到15个动作之间就能收敛。4.3 实测复盘踩过的坑比收获还多原型跑了一个月踩过的坑比收获多。挑四个典型的分享希望帮你省时间。**第一个坑是Agent空转。**两个执行Agent在评审阶段反复给对方提意见循环了七八轮还在打转。表面看是对话协同的正常行为实际上是缺少收敛机制。我们在审查Agent里增加了置信度阈值——当某个候选答案的得分超过设定阈值比如85分或者连续两轮得分不再提升时强制终止评审并输出当前最优结果。同时在编排层加最大迭代次数做兜底。**第二个坑是上下文超限。**有一次任务要总结一份120页的行业报告执行Agent直接尝试把全文塞进提示词结果报错。后来改为检索增强方式先对报告分块、做向量索引Agent每次只拉取与当前子问题最相关的内容块而不是全文加载。配合摘要记忆长文档任务才算稳定跑通。**第三个坑是消息风暴。**引入消息总线之后最开始所有事件都不设限制结果一个简单任务引发了上百条消息日志文件飞速膨胀。后来我们加了消息配额和事件抑制每个任务的消息总量上限、同事件重复通知延迟合并、无关事件自动降噪。消息风暴不解决系统规模稍微一大就直接被自己淹死。**第四个坑是单点故障。**早期编排层是无状态部署的但任务状态全存在进程内存里一旦重启所有进行中的任务全部丢失。后来把任务状态、会话快照全部落到Redis编排层彻底无状态化重启只影响正在执行的那一次请求不再影响全部任务。4.4 常见问题速查表把这段时间的排查经验整理成了一张速查表开会聊方案时我经常直接甩给别人问题现象可能原因排查方法解决建议Agent无限循环对话缺少终止条件检查编排轮数日志和对话轨迹加最大轮数、置信度阈值、重复检测模型响应超时模型服务端过载看调用链时延分布调整超时参数、增加降级策略上下文窗口溢出单轮输入过大检查请求Token统计分块检索、摘要压缩、分段处理多Agent答案冲突共识策略未配置查看仲裁日志按风险等级配置投票或人审任务状态丢失状态存进程内存查看服务重启日志状态持久化到Redis消息量暴涨缺少配额和抑制统计事件类型分布加消息配额和事件合并路由结果质量差路由规则过时对比不同路由结果定期更新路由规则表这套表到现在还在持续更新每踩一个坑就补一行。多AI协同系统的复杂度只有真正运行时才会完全暴露出来纸面架构永远发现不了所有问题。最后从实际操作的角度说点个人体会。这套基于AI代理代为交互的多人多AI协同系统架构核心价值不在于把多个模型拼在一起而在于通过代理层把上下文、路由、仲裁、审计这些基础设施统一起来。刚开始做的时候我们总想着多上模型、多搞功能后来发现真正难的是收敛收敛上下文、收敛计算轮数、收敛Agent之间的废话。建议想尝试的团队先从一个小场景跑起来比如三四个Agent、两个模型、一条固定任务流跑通后再逐步放开。架构可以先复杂落地一定要先简单这是我在这个过程里最大的教训。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →