多智能体协作:规划、执行、审核与人机协同

发布时间:2026/8/15 9:53:37

多智能体协作:规划、执行、审核与人机协同
前言前面我们已经学习了 Agent 的基础能力Prompt结构化输出Tool CallingReActWorkflowMemoryRAGMCP。现在可以回头思考一个问题一个 Agent 能不能把所有事情都做好理论上可以让一个 Agent 负责理解需求、制定计划、调用工具、写代码、审查代码、输出结果。但在实际项目中这种“大而全 Agent”很容易出现问题Prompt 越来越长工具越来越多职责混乱结果难以排查错误难以定位高风险动作难以控制一次失败后不知道是理解错、规划错还是执行错。因此当任务复杂到一定程度时可以考虑多智能体协作。多智能体不是“创建很多聊天机器人”而是将复杂任务拆分成职责清晰的角色由协调器控制任务流转并通过明确输入输出完成协作。一、什么场景适合多智能体不是所有 Agent 项目都需要多智能体。例如一个简单的知识库问答功能用户提问 - RAG 检索 - 模型回答一个 Agent 就足够了。但下面这些场景更适合考虑多智能体复杂任务拆解 多步骤数据分析 代码生成与代码审查 研发流程自动化 客服工单分流与处理 运维故障诊断 多个系统协同查询 长任务执行与质量复核例如用户提出一个需求帮我分析订单支付失败率升高的原因并给出排查建议。这个任务可能需要规划确定需要查哪些数据。 检索查询最近发布记录。 执行查询错误日志和监控指标。 分析汇总可能原因。 审核检查结论是否有足够证据。 输出给出排查建议。如果全部交给一个 Agent虽然能跑但可控性会比较差。二、多智能体常见角色划分下面是一个比较常见的角色模型。1. Planner规划 Agent职责理解用户目标拆分任务确定执行顺序判断是否需要工具输出结构化计划。例如用户说帮我排查订单服务错误率上升的问题。Planner 可以输出{goal:分析订单服务错误率上升原因,steps:[{step:1,action:查询最近发布记录,tool:get_release_history},{step:2,action:查询订单服务错误日志,tool:search_error_logs},{step:3,action:查询服务监控指标,tool:get_service_metrics},{step:4,action:汇总证据并生成排查结论,tool:null}]}2. Executor执行 Agent职责根据计划调用受控工具获取外部数据处理工具失败返回结构化执行结果。Executor 不应该擅自扩展权限也不应该因为“想试试”就调用未授权工具。3. Analyst分析 Agent职责根据执行结果找出关联关系识别可能原因区分事实和推测给出下一步排查方向。例如事实错误率上升发生在版本 v1.4.2 发布后 10 分钟。 事实错误日志中 DatabaseTimeoutException 占比 72%。 推测新版本可能增加了慢 SQL 或连接池压力。 建议检查订单查询 SQL、连接池指标和数据库慢日志。4. Reviewer审核 Agent职责检查结论是否有证据检查是否存在过度推断检查是否遗漏关键步骤检查最终内容是否触发安全风险。Reviewer 不负责重新做所有工作而是负责质量把关。5. Coordinator协调器Coordinator 可以是一个 Agent也可以是后端 Workflow。它负责维护任务状态决定下一步交给谁控制最大执行次数处理超时、失败和重试汇总最终结果要求用户确认高风险操作。在生产系统里Coordinator 往往更适合由后端 Workflow 实现而不是把所有调度决策完全交给模型。三、一个多智能体协作流程以“线上故障排查”作为例子。用户订单服务错误率突然升高帮我分析。 Coordinator 1. 创建诊断任务。 2. 交给 Planner 生成排查计划。 3. 交给 Executor 调用日志、发布记录、监控工具。 4. 交给 Analyst 根据证据分析。 5. 交给 Reviewer 审核分析结论。 6. 输出最终排查报告。流程可以表示为用户问题 | Planner 生成计划 | Executor 查询工具 | Analyst 汇总分析 | Reviewer 质量审核 | Coordinator 输出结果注意这不是要求每一轮都必须经过五个 Agent。真正的工程实践应该是简单任务走简单流程 复杂任务才进入多智能体协作否则系统成本、耗时和复杂度都会明显上升。四、规划结果必须结构化不推荐 Planner 返回一大段自然语言我建议先查看发布记录然后再看看日志接着观察数据库情况……因为后端很难稳定解析也不方便控制执行。推荐 Planner 返回 JSON。1. 任务计划 DTODatapublicclassAgentPlan{privateStringgoal;privateListPlanStepsteps;privateBooleanneedUserConfirmation;}DatapublicclassPlanStep{privateIntegerstepNo;privateStringaction;privateStringtoolName;privateMapString,Objectarguments;privateStringriskLevel;}2. Planner Prompt 示例你是任务规划 Agent。 请根据用户问题生成可执行计划。 规则 1. 只使用允许的工具。 2. 每一步必须说明目标、工具和参数。 3. 不能直接执行删除、发布、退款、权限修改等高风险操作。 4. 高风险操作必须标记 needUserConfirmationtrue。 5. 不要输出自然语言说明只返回 JSON。 6. 如果当前信息不足优先生成“查询信息”的步骤而不是猜测结论。3. 后端校验计划即使 Planner 返回了 JSON后端也不能直接执行。ServicepublicclassPlanValidationService{privatestaticfinalSetStringALLOWED_TOOLSSet.of(get_release_history,search_error_logs,get_service_metrics,search_project_document);publicvoidvalidate(AgentPlanplan){if(plan.getSteps()null||plan.getSteps().isEmpty()){thrownewBusinessException(任务计划不能为空);}if(plan.getSteps().size()8){thrownewBusinessException(任务步骤过多);}for(PlanStepstep:plan.getSteps()){if(step.getToolName()!null!ALLOWED_TOOLS.contains(step.getToolName())){thrownewBusinessException(计划包含未授权工具step.getToolName());}}}}这一步很重要模型生成的是建议计划后端校验后的计划才能进入执行阶段。五、执行 Agent 不应该拥有无限权限Executor 的职责是执行已审核的计划而不是自由发挥。例如 Planner 给出{stepNo:1,action:查询订单服务最近一小时错误日志,toolName:search_error_logs,arguments:{serviceName:order-service,timeRange:LAST_1_HOUR}}Executor 执行时还要做以下校验当前用户是否有日志查询权限 serviceName 是否在允许范围 timeRange 是否超过最大查询窗口 工具返回内容是否包含敏感字段 单次查询数据量是否过大示例代码ServiceRequiredArgsConstructorpublicclassAgentExecutionService{privatefinalToolRegistrytoolRegistry;privatefinalAgentAuditLogServiceagentAuditLogService;publicToolExecuteResultexecute(LonguserId,StringconversationId,PlanStepstep){AgentTooltooltoolRegistry.getTool(step.getToolName());if(toolnull){thrownewBusinessException(工具不存在step.getToolName());}tool.validateArguments(step.getArguments());tool.checkPermission(userId,step.getArguments());longstartTimeSystem.currentTimeMillis();try{ToolExecuteResultresulttool.execute(userId,step.getArguments());agentAuditLogService.recordSuccess(userId,conversationId,step.getToolName(),duration(startTime));returnresult;}catch(Exceptione){agentAuditLogService.recordFailure(userId,conversationId,step.getToolName(),duration(startTime),e.getMessage());returnToolExecuteResult.fail(工具执行失败请检查权限或参数);}}privatelongduration(longstartTime){returnSystem.currentTimeMillis()-startTime;}}六、分析 Agent 如何避免“看起来很合理但其实在猜”多智能体系统里最危险的情况之一就是工具结果不完整但分析 Agent 给出了非常肯定的结论。例如工具只查到了错误日志DatabaseTimeoutException 出现 100 次。分析 Agent 却直接说根因是数据库连接池配置错误。这就是过度推断。更好的分析输出应该区分证据 推测 待验证项 建议动作1. 分析结果 DTODatapublicclassDiagnosisResult{privateListStringfacts;privateListStringhypotheses;privateListStringverificationItems;privateListStringrecommendations;privateStringconfidenceLevel;}2. Analyst Prompt 示例你是故障分析 Agent。 请仅根据工具返回的数据进行分析。 输出要求 1. facts只能写已有证据直接支持的事实。 2. hypotheses可以给出可能原因但必须使用“可能”“需要验证”等表达。 3. verificationItems列出下一步需要检查的数据。 4. recommendations给出低风险排查建议。 5. 如果证据不足明确说明无法判断根因。 6. 不要把推测写成确定事实。这样能明显提高分析结果的可解释性。七、Reviewer 到底审核什么Reviewer 不是“再问一次模型你觉得对不对”。它应该有明确检查项。1. 证据完整性结论是否能在工具结果中找到依据2. 推测边界是否把可能原因说成了确定根因3. 安全边界是否泄露了敏感信息 是否建议了未确认的高风险操作4. 执行完整性是否漏掉了计划中的关键步骤 工具失败时是否有说明5. 输出可读性最终结论是否能让开发、测试或运维人员继续行动Reviewer 可以返回{passed:false,issues:[结论中提到连接池配置错误但工具结果未提供连接池指标。,建议补充查询数据库连接池使用率和慢 SQL 日志。]}Coordinator 收到未通过结果后可以补充调用工具 - 再次分析 - 再次审核但必须设置最大循环次数避免 Agent 无限循环。八、为什么多智能体需要状态管理多智能体任务通常不是一次请求就结束。因此需要在后端保存任务状态。1. 任务表示例CREATETABLEai_agent_task(idBIGINTPRIMARYKEYAUTO_INCREMENT,task_noVARCHAR(64)NOTNULL,user_idBIGINTNOTNULL,conversation_idVARCHAR(64)NOTNULL,task_typeVARCHAR(64)NOTNULL,statusVARCHAR(32)NOTNULL,current_stageVARCHAR(32)NOTNULL,input_contentTEXTNOTNULL,plan_contentTEXTDEFAULTNULL,result_contentTEXTDEFAULTNULL,error_messageVARCHAR(1000)DEFAULTNULL,created_timeDATETIMENOTNULLDEFAULTCURRENT_TIMESTAMP,updated_timeDATETIMENOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,UNIQUEKEYuk_task_no(task_no),INDEXidx_user_status(user_id,status))COMMENTAI Agent任务表;状态可以设计为PENDING PLANNING EXECUTING ANALYZING REVIEWING WAITING_CONFIRMATION SUCCESS FAILED CANCELLED2. 状态流转要受控不推荐在代码里随意写task.setStatus(SUCCESS);更好的是封装状态机规则。publicvoidtransit(AgentTasktask,TaskStatustargetStatus){if(!isAllowed(task.getStatus(),targetStatus)){thrownewBusinessException(非法任务状态流转);}task.setStatus(targetStatus);agentTaskMapper.updateStatus(task);}例如PENDING - PLANNING PLANNING - EXECUTING EXECUTING - ANALYZING ANALYZING - REVIEWING REVIEWING - SUCCESS这样能避免任务状态混乱。九、人机协同比“全自动”更重要多智能体系统最容易被误解成“让 AI 自动完成一切”。但在企业场景中更稳妥的方向往往是人机协同。适合 Agent 自动做的事情总结日志 检索文档 生成排查计划 提取工单信息 分析异常趋势 生成测试用例草稿 生成代码审查建议需要人工确认的事情发布生产环境 删除数据 调整权限 修改价格 退款 发送大规模通知 执行数据库变更可以设计确认卡片操作类型发布测试环境 项目order-service 版本v1.2.0 影响范围重启 2 个实例 执行人当前用户 是否确认执行这里的确认逻辑必须由后端控制不能依赖模型在回答文本里写一句“我确认”。十、什么时候不应该使用多智能体下面几种情况不建议一开始就引入多智能体。1. 任务非常简单例如根据知识库回答一个问题。一个 RAG Agent 即可完成。2. 工具很少例如系统只有两个只读工具查询订单 查询用户信息此时清晰的 Tool Calling 流程就足够了。3. 业务规则高度确定例如提交报销 - 审批 - 打款 - 通知这更适合 Workflow而不是多个 Agent 轮流决策。4. 没有评测和观测能力如果你无法回答下面这些问题哪个 Agent 出错了 哪一步耗时最长 哪一个工具调用失败 为什么最终答案不可靠那么多智能体只会让问题变得更难排查。十一、实际开发建议1. 先从“单 Agent 多角色 Prompt”开始在早期阶段可以不真的部署多个独立 Agent 服务。先使用一个模型但分阶段调用第一次调用生成计划 第二次调用分析工具结果 第三次调用审核最终结论每一步使用不同 Prompt、不同 JSON 输出结构。这样既能验证多角色协作思路也不会过早引入复杂架构。2. 用 Workflow 控制流程用 Agent 做判断这是一个很实用的组合Workflow 控制状态、顺序、重试、超时、确认、审计。 Agent 理解自然语言、生成计划、分析信息、总结结论。不要让模型独自决定所有流程跳转和权限边界。3. 限制最大步骤和最大重试次数例如最大计划步骤8 步 单个工具最大重试2 次 分析审核最大循环2 次 单任务最大执行时间60 秒这些限制可以防止成本失控和无限循环。4. 给每一步保留可追踪记录建议记录任务ID 当前角色 输入摘要 输出摘要 工具调用信息 耗时 失败原因 Token 使用情况这样用户反馈“这个结论从哪里来的”时你能够解释整个过程。十二、总结这一篇我们学习了多智能体协作的基本设计。重点可以记住多智能体的核心是职责拆分不是堆很多聊天机器人。常见角色包括 Planner、Executor、Analyst、Reviewer 和 Coordinator。Planner 应输出结构化计划后端必须校验后才能执行。Executor 只执行受控工具不能拥有无限权限。Analyst 必须区分事实、推测和待验证项。Reviewer 用于检查证据、边界、安全和输出质量。多智能体任务需要后端状态管理、重试限制和审计日志。高风险操作必须人机协同不能让 Agent 自动执行。简单任务不需要多智能体Workflow 往往比自由决策更可靠。下一篇我们会进入 Agent 的质量保障如何评估回答质量、发现幻觉、定位错误工具调用并建立可观测性。

