60 秒回答模板

我会把这题拆成运行时控制面。第一层是输入和输出安全,对用户输入、工具参数、模型中间计划和最终输出做敏感词、策略分类和权限检查。第二层是停止生成,前端停止、服务端取消、模型流关闭、工具任务中止和状态标记要形成一致协议,不能只断开 SSE。第三层是工具切换约束,工具有 allowlist、schema 校验、权限范围、调用前置条件和互斥规则,避免模型在多个工具之间乱跳。第四层是死循环防护,设置最大迭代次数、超时、无进展检测、重复调用检测、成本预算和人工接管。第五层是可观测性,记录每轮模型决策、工具调用、拦截原因、取消原因和资源消耗,用指标和告警发现异常。核心原则是把 Agent 当成可取消、可审计、可降级的状态机,而不是让模型自由运行到结束。

考点 全链路过滤
难度 真实面经题
回答目标 讲清工程边界与实现取舍

深入解析

01

安全要覆盖整个链路

敏感内容检查不能只放在最终答案。用户输入、模型计划、工具参数、检索内容、工具返回和输出都可能携带风险。生产系统应按风险等级决定拒绝、脱敏、澄清、人工审核或继续执行。

02

停止生成是协议问题

停止按钮触发后,客户端、网关、Agent 调度器、模型流、正在运行的工具和持久化状态都要收到一致的取消信号。只断开前端连接会造成后端继续消耗 token、工具继续执行或任务状态变成不确定。

03

工具切换要有边界

每个工具要定义调用条件、参数 schema、权限、幂等性、超时和错误语义。Agent 在多工具之间切换时,应有计划、状态和上一步结果作为依据,而不是模型凭名字猜工具。高风险工具还需要确认或审批。

04

死循环防护看是否有进展

仅设置最大轮数不够,还要检测重复计划、重复工具参数、状态无变化、同类错误反复出现和成本异常增长。无进展时应触发总结、澄清、降级或人工接管,而不是继续让模型自我修复。

05

状态机比自由循环更可靠

生产级 Agent 应显式维护 running、cancelling、cancelled、blocked、failed、succeeded 等状态。每次模型调用和工具调用都要从合法状态进入,并在失败、取消、超时后落到明确状态,便于重试和审计。

06

观测指标用于提前发现风险

关键指标包括拦截率、取消成功率、平均迭代轮数、循环中止次数、工具错误率、重复调用率、token 成本、任务超时和人工接管率。没有 trace 和指标,安全策略只能靠事故后复盘。

易错点

  • 把安全只理解成最终答案敏感词过滤。
  • 停止生成只断开前端流,后端模型或工具仍继续执行。
  • 没有工具 allowlist、schema 和权限边界,模型可以随意猜工具调用。
  • 只用最大轮数防循环,不检测重复调用和状态无进展。
  • 没有明确任务状态机,取消、失败和重试后的状态混乱。
  • 缺少 trace、指标和告警,线上异常无法复盘。

面试官追问

停止生成为什么不能只靠前端断开连接?

前端断开只代表用户不再接收结果,后端模型流和工具任务可能还在运行。必须把取消信号传到调度器、模型调用和工具执行层。

如何判断 Agent 进入死循环?

看是否反复生成相同计划、调用相同工具参数、遇到同类错误、状态没有变化,或 token 和耗时持续增长但任务没有进展。

敏感词过滤放在哪里更合适?

应多点防护:输入入口做初筛,工具调用前做参数检查,输出前做最终检查,高风险动作前做审批或人工确认。

工具调用失败后应该让模型一直重试吗?

不应该。要区分临时错误、参数错误、权限错误和不可恢复错误,并设置重试次数、退避、降级和人工接管条件。