当下众多多智能体方案看上去分工明确、各司其职:有的负责需求解析,有的专攻接口验证,有的处理 UI 交互,有的记录日志,还有的统筹总结。
但若缺少明确的调用规则,这些智能体很快会沦为彼此之间反复转述信息、缺乏实质产出的循环系统。
资深 QA 工程师真正关注的核心问题,并非“系统里配置了多少个智能体”,而是:
哪个角色有权限发起任务哪个智能体被允许调用工具谁能对测试资产进行修改操作谁仅具备只读权限来查阅证据最终由谁来承担复核与决策责任
先从一个真实场景切入
假设某订单确认页迎来改版,涉及多个关键模块:
优惠计算的内部接口订单确认页面的前端 UI支付入口处的埋点逻辑服务端优惠计算的相关日志记录此时 QA 的工作,绝不是简单地“指派一个智能体去全面测试”。
更合理、更高效的任务拆分方式应当如下:
变更分诊智能体:负责审阅需求和 PR,梳理受影响的功能范围接口测试智能体:生成接口请求草稿与断言建议UI 测试智能体:产出冒烟测试步骤及失败截图说明日志证据智能体:依据 traceId 整理服务端完整时间线复核智能体:检查输出结果是否存在证据缺失、权限越界、高风险场景遗漏等问题请注意,这里的每个角色都不是“无所不能的全能测试专家”。
它们各自只专注于一个狭窄而明确的操作环节。
第一条规则:任务的流转必须像工单一样规范
切忌让智能体之间进行自由无序的随意对话。
每一次智能体之间的调用,都应遵循内部工单的标准格式:
任务编号: 发起方: 接收方: 输入材料: 期望输出: 允许工具: 截止条件: 人工确认项:
这套看似笨拙的结构化格式,恰恰非常适合 QA 场景。
因为测试工作最忌讳的,就是输出结果无法复现与追溯。
如果接口建议的来源不明、日志查询的时间窗口不清、UI 失败截图的具体生成步骤不详,后续的追责与复核工作将无从谈起。
第二条规则:调用架构必须分层设计
建议将智能体的调用体系控制在最多 4 个层级。
第一层:入口分诊层。
该层只负责三件事:
判断任务的具体类型拆解受影响的业务范围决策需要调用哪些执行智能体入口分诊层不能直接写入测试数据库,也不能擅自给出通过或失败的结论。
第二层:专业执行层。
接口、UI、日志、历史缺陷等不同职能的智能体,各自只处理自己职责范围内的事务。
接口执行智能体无权评价页面体验是否流畅。
UI 执行智能体不能判断数据库是否存在副作用。
日志证据智能体也不应直接断言“可以上线”。
第三层:证据复核层。
复核者只审查结构化的输出信息:
结论: 证据: 调用工具: 不确定项: 需要人工确认:
复核的核心任务是发现潜在漏洞与缺失,而非撰写美化后的总结报告。
第四层:人工审批层。
所有涉及高风险的结论,最终都必须交由人工 QA 工程师确认。
特别是支付、发券、权限变更、通知发送、数据删除、灰度配置等敏感动作,绝不能由智能体自动拍板决定。

第三条规则:不同测试类型应采用差异化的调用方式
功能测试更适合走“分诊 → 用例建议 → 人工复核”的链路。
此类测试的输入通常是需求文档、PR 及历史缺陷记录。
其核心风险在于需求理解可能偏差,因此必须保留“不确定项”作为缓冲。
接口测试更适合采用“接口文档 → 请求草稿 → 断言建议 → 数据准备确认”的流程。
其输入主要来自 OpenAPI 规范、请求样例、错误码及鉴权说明。
主要风险是测试数据与环境状态不可靠,因此不应让模型自动生成高风险测试数据。
UI 测试更适合“页面路径 → 操作步骤 → 失败归因”的路径。
输入来源包括页面截图、DOM 结构、accessibility snapshot 及自动化错误报告。
风险在于可能将真实缺陷误判为 selector 更新等表面问题。
APP/小程序测试更适合“发版说明 → 端侧冒烟清单 → 真机确认项”的组合。
输入通常包括版本说明、页面路径、权限配置、系统版本及弱网条件。
风险在于端侧环境过于复杂,不能仅依赖文本判断。
服务端测试更适合“接口失败 → trace/log 摘要 → 可能原因”的分析路径。
输入包括 requestId、traceId、服务名、日志窗口及消息队列状态。
风险在于可能将相关日志误判为根本原因。
第四条规则:工具调用必须有明确的白名单机制
多智能体系统最容易失控的环节,就是工具权限的管控。
建议将工具划分为三个等级。
只读类工具:
读取需求文档读取 PR 描述读取接口说明文档读取日志记录读取历史缺陷库低风险执行类工具:
生成接口请求草稿生成测试点列表生成 UI 操作步骤生成日志摘要信息生成回归测试建议高风险类工具:
写入测试数据库修改系统配置清理测试数据触发支付流程发送通知消息修改灰度规则前两类工具可以允许智能体自动调用。
第三类工具则必须经过人工确认才可执行。
这并非保守,而是测试工作中不可逾越的基本责任边界。