相关新闻

入门尤克里里选23还是26?新手完整购琴攻略附高性价比型号推荐

入门尤克里里选23还是26?新手完整购琴攻略附高性价比型号推荐

2026/8/15 9:43:37

很多新手入坑尤克里里,第一步就卡在尺寸选择上,纠结23寸和26寸怎么选,再加上分不清板材、木材、工艺差异,很容易盲目入手玩具琴,最后因手感差、音色烂劝退。新手入门尤克里里完整选琴攻略其实新手选琴不用跟风&#xf…

Vue开发环境搭建全攻略:从Node.js安装到Vite项目创建与排错

Vue开发环境搭建全攻略:从Node.js安装到Vite项目创建与排错

2026/8/15 9:43:37

1. 项目概述:为什么需要一个“傻瓜式”的Vue环境安装指南? 每次看到新手在群里问“npm install 又卡住了怎么办?”或者“为什么我的vue命令找不到?”,我都会想起自己刚入门时对着满屏红色错误信息的那个下午。Vue.js作…

GHelper完整上手指南:华硕笔记本轻量控制工具,5步告别臃肿的Armoury Crate

GHelper完整上手指南:华硕笔记本轻量控制工具,5步告别臃肿的Armoury Crate

2026/8/15 9:43:37

GHelper完整上手指南:华硕笔记本轻量控制工具,5步告别臃肿的Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar,…

