Agent 面试 · 可靠性与安全
会做 Demo 和能上线的差别,多半在这一页。
高频问法
- Agent 常见失败模式有哪些?怎么兜底?
- 如何防止死循环、乱删数据、成本爆炸?
- 权限和安全怎么做?
- 怎么观测一个 Agent 好不好用?
- 幻觉导致错误调工具怎么办?
口述参考
1)失败模式 → 兜底
| 失败 | 兜底 |
|---|---|
| 死循环调工具 | 最大步数、全局超时、同工具连续失败熔断 |
| 参数幻觉 | JSON Schema 校验;失败回传「缺字段」让模型改;超次降级人工 |
| 工具超时 / 下游挂 | 超时、重试(仅幂等)、熔断、返回可理解错误 |
| 重复执行(支付/下单) | 幂等键、业务去重表 |
| 结果不可验 | 结构化输出 + 业务规则 + 抽检 |
| 成本炸 | 限流、分模型档位、缓存重复查询 |
金句:没有步数上限和权限的 Agent,不叫产品,叫事故源。
1.5)四件事一开始就嵌进项目(开口 40 秒)
面试官若问「你项目里可靠性怎么做的」,不要只说「我们有重试」。按四句说:
| 能力 | 口语怎么说 |
|---|---|
| 超时 | 每步 Tool/模型有 deadline,整条流水线有总超时;超时进失败/待重试/待人工,不挂死 |
| 重试 | 只重试读和检索;写操作默认不盲目重试 |
| 幂等 | 改世界的动作带 key(如 runId+step),重复执行不产生第二封邮件、第二单 |
| 审计 | 记谁发起、哪个 Agent、调了啥、摘要、耗时、成败、人审没有——能回放 |
多 Agent:编排管总超时和预算,子步骤管自己的 deadline;写操作的 key 跨 Agent 也要唯一。
再补一句边界:Checkpoint 管进度,幂等管重复执行安不安全,审计管事后查得出——别混成一句「做了高可用」。
2)护栏分层(好画图)
text
L1 提示词边界(角色、禁止事项)
L2 工具白名单 + Schema
L3 权限与租户隔离
L4 步数 / 超时 / 预算
L5 人工审批(高危写操作)
L6 日志审计与回放面试官爱听你说「哪一层拦什么」,而不是只说「我们很谨慎」。
3)安全要点
- API Key 永不进前端;工具凭据最小权限
- 提示词注入:不可信用户输入与系统指令隔离;工具结果当数据不当指令
- 文件 / Shell 类工具:目录沙箱、命令黑名单
- 日志脱敏:手机号、Token、身份证
4)观测指标(能量化更好)
- 任务成功率 / 人工接管率
- 平均步数、平均耗时、平均 Token / 费用
- 工具错误率、Schema 校验失败率
- 超时与熔断次数
能说:「我们看成功率、步数和费用;步数突增先查是否死循环或工具描述不清。」
5)幻觉调错工具
流程:校验失败 → 把错误信息作为观察结果喂回 → 允许再试 N 次 → 仍失败则结束并标「需人工」。
不要静默吞掉错误假装成功。
追问预备
- 「和普通微服务稳定性比?」→ 多了模型不确定性和提示词变量;更依赖契约与护栏。
- 「如何回归测试?」→ 固定用例集:黄金对话、工具 mock、断言最终状态与是否调了危险工具。