兜底(Fallback)
先用一句话说清楚
兜底(Fallback)是系统在模型、检索、工具、权限或外部服务失败时,选择安全替代路径的机制。
实战知识卡
| 维度 | 要点 |
|---|---|
| 项目里看什么 | 看失败时是拒答、追问、降级、转人工还是终止任务。 |
| 新手最该记住 | 兜底(Fallback)是正常设计,不是系统失败后的临时补丁。 |
| 作品集证据 | 准备工具超时、无资料、无权限和字段缺失四类失败样例。 |
| 面试回答公式 | 先按失败类型分类,再说明每类失败对应的用户提示和日志记录。 |
| 常见扣分点 | 所有失败都让模型重新回答。 |
新手通俗解释
真实项目一定会失败:模型输出格式错、RAG(检索增强生成)没找到资料、工具超时、权限不足、用户问题不清、模型供应商不可用。兜底(Fallback)就是提前设计“失败时怎么办”。
没有兜底(Fallback)的 AI Agent(人工智能体)只能演示成功路径,面试官一追问就会露出问题。
为什么岗位会问它
企业系统看重可靠性。面试官问兜底(Fallback),是在看你能不能承认模型不稳定,并把失败变成可控状态。
| 失败类型 | 兜底方式 |
|---|---|
| 资料不足 | 拒答、追问、转人工 |
| 输出不合法 | 重试一次、降级为草稿、记录错误 |
| 工具超时 | 提示稍后、重试、进入待处理 |
| 权限不足 | 拒绝执行并说明原因 |
| 高风险 | 人工审批 |
| 供应商失败 | 切换模型、进入 Mock Mode(模拟模式)或暂停 |
它在项目里怎么用
每个核心流程都应该写失败分支:
| 流程 | 必要兜底 |
|---|---|
| Prompt(提示词)与结构化输出 | 解析失败怎么办 |
| RAG(检索增强生成) | 检索不到、引用不支持怎么办 |
| Tool Calling(工具调用) | 超时、无权限、参数缺失怎么办 |
| Multi-Agent(多智能体) | Agent(智能体)冲突、循环过多怎么办 |
| 部署运行 | 模型供应商失败、成本超限怎么办 |
和重试的区别
重试只是兜底(Fallback)的一种。很多失败不能无脑重试,尤其是写入工具。成熟的兜底(Fallback)包括拒答、追问、降级、转人工、暂停、回滚和告警。
常见误解
| 误解 | 为什么不对 | 正确理解 |
|---|---|---|
| 失败了就再调用一次 | 写入动作可能重复执行 | 要看失败类型 |
| 兜底(Fallback)只是错误提示 | 兜底要改变流程状态 | 提示只是用户表达 |
| 演示项目不用兜底 | 面试最爱问失败怎么办 | 作品集也要展示失败样例 |
| 换模型就是兜底 | 有些失败来自资料和权限 | 要分层处理 |
面试官可能怎么追问
1. 你的项目失败时怎么处理?
考察点: 是否只做成功路径。
参考回答: 我会按失败来源分层:资料不足拒答或转人工,结构化输出失败做有限重试,工具失败记录状态并提示待处理,权限不足拒绝执行,高风险动作进入审批。每类失败都要记录 Trace ID(追踪编号)和错误原因。
容易扣分: 说“正常不会失败”。
2. 为什么写入工具不能随便重试?
考察点: 是否理解副作用。
参考回答: 写入工具可能创建工单、发送通知或提交审批。重复重试可能造成重复记录或重复通知,所以要有幂等(Idempotency)控制、状态检查和人工确认。
容易扣分: 所有失败都自动重试三次。
作品集里怎么展示它
- 做一组失败样例:无资料、无权限、工具超时、输出无效、高风险。
- 展示每种失败如何进入不同状态。
- 展示用户看到什么,审计(Audit)记录什么。
- 展示哪些失败可以重试,哪些必须转人工。