抖音批量下载从 0 到 1:用 douyin-downloader 把一整天的活压缩到半小时

抖音批量下载从 0 到 1:用 douyin-downloader 把一整天的活压缩到半小时

2026/8/15 10:33:38

抖音批量下载从 0 到 1:用 douyin-downloader 把一整天的活压缩到半小时 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and brows…

ComfyUI-VideoHelperSuite 视频处理完整指南:图像序列到成片的高效工作流

ComfyUI-VideoHelperSuite 视频处理完整指南:图像序列到成片的高效工作流

2026/8/15 10:33:38

ComfyUI-VideoHelperSuite 视频处理完整指南:图像序列到成片的高效工作流 【免费下载链接】ComfyUI-VideoHelperSuite Nodes related to video workflows 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-VideoHelperSuite 在 ComfyUI 里跑通一次图像生…

Sunshine 游戏串流服务器保姆级教程:免费把家里的电脑变成专属云游戏平台(10 分钟上手)

Sunshine 游戏串流服务器保姆级教程:免费把家里的电脑变成专属云游戏平台(10 分钟上手)

2026/8/15 10:33:38

Sunshine 游戏串流服务器保姆级教程:免费把家里的电脑变成专属云游戏平台(10 分钟上手) 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshin…

超融合架构深度解析:从核心原理到华为FusionCube实战部署

