Hogwarts测试开发
08-15·北京测吧员工
字节面试官拿着架构图问我(三)
中级回答(过,白菜价):“我会分情况处理。如果是网络超时,做指数退避重试,最多三次;如果是模型返回格式异常,在消费层加schema校验,校验失败走规则兜底;如果是内容安全问题,过一遍安全网关,触发安全策略的直接返回预设的安全话术。”这个回答明显强很多。他至少识别了三类失败模式,而且每一类都有对应的处置动作。面试官的判断是:这个候选人有工程经验,知道怎么分类处理异常。但他还差一层。高级回答(SP):“首先要明确一个前提,Agent在这个链路里是‘概率性组件’,不是确定性组件。它的失败不能被当成异常,应该被当成‘常态’来设计。我分四层做兜底:第一层,调用层。标准做法,熔断器加超时控制,重试用指数退避,加jitter防惊群。关键指标是熔断比例和p99延迟。第二层,推理层。Agent内部有工具调用链,可能某一步工具失败导致整条链断掉。这层的兜底是在Agent编排层面加一个全局异常捕获,工具调用失败降级为纯大模型回复,上下文溢出做滑动窗口截断。这层的保障手段是给Agent内部每一个环节打trace,失败能定位到是哪个工具出的事。第三层,模型层。这层是AI系统特有的。大模型输出有三类风险:幻觉、格式异常、不安全内容。兜底方式是三层防线——输出格式校验(JSON Schema、正则)、事实性校验(用另一个轻量模型或者规则引擎对关键字段做交叉验证)、安全网关(审核模型打分,阈值拦截)。注意这里不能只靠安全网关,幻觉和格式异常必须在前两道防线就干掉。第四层,消费层。下游解析要做防御式编程,对Agent返回的每个字段做存在性和类型检查,缺失字段有默认值,类型异常记录告警但不阻塞主流程。解析失败触发整体降级,走预设的静态决策树。最后,还有一条最重要的:兜底策略本身也需要测试。每一种降级路径,都需要有对应的混沌工程用例去验证。模拟Agent超时、模拟模型返回乱码、模拟安全策略触发,确保每一条兜底链路都是真实跑通过的,不是写在文档里的空话。”面试官听到这个回答,基本上不会追问了。他能从头到尾把一条AI调用链路的风险面、分层策略、验证手段全讲清楚,这已经不是“会写用例”的段位,而是“能设计质量体系”的段位。普通回答是“出了问题怎么办”,高级回答是“我假设它一定会出问题,所以提前设计好了每一层的应对方案”。
发布于 江苏
分享
评论
1
未登录
友善发言
image-upload
评论
加载中