Agent 和 Chatbot 测试重点有何不同?
👔 Raina面试官: Agent 和普通 Chatbot,测试侧重点有什么不一样?
🙋 候选人:
- Chatbot 测回答质量;Agent 还要测规划、工具、多步执行和任务完成度。
- Chatbot case:问答对不对、语气好不好。Agent case:工具选对了吗、参数对吗、步骤顺序合理吗、中间失败能恢复吗、最终任务完成了吗。
- Agent 必须看 trace,不能只看最终自然语言——说完成了但 tool 没调就是假阳性。
👔 Raina面试官: 纯 Chatbot 产品需要测工具吗?
🙋 候选人:
- 不需要,按产品形态裁剪测试金字塔。没有 tool 就别测 routing,把资源投到对话质量和安全。
- 但一旦加了 even 一个 function,就要按 Agent 标准测完整链路。
怎么测 Agent 任务规划是否合理?
👔 Raina面试官: Agent 收到复杂任务会先规划。Planning 是否合理你怎么测?
🙋 候选人:
- 测计划完整性、步骤顺序、可执行性三个维度。
- 完整性:该涉及的子任务都列了吗。顺序:有没有明显违反依赖(先查库存再下单)。可执行性:每步是否对应可用 tool,没有幻想工具。
- 用 scripted task + expected plan skeleton 比对,或用 judge 评 plan quality。ReAct 场景看 thought 是否和 action 一致。
👔 Raina面试官: 计划合理但执行失败了,算 planning 问题吗?
🙋 候选人:
- 不算,planning 和执行分开评。计划对、工具调用失败是 execution/engineering 问题。
- 但也可能是 plan 太理想化没考虑失败分支——这类要测计划是否包含 fallback 步骤。
工具选择错误、漏调、重复调怎么测?
👔 Raina面试官: 工具选错、漏调、重复调——这三类问题分别怎么测?
🙋 候选人:
- 每类独立 case 集 + trace 断言。
- 选错:语义相近 tool 并存时(search_order vs search_logistics),给明确意图,断言调了正确的。漏调:必须调 tool 才能答的问题(查实时库存),断言 tool 被调用且结果进入回答。重复调:同一 tool 相同参数循环 N 次,期望去重或终止策略触发。
- 用 mock tool 记录 call log,自动化比对 expected vs actual sequence。
👔 Raina面试官: 20 个 tool 时 case 怎么设计才不爆炸?
🙋 候选人:
- 用混淆对(confusion pair)矩阵——只测最容易选错的 tool 组合,不是 20×20 全组合。
- 线上 bad case 反哺 confusion pair,优先级高于凭空造 case。
ReAct 等 Agent 架构对测试设计有什么影响?
👔 Raina面试官: ReAct、Plan-and-Execute 这些 Agent 架构不一样,测试设计会受什么影响?
🙋 候选人:
- 架构决定观测点和 failure mode,测试策略要跟着变。
- ReAct:逐步 thought-action-observation,测每步一致性、是否死循环、observation 是否被正确使用。Plan-and-Execute:先测 plan 质量,再测执行偏差、计划变更多不多。Workflow 型:测状态机跳转、分支条件、超时。
- 不能一套 case 打所有架构——ReAct 要 trace 逐步验,Plan-and-Execute 可以 plan/execute 分开评。
👔 Raina面试官: 架构迁移时测试怎么迁?
🙋 候选人:
- 保留**任务级 Eval(最终是否完成)**做对比,同时新增架构特有指标——ReAct 加步数/循环检测,Plan-and-Execute 加 plan adherence。
- 迁移期双跑新旧架构,看 win rate 和 failure 分布,别只比最终答案。
Agent 多步执行失败怎么验证恢复和重试?
👔 Raina面试官: Agent 执行到第三步挂了。恢复和重试逻辑你怎么验证?
🙋 候选人:
- 用fault injection:mock tool 在第 N 步返回 timeout/500/非法数据,看 Agent 行为。
- 期望路径:有限次重试(带退避)→ 换备用 tool → 降级回答 → 明确报错。不应:无限循环、silent fail、用幻觉填补 tool 失败。
- 还要测 checkpoint:中断后能否从第 3 步继续而不是从第 1 步重跑,state 是否 corrupt。
👔 Raina面试官: 重试测几次够?
🙋 候选人:
- 至少测0 失败、1 次失败恢复、连续失败触发降级三档。
- 重试上限要和 spec 一致,多一次就是 bug(浪费 token 或卡死)。
Skill 触发条件怎么测?误触发和漏触发?
👔 Raina面试官: Skill 的 When to use 写不好就误触发或漏触发。你怎么测?
🙋 候选人:
- 建正例、负例、近邻负例三类 case 集。
- 正例:明确该触发 Skill 的用户说法,期望 trigger。负例:完全无关场景,期望不触发。近邻负例:和 Skill 语义相近但不该触发——比如review 代码vs解释这段代码。
- 误触发 = 负例被触发;漏触发 = 正例没触发。分别统计 precision 和 recall,近邻负例是 hardest 也是最有价值的。
👔 Raina面试官: description 改一个字指标大变,正常吗?
🙋 候选人:
- 正常,说明触发层对 wording 敏感——这正是测试要暴露的风险。
- 应用 Eval 驱动 description 迭代,而不是改完 description 不测就上线。
MCP Server 和 Client 集成测试测哪些点?
👔 Raina面试官: MCP Server 和 Client 集成,你会测哪些点?
🙋 候选人:
- 按 MCP 能力分测:tools、resources、prompts 三类 + 连接生命周期。
- 连接:握手、鉴权、断线重连、多 Client 并发。Tools:schema 合规、调用返回、错误码。Resources:URI 读取、订阅更新。Prompts:模板渲染、参数注入。
- 还要测版本兼容:Server 升级后旧 Client 是否 graceful degrade,而不是 silent break。
👔 Raina面试官: 和普通 Function Calling 集成测试有何不同?
🙋 候选人:
- MCP 多了resources 和 prompts 通道,以及跨进程/跨服务协议层。
- 要测 protocol 语义而不只是调函数返回对——比如 resource list 变更通知、tool 动态注册。
Agent 权限边界怎么测?
👔 Raina面试官: 用户说我授权你可以删库,Agent 能删吗?权限边界你怎么测?
🙋 候选人:
- 不能。口头授权不能替代系统级权限控制,测试必须覆盖这类 social engineering case。
- 测:无权限用户请求高危操作、伪造授权话术、prompt 注入式授权、越权调用 admin tool。期望:拒绝 + 审计日志,不能执行。
- 权限来自 identity/role/ACL,不是对话内容。高危操作还要测 UI 二次确认、独立 auth token,对话无法 bypass。
👔 Raina面试官: 测试环境怎么模拟权限?
🙋 候选人:
- 用多账号 fixture:普通用户、管理员、过期 token。Mock IAM 返回明确 allow/deny。
- 每个 permission level 跑同一套高危 case,断言行为差异符合 spec。
多 Agent 协作测试策略是什么?
👔 Raina面试官: Orchestrator + Worker 多 Agent 架构,测试策略怎么定?
🙋 候选人:
- 分层测:单 Worker 能力 → 路由分配 → 协作编排 → 端到端任务。
- 单 Worker:各自 Skill/Tool 正常。路由:Orchestrator 是否把子任务分给正确 Worker。协作:handoff 上下文是否完整、有没有重复劳动或遗漏。E2E:复杂任务最终是否完成。
- trace 里要看 agent id、message passing、每个 Worker 的输入输出,不能只看 Orchestrator 最终回复。
👔 Raina面试官: Worker 之间结果冲突怎么测?
🙋 候选人:
- 设计故意冲突 case——两个 Worker 返回矛盾信息,看 Orchestrator 是否 reconcile 或 escalate。
- 这也是多 Agent 特有的 failure mode,单 Agent 测不到。
Agent Trace/Log 对测试有什么帮助?
👔 Raina面试官: Agent 的 Trace 和 Log 对测试工作有什么实际帮助?
🙋 候选人:
- Trace 是 Agent 测试的X 光片——没有 trace,很多 bug 只能看到最终答错,无法定位层。
- 测试用 trace 断言:调了哪些 tool、参数是什么、每步 latency、哪步失败。Log 用于审计和安全 case 验证——高危操作是否留下不可篡改记录。
- 我会把 trace 字段规范纳入测试契约:关键 span 必须存在,否则视为 observability bug。
👔 Raina面试官: 测试环境 trace 和生产不一致怎么办?
🙋 候选人:
- staging 必须开启和生产同级别的 trace sampling,至少 core case 100% 采集。
- trace schema 变更要走 contract test,防止生产 trace 工具突然看不到关键字段。
怎么评估 Agent Skill 好不好?
👔 Raina面试官: Skill 上线了,你怎么判断它到底好不好?指标怎么定?
🙋 候选人:
- 三维看:效果、效率、可靠性。
- 效果:任务成功率、工具选择准确率、答案事实准确率。效率:端到端延迟、平均 tool 调用次数、token 消耗。可靠性:错误率、超时率、人工介入率。
- 上线前用 Eval 集量化;上线后 dashboard 盯成功率下跌告警。每次改 Skill 跑回归。
👔 Raina面试官: 成功率 95% 但用户还是说不好用,可能什么原因?
🙋 候选人:
- 常见是延迟高、过程不透明、失败解释差、过度澄清。
- 技术指标和用户体感一起看:满意度、会话轮次、放弃率。95% 成功率如果慢 30 秒,体验照样差。
Human-in-the-loop 场景怎么测?
👔 Raina面试官: 高危操作要人工确认。Human-in-the-loop 环节测试怎么覆盖?
🙋 候选人:
- 测完整状态机:发起 → 等待确认 → 批准/拒绝 → 执行/取消。
- 发起:Agent 是否正确挂起、展示待确认信息。批准:只有合法确认渠道(UI 按钮+auth)才执行,对话里说确认不够。拒绝/超时:任务正确取消、状态回滚、用户收到明确反馈。
- 还要测并发:两个待确认请求互不干扰;确认链接不可 replay。
👔 Raina面试官: 自动化怎么测人工环节?
🙋 候选人:
- 用test double 模拟 human approval API,或 Playwright 走 UI 确认流。
- E2E 至少保留几条真实 UI 确认路径,API mock 测逻辑,UI 测集成。