第五条规则:必须预设明确的终止条件
缺乏终止条件的多智能体系统,极易陷入无休止的循环。
例如,接口执行智能体提出“需要日志信息”,日志证据智能体回应“需要更多请求详情”,入口分诊智能体又将任务重新分配给接口执行者,形成死循环。
这类循环必须在系统设计阶段就加以限制。
建议设置以下 5 个终止条件:
最大调用轮次上限最大工具调用次数上限最长等待时间上限连续两次迭代未产生新证据即自动停止出现高风险动作时立即转交人工处理输出结果也应明确标明状态:
已完成: 未完成: 停止原因: 缺失证据: 建议人工动作:
这样 QA 工程师才能清晰了解任务是“正常完成”,还是“因证据不足而中止”。
第六条规则:复核者不得篡改原始结果
很多人倾向于让一个总结型智能体将前面的所有输出整理得更加美观。
这种做法在 QA 场景中存在不小的风险。
复核者的职责不是美化结论,而是进行反向检查与验证:
是否存在证据缺口是否有越权调用工具的行为是否将推测性内容写成了确定事实是否遗漏了历史缺陷记录是否缺少必要的人工确认环节是否存在相互矛盾的结论复核者的输出最好采用以下结构:
可采纳项: 不可采纳项: 证据不足项: 需要人工确认: 建议补充调用:
如果复核者直接重写结论,那么原始的完整证据链就会被稀释甚至扭曲。
10-30 分钟快速验证建议
选择一个足够小的需求场景即可。
例如:登录页新增一个入口,后端新增一个配置接口,前端增加一个页面跳转。
无需接入 CI 流程,不必对接测试平台,也无需编写复杂的编排脚本。
先用 4 个文本文件模拟基础输入:
change.md:需求与 PR 的摘要信息api.md:接口定义说明ui.md:页面路径描述bugs.md:历史缺陷记录然后让入口分诊智能体输出标准的任务工单。
再分别交给接口执行智能体、UI 执行智能体、历史缺陷执行智能体进行处理。
最后让复核智能体只基于这些输出进行审查。
评估标准并非“系统是否全自动完成了测试”,而是:
是否减少了 QA 在第一轮拆解工作中的重复劳动是否生成了可供追溯和复核的结构化证据能否清晰描述当前还缺少哪些信息是否存在越权执行高风险动作的情况
最小化输出模板建议
所有角色统一采用同一套输出模板。
角色: 输入: 处理动作: 输出结论: 证据: 不确定项: 调用工具: 禁止动作: 需要人工确认:
模板统一之后,多智能体系统的管理难度将大幅降低。
否则每个角色都输出冗长的自由文本,QA 反而需要花费更多时间去阅读和梳理总结。
总结
多智能体的本质,不是让多个模型聚在一起讨论测试问题。
在 QA 的真实场景中,它更应当被设计为一个受控的任务流转系统:
入口层负责精准分诊专业角色各自聚焦于狭窄的执行动作工具调用必须遵循白名单机制证据输出必须保持结构化复核者只承担审查职责高风险决策最终回归人工判断如果无法做到以上几点,那么多智能体不仅无法提升效率,反而会制造出新的不可控流程与风险。
