Skip to content

Agent 面试 · 可靠性与安全 ​

会做 Demo 和能上线的差别,多半在这一页。


高频问法 ​

  1. Agent 常见失败模式有哪些?怎么兜底?
  2. 如何防止死循环、乱删数据、成本爆炸?
  3. 权限和安全怎么做?
  4. 怎么观测一个 Agent 好不好用?
  5. 幻觉导致错误调工具怎么办?

口述参考 ​

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、断言最终状态与是否调了危险工具。