超融合架构深度解析:从核心原理到华为FusionCube实战部署

2026/8/15 10:33:38

1. 超融合:从“三合一”到数据中心新基石的演进如果你在最近几年负责过企业IT基础设施的选型或运维,那么“超融合”这个词一定在你的耳边反复响起。它不再是厂商PPT里遥不可及的概念,而是越来越多地出现在实际的采购清单和机房部署方案中。简…

零基础无损剪辑指南:5分钟学会用LosslessCut处理大视频文件

零基础无损剪辑指南:5分钟学会用LosslessCut处理大视频文件

2026/8/15 10:33:38

零基础无损剪辑指南:5分钟学会用LosslessCut处理大视频文件 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut LosslessCut 是一款基于 FFmpeg 的开源无损剪辑…

2026/27英超值得关注10大妖星:有人15岁就在欧冠出场了

2026/27英超值得关注10大妖星:有人15岁就在欧冠出场了

2026/8/15 10:23:38

新赛季英超8月22日开打,除了争冠和保级,每个赛季开始前最值得看的就是:哪个年轻人会突然冒出来。据千嗨体育统计,今年这份10人名单,有人16岁身价已经3000万欧元,有人15岁就在欧冠出场了。按身价和潜力排下来…

比较好的亚太EMBA,问了6位校友师资差别真的挺大

