【AI面试临阵磨枪-89】Skill 幻觉、参数缺失、格式错误、业务异常如何处理?
一、面试题目
AI Agent Skill 在执行中会出现:幻觉、参数缺失、格式错误、业务异常,请分别说明原因、处理策略、工程落地方案。
二、知识储备
1. 整体核心思想
Skill 是业务执行单元,必须稳定、可控、可预期、不可乱执行。
所有异常处理遵循四步:
前置拦截 → 异常捕获 → 自动修复 → 降级兜底
禁止模型“猜”、禁止“强行执行”、禁止“静默失败”。
2. 四大异常场景处理方案(面试必背)
(1)Skill 幻觉(最核心)
现象
- 模型编造不存在的 Skill
- 编造不存在的参数、订单号、金额
- 跳过业务规则、乱调用工具、虚构结果
原因
- 意图理解错误
- 上下文太长干扰
- 工具描述不清晰
- 模型自由发挥
处理方案(四层防御)
- 白名单强制约束
只能调用注册在列表里的 Skill,不在白名单直接拒绝 - Skill 描述极简、精准
不提供多余信息,减少模型误解 - 输出格式强校验
不符合 JSON Schema 直接判定幻觉,拒绝执行 - 业务规则二次校验
执行前校验订单真实性、用户身份、金额合法性
处理流程
幻觉 → 拦截 → 反问用户澄清 → 不执行 → 日志上报
(2)参数缺失
现象
- 缺少 userId、orderId、位置信息
- 调用 Skill 关键参数为空
原因
- 用户表达不完整
- 模型未抽取到信息
- 上下文丢失
处理方案
- 参数非空校验:执行前自动检查
- 反问式补全:引导用户补充缺失信息
例:“请告诉我你的订单号” - 上下文回填:从历史对话自动提取
- 拒绝执行:关键参数缺失不往下走
原则
不猜参数,缺啥问啥
(3)格式错误
现象
- 模型返回不是合法 JSON
- 字段类型错误(字符串/数字颠倒)
- 缺少必填字段、结构错乱
原因
- Prompt 约束不足
- 模型输出不稳定
- 上下文干扰
处理方案
- JSON Schema 强校验
严格校验结构、字段名、类型 - 格式修复器
自动补全、修正引号、逗号、括号 - 重试格式化
失败 1-2 次后重新让模型输出格式 - 兜底降级
多次失败转人工/静态回复
原则
格式不合法 → 不解析 → 不执行
(4)业务异常
现象
- 订单已完成、不能退款
- 库存不足、超出时效
- 权限不足、越权操作
- 接口超时、调用失败
原因
- 业务规则不满足
- 下游服务故障
- 数据状态非法
处理方案
- 异常分类处理
- 规则异常:告知用户原因
- 系统异常:熔断+重试
- 权限异常:拒绝+提示
- 自动重试(仅网络/5xx)
- 熔断降级
下游故障直接返回兜底 - 清晰话术
不抛技术异常,给用户友好提示
3. 统一异常处理架构(企业级标准)
入口 → 参数校验 → 权限校验 → 格式校验 → 业务校验 → 执行 ↓ 任意一步失败 异常捕获 → 分类处理 → 修复/反问/重试 → 兜底返回 → 日志上报4. 代码实现(Skill 统一异常处理器)
class SkillExceptionHandler: def handle(self, error): # 幻觉 if "invalid_skill" in str(error): return "我没理解你的需求,请再说一遍" # 参数缺失 if "missing_param" in str(error): return "请补充订单号" # 格式错误 if "format_error" in str(error): return "系统格式异常,正在重试" # 业务异常 if "business_error" in str(error): return "订单已完成,无法退款" # 系统异常 return "服务繁忙,请稍后再试"四、破局之道(面试满分总结)
Skill 异常处理的核心是:
幻觉靠白名单拦截,参数缺失靠反问补全,格式错误靠Schema强校验,业务异常靠规则判断。
所有异常必须可捕获、可分类、可修复、可降级,确保 Skill 执行稳定、安全、不资损、不幻觉,这是企业级 Agent 能否上线的关键。
30 秒口述精简版
Skill 出现幻觉用白名单+格式校验拦截;
参数缺失通过非空校验+反问用户补全;
格式错误用JSON Schema 强校验+自动修复;
业务异常根据规则分类返回友好提示。
整体遵循前置拦截、异常捕获、自动修复、降级兜底,保证执行稳定可控。
