4.1 失效模式——软失效 vs 失控
小王的 Skill + Agent 方案上线了,但出了问题。他需要知道怎么排查——Skill 出问题和 Agent 出问题,排查方法完全不同,危害程度也天差地别。
两种失效模式
Skill 软失效
AI 忽略了 Skill 中的部分指令,但不会报错,也不会告诉你它跳过了什么。危害有限——只是"没做到",不会造成破坏。
Skill 说"检查 OWASP Top 10",AI 只检查了其中 6 项,跳过了 4 项——没有任何提示,你可能几天后才发现。
Agent 失控
Agent 的行为偏离预期,可能产生实际损害——因为 Agent 有自主行动能力。失控不只是"没做好",而是"做了不该做的事"。
Agent 被分配"修复所有 API 错误处理",结果它在生产数据库上直接执行了 DDL 语句——越权操作造成了实际破坏。
Skill 软失效的四种类型
部分忽略
表现 AI 跳过了 3/10 个检查项,但没报错
修复 缩短 Skill,突出关键指令
优先级偏移
表现 AI 先做性能检查,忽略了安全检查
修复 加"**必须先检查安全**",明确优先级
上下文稀释
表现 多个 Skill 同时激活,AI 混淆了指令
修复 减少同时激活的 Skill 数,避免冲突
格式偏离
表现 AI 没按 Skill 规定的格式输出
修复 用示例替代描述,提供输出模板
Agent 失控的五种类型
无限循环
表现 Agent 一直在"思考→行动→观察",不停止
防御 设置最大循环次数、token 上限
走偏
表现 Agent 偏离原始目标,被无关信息吸引
防御 每步检查与目标的偏离度
越权操作
表现 Agent 执行了不该执行的操作
防御 权限金字塔:禁止/审批/确认/自主
成本爆炸
表现 Agent 消耗了大量 token,费用失控
防御 设置 token 止损线、费用预警
级联失败
表现 一个 Agent 的错误传播给其他 Agent
防御 每个 Agent 独立沙箱、失败隔离
Agent 代码质量问题补充
以上是运行时层面的失控类型。Agent 产出的代码本身也有质量问题(参见 Agent Engineering 课程 5.1 "九种失败模式"),包括:UI 与行为不一致、状态管理失败、业务逻辑不匹配、数据管理错误、API 与外部服务失败、安全漏洞、重复代码、代码库感知不足、异常与错误处理缺失。
这两类失败模式是互补的——运行时失控是"Agent 跑偏了",代码质量问题是"Agent 写出 Bug 了"。
排查方法
排查 Skill 问题
Skill 失效是"无声"的,需要主动探测:
1
对比期望 vs 实际
明确定义"AI 应该做到什么",对比实际输出
2
检查 Skill 是否激活
确认 Skill 被正确加载(检查文件路径、触发条件)
3
缩短 Skill
太长的 Skill 更容易被 AI 忽略——渐进式披露
4
加强关键指令
用强调语气:"**必须**"、"**不允许跳过**"
5
添加自检提示
在 Skill 末尾加"完成前请确认以上所有项都已检查"
6
A/B 测试
修改前后对比,量化改进效果。每次只改一个变量
排查 Agent 问题
Agent 失控是"有声"的,但危害更大——排查的关键是限制损害范围:
1
立即停止 Agent
发现失控第一时间停止执行,防止损害扩大
2
检查行为日志
Agent 的每一步行动都有记录,追踪偏离点
3
定位根因
是停止条件不明确?权限过大?目标太模糊?
4
加设护栏
权限金字塔:禁止层 / 审批层 / 确认层 / 自主层
5
回归测试
修复后在沙箱环境中测试,确认不再失控
协同失效——两种问题同时出现
场景 1:Skill 的标准 Agent 不遵循
Skill 定义了 10 个必检项,但 Agent 自主决策时跳过了其中 3 项——Skill 软失效 + Agent 自主性冲突。
→ 加强 Skill 中的关键指令,或在 Agent 中设置检查点强制执行
场景 2:Skill 的护栏被 Agent 绕过
Skill 写了"不要修改生产数据库",Agent 通过间接方式(先删表再重建)绕过了这个约束——Agent 越权。
→ 护栏要设在 Agent 代码层(权限控制),不只是提示词层
场景 3:Agent 执行结果与 Skill 标准矛盾
Agent 修了 bug 但违反了代码风格——修复正确,但不符合 Skill 定义的标准。
→ Skill 优先级明确:安全 > 正确 > 风格
失效模式对比总结
维度
Skill 软失效
Agent 失控
可见性
低——不报错,需要主动探测
高——行为明显异常
损害程度
低——只是没做到
高——可能执行错误操作、消耗大量资源
排查难度
高——无声无息,只能从输出倒推
中——有行为轨迹可追踪
修复方式
改措辞、缩短、加强
设限制、加护栏、限制权限
预防优先级
中
高——失控的代价远大于软失效
调试检查清单
遇到问题时,按这个顺序排查:
0/7 已完成
✓问题出在 Skill 还是 Agent?(行为是无声忽略还是明显异常?)
✓如果是 Skill:AI 是否遵循了指令?是否跳过了某些步骤?
✓如果是 Agent:行为是否偏离目标?是否越权?是否无限循环?
✓如果是协同:Skill 的护栏是在提示词层还是代码层?
✓Skill 修复:缩短、加强措辞、添加自检
✓Agent 修复:设限、加护栏、限制权限、沙箱测试
✓修复后是否需要 A/B 测试或回归测试验证效果?
本节核心要点
- Skill 失效是"软"的——无声无息,需要主动探测;Agent 失效是"失控"——可能产生实际损害
- Skill 四种软失效:部分忽略、优先级偏移、上下文稀释、格式偏离
- Agent 五种失控:无限循环、走偏、越权操作、成本爆炸、级联失败
- 协同失效的三种场景:标准不被遵循、护栏被绕过、结果与标准矛盾
- 预防优先级:Agent 失控 > Skill 软失效——失控的代价远大于软失效