【面试题】AI测试面试题1
一、LLM Agent 定义与本质区别
1. LLM Agent 定义
LLM Agent(大语言模型智能体)是以大语言模型为核心决策大脑,具备目标感知、自主规划、工具调用、结果反馈、自我迭代能力的智能执行单元。它不再是被动的问答工具,而是能围绕给定目标,自主拆解任务、调用外部能力、根据环境反馈动态调整策略,最终独立完成复杂任务的“智能执行者”。
2. 与传统大模型单次调用的本质区别
二者的核心差异是**“被动文本生成”与“主动任务执行”的底层逻辑不同**:
- 传统单次调用:是「输入→输出」的无状态黑盒模式,模型只负责基于当前输入生成文本,没有自主行动能力,所有信息和步骤都需要用户提前提供;输出仅为文本结果,不与外部系统交互,任务的拆解、执行、校验全由人完成。
- LLM Agent:是「目标→规划→行动→反馈→迭代」的有状态闭环模式,模型承担决策职责,能自主调用工具、保留任务状态、根据执行结果修正路径;用户只需要给出最终目标,中间过程由Agent自主完成,最终交付的是任务结果而非单纯文本。
一句话总结:传统大模型是“回答问题的工具”,LLM Agent是“解决问题的主体”。
二、AI Agent 标准架构的核心组件与职责
业界通用的标准Agent架构由6个核心组件构成,职责划分如下:
- 核心推理引擎(LLM Brain)
整个Agent的决策中枢,负责理解用户目标、生成推理逻辑、选择执行路径、调度工具、输出最终结论,是所有规划、判断、决策能力的载体。 - 记忆系统(Memory)
负责存储任务全生命周期的信息,分为两类:- 短期记忆:上下文窗口内的对话历史、执行步骤、中间结果,保障单任务内的逻辑连贯;
- 长期记忆:向量知识库、历史任务经验、领域知识沉淀,支撑跨任务的经验复用与知识调用。
- 工具层(Tools & Interface)
Agent与外部世界交互的能力接口,是扩展模型能力边界的核心;包含搜索、代码执行、API调用、文件操作、数据库查询等原子能力,模型通过约定格式调用工具获取实时信息、执行实体操作。 - 规划模块(Planning)
负责将复杂顶层目标拆解为可执行的子任务,制定执行顺序与依赖关系,在执行过程中根据反馈动态调整计划,避免任务跑偏。 - 观察反馈模块(Observation)
负责接收工具执行结果、环境状态反馈,将结构化/非结构化的外部输出转化为LLM可理解的文本格式,注入上下文驱动下一轮决策,是连接“行动”与“思考”的桥梁。 - 反思校验模块(Reflection)
负责对执行结果做自检与复盘,判断是否达成目标、是否存在错误/幻觉、是否符合规范,决定是输出最终结果、重试修正还是补充执行,是保障输出质量的关键。
三、ReAct 框架的工作原理与完整循环
1. 工作原理
ReAct = Reasoning(推理)+ Acting(行动),核心思想是将推理过程与行动执行深度交织,让模型每一步行动都有明确的推理支撑,每一步推理都有真实的执行结果验证,通过“边想边做”的模式减少幻觉、提升任务成功率。
它打破了“先全量推理、再批量执行”的模式,用小步迭代的方式让推理始终贴合真实环境反馈。
2. 完整的「思考-行动-观察」循环流程
一次完整的任务会执行多轮循环,直到目标达成:
- 目标输入:接收用户的任务目标与初始上下文,作为循环的起点。
- 思考(Thought):LLM基于当前所有上下文,推理当前任务进度、存在的问题、下一步需要做什么,生成清晰的行动理由与方案,输出“我需要调用XX工具来验证XX信息”的逻辑结论。
- 行动(Action):基于思考结论,选择匹配的工具,生成符合格式要求的工具调用参数,触发工具执行具体操作(如搜索、查库、运行代码)。
- 观察(Observation):获取工具的执行结果,将结果结构化处理后注入上下文,作为新的已知信息。
- 循环判断:回到思考环节,LLM结合观察结果继续推理——若判断目标已达成,则终止循环并输出最终答案;若未达成,则继续下一轮「思考-行动-观察」迭代。
四、Workflow、Agent、Tools 的概念区别与适用场景
1. 核心概念区别
| 维度 | Tools(工具) | Workflow(工作流) | Agent(智能体) |
|---|---|---|---|
| 本质 | 原子化能力单元 | 预定义的固定执行流程 | 自主决策的执行主体 |
| 决策能力 | 无,被动接收参数输出结果 | 弱,仅按预设规则做分支判断 | 强,自主规划、动态调整 |
| 确定性 | 完全确定,输入输出一一对应 | 高度确定,步骤与逻辑提前固化 | 不确定,路径随环境动态变化 |
| 颗粒度 | 最小能力单元,单一功能 | 多个工具/步骤的有序组合 | 目标导向的完整决策执行体 |
| 核心价值 | 补充模型的能力边界 | 提升标准化任务的执行效率 | 解决开放、复杂、未知的问题 |
2. 适用场景
- Tools:适用于单一明确的原子能力补充场景,比如测试平台中调用接口查询数据、执行测试脚本、生成验证码、读取日志文件,作为底层能力底座。
- Workflow:适用于流程固定、规则明确、重复执行的标准化任务,比如常规回归测试流水线、固定格式的测试报告生成、环境标准化部署,追求执行效率与结果可预测性。
- Agent:适用于目标开放、路径不明确、需要动态决策的复杂场景,比如探索性测试、线上故障根因排查、复杂需求的测试用例设计、多系统联动的问题定位,需要灵活应对不确定性。
五、三种推理范式的核心区别与项目选型
1. 核心区别
| 范式 | 核心逻辑 | 执行特点 | 优势 | 短板 |
|---|---|---|---|---|
| ReAct | 思考与行动交织,一步一想一步一做 | 小步迭代、实时反馈、边探索边执行 | 灵活度高,适配未知场景,能快速修正方向 | 长任务易跑偏,Token消耗高,缺乏全局观 |
| Plan-and-Execute | 先全局规划拆解任务,再按计划批量执行 | 规划与执行分离,先定完整路径再落地 | 全局可控,长任务不易跑偏,结构清晰效率高 | 应对突发异常的灵活度弱,规划错误会影响全链路 |
| Reflection | 生成/执行后增加自我复盘修正环节 | 生成-反思-修正的多轮迭代,重质量校验 | 输出准确率高,能自我纠错,适配高要求场景 | 执行链路长,耗时久,资源消耗大 |
补充说明:Reflection不是独立的端到端执行范式,通常叠加在ReAct或Plan-and-Execute之上,作为质量增强层使用。
2. 实际项目选型建议
- 选ReAct:任务路径不明确、需要边探索边验证的场景,比如线上未知故障排查、探索性测试、陌生领域的信息调研,优先保证灵活度。
- 选Plan-and-Execute:目标清晰、复杂度高、可拆解为标准化子步骤的场景,比如全链路自动化测试执行、多模块测试报告整合、批量测试任务调度,优先保证全局可控与执行效率。
- 选Reflection:对准确性、合规性、严谨性要求极高的场景,比如测试用例评审、生产环境变更校验、缺陷定级与报告生成、合规性检测,愿意牺牲速度换取结果质量。
工业界落地通常采用混合模式:用Plan-and-Execute做整体框架,子任务用ReAct灵活执行,关键输出节点加Reflection做质量校验。
六、Multi-Agent 多智能体系统与常见协作模式
1. 定义
Multi-Agent(多智能体系统)是由多个具备独立决策能力的单Agent组成的协作体系,每个Agent有明确的角色定位、专属能力和职责边界,通过约定的通信机制交互、协作、博弈,共同完成单一Agent无法高效、高质量承接的复杂任务。
其本质是通过“专业化分工+协同配合”突破单Agent的能力、效率、上下文上限,模拟人类团队的工作模式。
2. 常见协作模式
- 编排者-执行者模式(Orchestrator-Workers)
层级式主从结构,一个顶层编排Agent负责全局规划、任务拆解、调度分配、结果整合,多个专业Worker Agent各司其职执行子任务,是工业界最主流的模式,可控性强、适配复杂任务。 - 流水线接力模式
多个Agent按固定业务流程顺序衔接,前一个Agent的输出是后一个的输入,依次接力完成全流程;比如需求分析Agent→测试设计Agent→脚本生成Agent→报告输出Agent,适合标准化长流程任务。 - 圆桌讨论模式(平等协作)
多个平权Agent围绕同一任务,从各自专业视角发表意见、互相补充、辩论修正,最终达成共识输出结果;比如测试方案评审、技术方案选型,适合需要多视角论证的决策类场景。 - 竞争校验模式
多个同定位Agent独立完成同一任务,再由裁判Agent对比多份结果、交叉校验、选出最优解;比如双盲测试用例生成、缺陷复核,通过冗余提升结果可靠性。 - 事件驱动模式
Agent之间通过消息总线通信,某Agent发布状态/结果后,订阅该事件的Agent自动触发自身任务,适合分布式、异步、高并发的系统级协作场景。
七、编排者-执行者模式的工作流程与解决的痛点
1. 完整工作流程
- 目标接收:Orchestrator(编排者)接收用户顶层目标,理解任务边界、交付标准与约束条件。
- 全局拆解规划:编排者将复杂目标拆解为多个低耦合的子任务,明确子任务的依赖关系、执行顺序、交付要求。
- 任务分配调度:根据每个Worker Agent的角色、能力边界,将子任务分配给对应执行者,支持无依赖任务并行下发。
- 子任务执行:Worker Agent接收任务后独立完成执行(可调用自身工具、子流程),完成后将结果回传给编排者。
- 校验与返工:编排者校验子任务结果是否达标,不合格则退回Worker返工、补充或转派其他Agent。
- 整合输出:所有子任务完成后,编排者整合、提炼、汇总所有结果,生成最终交付物返回给用户。
2. 解决的单Agent核心痛点
- 专业能力不足:单Agent是“全能但不精”,跨领域任务容易出错;多Worker可做垂直专业化分工,每个Agent深耕单一领域,大幅提升专业准确率。
- 上下文窗口瓶颈:单Agent处理长任务时,上下文易溢出、关键信息丢失;拆分后每个Worker仅处理自身子任务,信息聚焦、上下文压力小。
- 执行效率低下:单Agent只能串行执行步骤;该模式下无依赖子任务可并行执行,显著缩短整体任务耗时。
- 容错能力薄弱:单Agent某一步出错易引发连锁崩盘;该模式下子任务失败仅影响单个模块,编排者可重试、转派、降级,容错与鲁棒性大幅提升。
- 任务复杂度上限低:单Agent面对超大型、多领域交叉任务易规划混乱、逻辑跑偏;分层架构权责清晰、全局可控,可承接复杂度更高的大型任务。
八、MCP 协议与 Function Call 的本质区别与测试方案
1. 本质区别
- Function Call(函数调用):是大模型原生的输出格式能力,定义了模型如何按照预定义Schema生成结构化的函数调用参数,本质是“模型生成调用指令、由宿主程序执行”的单轮调用机制。它强绑定具体模型,仅解决“参数格式怎么定义、怎么生成”的问题,是单一的调用语法规范。
- MCP(Model Context Protocol,模型上下文协议):是行业级开放通信协议标准,定义了大模型与外部工具、数据源、系统之间的完整交互规范,覆盖工具发现、鉴权、调用、上下文同步、状态管理、事件推送全链路。它与模型无关,一套适配可跨平台、跨模型通用,解决的是“异构系统之间怎么互联互通”的问题。
核心差异总结:Function Call是“模型的能力特性”,MCP是“跨系统的协议标准”;前者是单点调用格式,后者是完整交互体系。
2. 在测试平台中的测试方案
(1)Function Call 测试要点
- 格式合规性测试:校验模型输出的调用是否符合JSON Schema规范,包括字段名、数据类型、必填项、枚举值、参数边界、嵌套结构是否正确,无多余字段、无语法错误。
- 意图匹配准确率测试:构造不同场景的测试用例,验证模型选工具的准确率(是否选错、漏选、多选),以及参数提取的准确率(从自然语言中提取的参数值是否正确)。
- 边界异常测试:覆盖模糊意图、多工具组合、参数缺失、参数非法、超长参数、冲突指令等场景,验证模型是否能合理补全参数、拒绝非法调用、引导用户补充信息。
- 多轮一致性测试:验证多轮对话中,历史调用结果是否能正确注入上下文,后续调用的参数是否能继承历史信息,无上下文丢失、参数矛盾。
- 结果响应正确性测试:注入工具返回结果后,验证模型是否能基于真实结果输出结论,不忽略结果、不产生幻觉、不与工具结果冲突。
(2)MCP 协议测试要点
- 协议兼容性测试:验证被测系统是否符合MCP官方规范,覆盖工具发现、调用请求、响应格式、错误码、鉴权流程、流式传输等核心环节,验证跨客户端、跨服务端的互通性。
- 全链路交互测试:覆盖连接建立、鉴权、工具注册/发现、调用执行、状态同步、事件推送、断线重连、连接断开全流程,校验时序正确性、数据一致性、状态准确性。
- 权限与安全测试:验证角色权限控制、越权调用拦截、敏感参数加密、输入注入防护、调用审计日志等安全能力,确保协议层面的安全合规。
- 并发与稳定性测试:模拟多Agent并发调用、高频请求、长连接保活场景,测试协议层的吞吐量、延迟、消息有序性、无丢失无乱序,验证超时、重试、降级机制。
- 异常容错测试:模拟服务端报错、工具不可用、网络中断、格式错误、超时无响应等异常,验证协议层的错误码返回、异常处理、重试策略、容错降级是否符合预期。
- 上下文同步测试:验证跨工具、跨Agent的上下文共享能力,校验上下文数据的一致性、时效性、增量更新正确性,确保多端上下文无偏差。