比较好的亚太EMBA,问了6位校友师资差别真的挺大

2026/8/13 11:01:28

比较好的亚太EMBA核心差异先看什么?对于希望兼顾工作与系统管理能力提升的亚太区高管而言,筛选匹配度高的EMBA项目时,师资配置是决定学习体验与实际收获的核心要素之一。我们结合3-4个公开信息透明、办学历史较长的亚太区主流EMBA项目特点&am…

备考3个月对比6份资料 海外游学的亚洲EMBA面试注意点

备考3个月对比6份资料 海外游学的亚洲EMBA面试注意点

2026/8/14 10:48:24

备考海外游学的亚洲EMBA面试,核心要围绕项目国际化设计逻辑、个人跨文化管理经验匹配度两个维度准备,避免把游学模块等同于普通旅游参访的认知偏差。不少备考者花3个月对比6份资料,却容易忽略面试官对“国际视野落地能力”的考察——比如香港…

比较好的国内EMBA,问了二十位校友聊透人脉价值

比较好的国内EMBA,问了二十位校友聊透人脉价值

2026/8/13 17:17:06

比较好的国内EMBA核心差异体现在哪些方面?比较好的国内EMBA的核心长期价值,很大程度上依托于校友网络的连接质量与资源生态的活跃度,这也是不少高管在择校时优先考量的因素。我们结合3-4个市场关注度较高的项目公开信息,从课程、师…

一文读懂快消WMS怎么选?2026年国内外10大主流WMS品牌盘点

一文读懂快消WMS怎么选?2026年国内外10大主流WMS品牌盘点

2026/8/15 0:03:07

快消品(FMCG)是流通速度较快、竞争较为激烈的行业之一。一瓶饮料从出厂到消费者手中,往往只有几十天甚至几天的周转窗口。这决定了快消行业的仓储管理系统(WMS)与制造业、电商行业存在明显区别:它不仅需要管…

内景 空间站内部 中国空间站 太空 内仓

内景 空间站内部 中国空间站 太空 内仓

2026/8/15 0:03:07

本项目为前几天收费帮学妹做的一个项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 空间站内部 中国空间站 太空 内仓 地址:本地PC端运行(或Web…

重新定义数据接口:3个突破性场景让通达信数据读取更智能

重新定义数据接口:3个突破性场景让通达信数据读取更智能

2026/8/15 0:03:07

重新定义数据接口:3个突破性场景让通达信数据读取更智能 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 当我们面对海量金融数据时,传统的数据获取方式往往让我们陷入困境—…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/15 1:04:46

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/15 10:10:27

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/14 19:35:14

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…