日期:2026-09-08
- 企业与岗位:百度|测试开发
- 适用层级:中级—高级
内容说明
本篇为社区对用户分享面经的整理汇编,旨在帮助求职者了解面试考察方向。问题部分力求忠实还原原帖问答脉络;「参考答案 / 复盘思路」为整理方结合工程实践原创补充,仅供交流参考,不代表官方标准答案。
原始素材来自公开面经汇编,具体面试细节以末尾原帖为准。
一、原面经涉及的面试问题(10项)
1. Agent测试集应该怎样构建?
参考答案 / 复盘思路: 先把任务定义成可检查的样本,而不是随意收集几百条Prompt。样本至少包含用户目标、上下文/权限、允许工具、预期过程约束和最终验收条件。按正常路径、边界条件、工具故障、长任务、多轮恢复、越权请求分类,并从线上Trace与真实Bad Case中抽样补充。对每条样本记录来源、难度、风险和版本;建立冻结回归集与新增探索集,避免每次改评测集导致新旧成绩无法比较。工具选择是否正确、是否完成任务与是否遵守限制应分别打分。
2. 如何评测Agent最终输出?
参考答案 / 复盘思路: 评测Agent不能只看最终答案是否“像对的”。需要定义任务完成率、工具调用正确率、参数有效率、错误恢复能力、执行成本和延迟,以及有副作用操作的合规性。确定性任务优先用环境状态验证,如订单是否真的创建、文件是否被正确修改;开放任务可辅以人工评分和校准后的LLM-as-Judge。对失败样本保留Trace,区分规划、检索、调用、环境和总结环节的问题。每次发布拿同一基准集比较,避免只挑成功案例展示效果。
3. Agent工作流中的并行节点发生冲突怎么办?
参考答案 / 复盘思路: 先区分冲突类型:并行节点写同一个State字段、重复消费工具响应、竞态修改外部资源,还是汇总顺序不一致。只读信息可以并发检索,但有副作用的步骤应设计串行化、锁、幂等键或版本检查。状态合并需明确规则,例如追加列表、按时间戳选择、或只有指定节点有写权限,不能依赖执行完成先后碰运气。测试可通过随机延迟、不同完成顺序和重复运行来暴露竞争条件,检查最终状态、工具副作用及可恢复性。
4. 如何构建Trace并通过它定位Agent故障?
参考答案 / 复盘思路: 给一次用户请求分配trace_id,每一步保存span:节点名称、输入摘要、模型/Prompt版本、工具名与参数、开始结束时间、错误、重试次数和输出状态。出现错误结果时沿链路找“第一个偏离预期”的节点:是计划选错工具、检索证据错误、工具返回异常,还是State覆盖导致后续推理出错。Trace应控制隐私,避免原样写入密钥和敏感业务数据。最好支持根据轨迹重放关键确定性步骤,并能把失败样本自动沉淀到回归集。
5. Checkpointer有什么作用,原理是什么?
参考答案 / 复盘思路: Checkpointer的目标是保存工作流在某个节点后的可恢复状态,以便中断后继续执行、人工审批和错误恢复。它通常持久化线程/任务标识、节点状态、必要上下文及版本信息,但不代表所有外部副作用自动回滚。面试中要特别指出“恢复执行”和“重复执行”的差别:如果支付或发消息工具已经成功,恢复时必须避免再次执行相同操作。测试需覆盖断电、超时、版本升级后读取旧Checkpoint、状态损坏和并发恢复,并验证幂等性。
6. 项目中的State如何设计?
参考答案 / 复盘思路: State应围绕任务生命周期设计:用户目标、检索证据、当前计划、工具结果、错误与重试计数、审批状态等分开建模。要为每个字段明确所有者、更新时间和持久化边界,避免无限堆积聊天历史。并发工作流还需定义状态合并规则及序列化方式。对敏感数据实行最小化存储、脱敏和生命周期管理。测试中重点检查状态在跳转、恢复、回滚、人工介入和重试时是否一致,尤其是“上一步完成但下一步未保存”的边界。
7. 如何使用Codex进行自动化测试?
参考答案 / 复盘思路: 用Codex辅助自动化测试,适合从已有接口契约、需求和代码变更生成候选测试,再由工程师审查断言是否真正覆盖风险。推荐流程是先给工具最小权限与隔离环境,要求其输出测试目标、前置条件和运行命令;随后执行测试并检查失败日志、覆盖范围与生成代码的可维护性。不能把“AI写了十个测试”当成质量提升:更重要的是这些测试能否识别已知Bug,是否依赖不稳定环境,以及是否误改生产配置。对生成脚本还应做安全扫描与人工代码Review。
8. Skill的原理是什么?举一个应用场景。
参考答案 / 复盘思路: Skill可理解为针对某类任务封装的可复用操作说明、工具使用约定、模板与校验步骤,让Agent在触发特定工作时遵循一致流程。比如“API回归Skill”可以规定先读取OpenAPI、生成边界用例、执行pytest、解析失败报告,最后输出风险摘要。考点不是背定义,而是说明Skill与具体工具/MCP接口的边界:Skill描述工作流程与操作规范,工具负责执行能力。验收时应测试触发条件、输入缺失、错误回退、版本兼容以及是否按约定生成可追溯证据。
9. MCP服务有什么作用?
参考答案 / 复盘思路: MCP的价值在于用相对统一的接口方式暴露工具、资源和提示能力,降低Agent接入外部系统的适配成本;它本身并不保证模型做出的调用决策正确。面试中可举测试平台例子:让Agent通过MCP查询用例、获取缺陷、触发回归执行。测试时需要验证能力发现、参数Schema、权限范围、错误码、超时以及不同客户端兼容性。尤其要防止提示注入诱导高权限工具调用;对删除、提交等有副作用的操作应有授权和审计。
10. SQL:查找连续出现至少三次的数字。
参考答案 / 复盘思路: 这类SQL题可以使用窗口函数LAG比较当前行与前两行的数字是否相同;要明确用哪个字段排序,例如日志自增id,否则“连续”没有定义。示例思路是先按id排序计算前一行和前两行的num,再筛选三者相等并去重。还要问清同一数字出现四次是否只返回一次、是否存在id缺口、null如何处理。不要直接把三个相邻id相差1当作“连续三条记录”,因为被删除的记录会使id不连续。
延伸思考(社区补充)
一个Agent工作流在首次执行时失败,自动重试后却成功完成任务。测试团队如何判断首次失败是否仍需修复,并量化这一类问题的风险?
思考方向: 可结合Trace归因、失败率与重试恢复率、失败是否造成外部副作用,以及关键业务场景的影响来制定修复优先级。
