真实面经题目 · 原创解析

AI Agent 遇到上下文污染、任务过长或工具结果不可靠时,如何用上下文裁剪、状态机拆分和工具链治理提升稳定性?

这题考 Agent 稳定性治理。关键是把上下文污染、长任务失控和工具不可靠拆开处理:上下文裁剪保证输入干净,状态机拆分保证任务可控,工具链治理保证外部结果可验证,再用 trace、回放、评测和恢复策略形成生产闭环。

出现于:小米 · AI 应用开发

60 秒回答模板

我会先把问题拆成三类。第一类是上下文污染:历史对话、工具返回、草稿、用户偏好和失败结果混在一起,模型把过期信息当成事实。解决办法是区分短期对话、长期记忆、任务状态和外部证据,只把当前步骤需要的信息放入 prompt;对长历史做摘要、引用、时间戳和来源标注,过期或冲突信息不进入决策上下文。第二类是任务过长:不要让一个 Agent 在一个大 prompt 里从计划到执行到验收全靠自由生成,而要拆成显式状态机,例如需求澄清、计划、检索、工具调用、结果校验、生成、验收、恢复,每个状态有输入、输出、超时、重试和停止条件。第三类是工具结果不可靠:工具必须有 schema、错误码、置信度、幂等、超时、重试、缓存、权限和结果校验;关键工具结果要做交叉验证或引用证据,不能让模型把任意工具文本当真。最后用 trace 和 eval 做闭环:记录每次状态转移、上下文裁剪、工具调用、返回值、模型判断和失败原因,用回放集、badcase 集和线上指标评估稳定性。遇到失败时按可重试、需补参、可降级、需人工确认和必须终止分类恢复,避免无限循环和静默错误。

考点 上下文分区
难度 真实面经题
回答目标 让候选人展示把 Agent 从聊天式原型治理成可控系统的能力:上下文有边界,任务有状态,工具有契约,失败可恢复,质量可评估。

深入解析

01

先把不稳定来源拆清楚

上下文污染、任务过长和工具不可靠表面上都是 Agent 答错,但根因不同。上下文污染是输入事实不干净,长任务失控是控制流不明确,工具不可靠是外部证据不可信。面试回答要先分类诊断,再分别设计治理手段,而不是笼统说增加 prompt 或换更强模型。

02

上下文裁剪要保留事实边界

上下文裁剪不是简单截断最近若干轮。应把上下文分为用户目标、当前状态、已确认事实、候选假设、工具证据、历史偏好和废弃信息。进入模型的内容要有来源、时间和置信度;冲突事实要显式标注;过期工具结果和失败草稿不能继续参与决策。长历史可以摘要,但摘要必须可追溯到原始证据。

03

状态机拆分降低任务复杂度

复杂任务应拆成有限状态和可验证转移,例如 plan、collect、act、verify、repair、done。每个状态只解决一个职责,有明确输入、输出 schema、允许调用的工具、重试次数、超时和退出条件。这样 Agent 不再依赖模型自己记住所有流程,系统可以检查是否跳步、循环、缺参或越权调用工具。

04

工具链治理要让结果可验证

工具需要稳定契约,包括名称、用途、参数 schema、返回 schema、错误码、超时、重试、幂等、权限和副作用说明。工具返回不能只是一段自然语言,最好包含结构化字段、置信度、来源和可校验标识。对关键结果要做 sanity check、交叉验证、范围校验和空结果语义处理。

05

trace 和评测让问题可复现

稳定性治理离不开可观测性。每次运行都要记录用户输入、裁剪后的上下文、状态转移、模型输出、工具参数、工具返回、校验结果、重试和最终答案。离线可以用历史会话和 badcase 回放,评估成功率、工具错误恢复率、循环率、上下文污染命中率、人工接管率、延迟和成本。

06

恢复策略要防止无限循环

失败恢复要分类处理:参数缺失则追问,可重试错误按退避重试,工具不可用则降级,结果冲突则交叉验证或人工确认,权限不足则停止并解释,高风险副作用则必须确认。每个状态都要有最大尝试次数和终止条件,否则 Agent 会在长任务里反复调用工具或不断自我修补。

易错点

  • 把上下文问题只归因于模型上下文窗口不够,忽略过期事实、失败草稿和工具噪声污染。
  • 复杂任务仍然靠一个大 prompt 串到底,没有状态、边界、重试上限和停止条件。
  • 工具返回自然语言文本就直接喂给模型,不做 schema、错误码、来源和结果校验。
  • 遇到工具失败只做无限重试或让模型自行解释,缺少分类恢复和降级策略。
  • 没有 trace 和回放集,线上出错后只能靠日志片段猜测原因。
  • 裁剪上下文时删除了用户硬约束或已确认事实,导致 Agent 后续行为偏离目标。

面试官追问

上下文裁剪如何避免删掉关键信息?

不能只按 token 数截断。应把关键信息结构化存入 state,例如用户目标、约束、已确认事实和工具证据;裁剪 prompt 时从 state 选择当前步骤需要的信息,并保留引用和摘要回链。

为什么状态机比一个长 prompt 更稳定?

状态机把控制流外置到系统里,每一步有输入、输出和停止条件,系统可以检查和恢复。长 prompt 依赖模型自我约束,任务越长越容易忘记目标、误用旧信息或陷入循环。

工具结果互相冲突时怎么办?

先保留冲突而不是立刻融合,记录来源、时间和置信度;再按权威性、时效、字段一致性和二次查询校验。无法判断时应降级、追问或人工确认,不能让模型凭语气选择一个答案。

Agent 稳定性评估看哪些指标?

可看任务成功率、状态完成率、循环率、工具调用成功率、工具误用率、错误恢复率、人工接管率、上下文污染案例数、延迟、成本和用户侧有效完成率。对高风险工具还要看越权和副作用错误。

如何做长任务恢复?

每个状态都保存可恢复 state 和 trace,失败后从最近的安全检查点继续,而不是重跑全部历史。恢复时先判断失败类型,再选择重试、补参、换工具、降级、人工确认或终止。