真实面经题目 · 原创解析
AI Agent 遇到上下文污染、任务过长或工具结果不可靠时,如何用上下文裁剪、状态机拆分和工具链治理提升稳定性?
这题考 Agent 稳定性治理。关键是把上下文污染、长任务失控和工具不可靠拆开处理:上下文裁剪保证输入干净,状态机拆分保证任务可控,工具链治理保证外部结果可验证,再用 trace、回放、评测和恢复策略形成生产闭环。
真实面经题目 · 原创解析
这题考 Agent 稳定性治理。关键是把上下文污染、长任务失控和工具不可靠拆开处理:上下文裁剪保证输入干净,状态机拆分保证任务可控,工具链治理保证外部结果可验证,再用 trace、回放、评测和恢复策略形成生产闭环。
我会先把问题拆成三类。第一类是上下文污染:历史对话、工具返回、草稿、用户偏好和失败结果混在一起,模型把过期信息当成事实。解决办法是区分短期对话、长期记忆、任务状态和外部证据,只把当前步骤需要的信息放入 prompt;对长历史做摘要、引用、时间戳和来源标注,过期或冲突信息不进入决策上下文。第二类是任务过长:不要让一个 Agent 在一个大 prompt 里从计划到执行到验收全靠自由生成,而要拆成显式状态机,例如需求澄清、计划、检索、工具调用、结果校验、生成、验收、恢复,每个状态有输入、输出、超时、重试和停止条件。第三类是工具结果不可靠:工具必须有 schema、错误码、置信度、幂等、超时、重试、缓存、权限和结果校验;关键工具结果要做交叉验证或引用证据,不能让模型把任意工具文本当真。最后用 trace 和 eval 做闭环:记录每次状态转移、上下文裁剪、工具调用、返回值、模型判断和失败原因,用回放集、badcase 集和线上指标评估稳定性。遇到失败时按可重试、需补参、可降级、需人工确认和必须终止分类恢复,避免无限循环和静默错误。
上下文污染、任务过长和工具不可靠表面上都是 Agent 答错,但根因不同。上下文污染是输入事实不干净,长任务失控是控制流不明确,工具不可靠是外部证据不可信。面试回答要先分类诊断,再分别设计治理手段,而不是笼统说增加 prompt 或换更强模型。
上下文裁剪不是简单截断最近若干轮。应把上下文分为用户目标、当前状态、已确认事实、候选假设、工具证据、历史偏好和废弃信息。进入模型的内容要有来源、时间和置信度;冲突事实要显式标注;过期工具结果和失败草稿不能继续参与决策。长历史可以摘要,但摘要必须可追溯到原始证据。
复杂任务应拆成有限状态和可验证转移,例如 plan、collect、act、verify、repair、done。每个状态只解决一个职责,有明确输入、输出 schema、允许调用的工具、重试次数、超时和退出条件。这样 Agent 不再依赖模型自己记住所有流程,系统可以检查是否跳步、循环、缺参或越权调用工具。
工具需要稳定契约,包括名称、用途、参数 schema、返回 schema、错误码、超时、重试、幂等、权限和副作用说明。工具返回不能只是一段自然语言,最好包含结构化字段、置信度、来源和可校验标识。对关键结果要做 sanity check、交叉验证、范围校验和空结果语义处理。
稳定性治理离不开可观测性。每次运行都要记录用户输入、裁剪后的上下文、状态转移、模型输出、工具参数、工具返回、校验结果、重试和最终答案。离线可以用历史会话和 badcase 回放,评估成功率、工具错误恢复率、循环率、上下文污染命中率、人工接管率、延迟和成本。
失败恢复要分类处理:参数缺失则追问,可重试错误按退避重试,工具不可用则降级,结果冲突则交叉验证或人工确认,权限不足则停止并解释,高风险副作用则必须确认。每个状态都要有最大尝试次数和终止条件,否则 Agent 会在长任务里反复调用工具或不断自我修补。
不能只按 token 数截断。应把关键信息结构化存入 state,例如用户目标、约束、已确认事实和工具证据;裁剪 prompt 时从 state 选择当前步骤需要的信息,并保留引用和摘要回链。
状态机把控制流外置到系统里,每一步有输入、输出和停止条件,系统可以检查和恢复。长 prompt 依赖模型自我约束,任务越长越容易忘记目标、误用旧信息或陷入循环。
先保留冲突而不是立刻融合,记录来源、时间和置信度;再按权威性、时效、字段一致性和二次查询校验。无法判断时应降级、追问或人工确认,不能让模型凭语气选择一个答案。
可看任务成功率、状态完成率、循环率、工具调用成功率、工具误用率、错误恢复率、人工接管率、上下文污染案例数、延迟、成本和用户侧有效完成率。对高风险工具还要看越权和副作用错误。
每个状态都保存可恢复 state 和 trace,失败后从最近的安全检查点继续,而不是重跑全部历史。恢复时先判断失败类型,再选择重试、补参、换工具、降级、人工确认或终止。