AI 应用发生异常:怎样降级并阻断危险调用
“异常输入、超时与重试的故障隔离”常被写成一串术语,真正落地时却要回答几个朴素问题:谁负责、何时停止、怎样证明结果。以AI 应用安全:Agent 工具调用滥用、数据投毒与模型窃取防护为背景,本文给出一套可讨论的工作方法。
先确定最低目标
先确定这次只解决什么、不解决什么,并列出用户输入、工具权限、数据来源和模型输出。范围太大时,优先保住高风险路径;其余问题明确排入后续计划。
实施中保持可回退
- 异常输入在入口处被识别并拒绝,比进入核心链路后再处理成本低。校验长度、类型、权限和资源配额,同时给调用方返回稳定的失败语义。
- 超时预算要沿调用链分配,不能让每一层都等待同样长的时间。下游超时后取消无意义工作,避免积压任务继续占用连接和线程。
- 重试只适用于明确的暂时性失败,并要限制次数、抖动和总时长。不可重试的权限或校验失败应立即返回,防止放大流量。
降级不能绕开限制
模型异常时,降级链路仍要遵循同一套权限和数据范围。可以返回受限功能、排队或转人工,但不能因为主服务不可用就让备用模型获得更大的工具权限;状态切换应有明确的恢复条件。
完成后核对权限判定、工具调用结果与脱敏后的请求标识,并注明尚未覆盖的条件。承认限制,比给出宽泛承诺更有用。