Q943Agent 架构真题解析Agent 架构AgentAlpha 社区真题库约 6 分钟更新 2026-09-29

如果系统搜了 20 个网页,发现搜索方向跑偏了,怎么做自我修正

这道题考察的是Agent 系统在长链推理中的规划漂移(planning drift)与自我修正能力,属于系统设计 + 工程取舍类型。面试官真正想看的是:你能否在“搜索了 20 个网页”这个高成本场景下,设计一套可落地的回

如果系统搜了 20 个网页,发现搜索方向跑偏了,怎么做自我修正

P1 · agent_architecture · 🏢 字节

1️⃣ 考察意图

这道题考察的是Agent 系统在长链推理中的规划漂移(planning drift)与自我修正能力,属于系统设计 + 工程取舍类型。面试官真正想看的是:你能否在“搜索了 20 个网页”这个高成本场景下,设计一套可落地的回退机制,而不是只会说“重新规划”。刁钻点在于:修正不是简单的重试,而是判断“跑偏”的时机、代价与方向。答好了能展示你对 Agent 状态管理、反思评分、预算控制等硬实力的理解。

2️⃣ 标准答

核心思路:双重锚定 + 反射评分 + 预算熔断。具体分三步:

第一步:目标锚定——防止方向漂移

  • 每步搜索前,将原始任务描述(如“分析2024年AI芯片市场”)作为静态锚点,注入当前子任务描述(如“搜索英伟达H100出货量”)。
  • 使用语义相似度(如 Sentence-BERT 或 Cohere Embed v3)计算子任务与原始任务的余弦相似度。阈值设为 0.6(经验值),低于则触发修正。
  • 为什么这么做:避免 Agent 在长链中“忘记”初始目标,比如从“芯片市场”滑向“GPU游戏性能”。静态锚点比动态记忆更可靠,因为动态记忆可能被中间结果污染。

第二步:反射评分——量化跑偏程度

  • 对每个子任务的搜索结果(20个网页)进行三项评分:
  • 充分性:是否覆盖了子任务的关键方面(如 H100 出货量、客户、竞争)。用 LLM 打分(0-1),低于 0.4 则需补充搜索。
  • 一致性:搜索结果是否与原始任务相关。用 BM25 或 ColBERT 计算相关性,低于 0.5 则标记为“跑偏”。
  • 相关性:搜索结果中是否有明显偏离主题的网页(如“游戏显卡评测”)。用分类器(如 zero-shot 模型)过滤,占比超 30% 则触发修正。
  • 实际落地的坑:LLM 打分成本高且不稳定。解法:先用轻量级 BM25 做快速过滤,只有低分结果才送 LLM 深度评估,形成级联反射。

第三步:预算熔断——防止无限循环

  • 设置总搜索次数上限(如 30 次)和单子任务上限(如 5 次)。超限时强制回退到规划器,调整子任务描述或搜索策略。
  • 记录每次修正的“代价”(搜索次数 + LLM 调用),若连续 3 次修正后相关性仍低于阈值,则终止当前子任务并返回部分结果,避免死循环。
  • 工程取舍:预算熔断牺牲了“完美结果”,但保证了系统可控性。在 Deep Research 场景中,用户更看重时效性而非绝对准确。

总结:通过目标锚定防止漂移、反射评分量化偏离、预算熔断控制成本,形成完整流程修正。

3️⃣ 答题模板(30 秒电梯版)

“这个问题我从三个层面回答:第一,目标锚定,用原始任务描述作为静态锚点,每步计算语义相似度,防止方向漂移;第二,反射评分,对搜索结果做充分性、一致性、相关性三项打分,低于阈值触发修正;第三,预算熔断,设置搜索次数上限和连续修正次数上限,超限强制回退。总结一句:自我修正不是重试,而是基于锚定和评分的可控回退。”

4️⃣ 高频追问 & 应对

追问 1:如果反射评分本身不准(比如 LLM 打分偏差),怎么办?

采用多源验证:1)用 BM25 做第一层快速过滤,只有低分结果才送 LLM 深度评估,减少 LLM 依赖;2)对 LLM 打分结果做一致性检查,比如让 LLM 解释为什么给低分,若解释与结果矛盾则标记为“不确定”;3)引入历史统计,如果某个子任务类型(如“搜索财报”)的反射评分经常不准,则降低其阈值权重。核心是:不依赖单一评分,用级联和统计兜底。

追问 2:预算熔断后,用户看到部分结果不满意,怎么处理?

设计渐进式反馈:1)熔断时返回“已完成部分结果 + 未完成原因”(如“搜索次数超限,未覆盖X方面”);2)提供交互式修正,让用户指定“继续搜索X方向”或“调整阈值”;3)在系统日志中记录熔断点,后续可做离线优化(如调整预算上限或反射阈值)。工程上,熔断不是失败,而是可控降级。

追问 3:如果搜索方向跑偏是因为原始任务描述本身模糊(如“分析AI”),怎么修正?

在规划阶段增加任务澄清:1)用 LLM 将模糊任务拆解为多个子任务(如“分析AI芯片”“分析AI应用”),并让用户确认;2)如果用户不确认,则使用默认广度优先策略,先覆盖所有子任务,再根据反射评分聚焦;3)在反射评分中增加歧义检测,如果子任务与原始任务的相似度持续低,则触发“重新理解任务”流程,用 LLM 生成更精确的描述。核心是:模糊任务需要先澄清,而非直接搜索。

5️⃣ 避坑 · 常见错误答法

  • ❌ “直接让 LLM 重新规划,重搜 20 个网页。” → ✅ “重搜成本高,应先判断跑偏程度,用反射评分决定是调整子任务还是回退到规划器。”
  • ❌ “设置一个固定阈值,低于就修正。” → ✅ “阈值需动态调整,比如根据任务复杂度(简单任务阈值 0.7,复杂任务 0.5),避免过度修正或漏修。”
  • ❌ “用记忆模块记录历史方向,防止漂移。” → ✅ “记忆模块可能被中间结果污染,更可靠的是用原始任务描述作为静态锚点。”

6️⃣ 简历呼应

  • 如果你有 RAG 项目:从“检索结果相关性评估”切入,展示你如何用 BM25 + LLM 级联做反射评分,并说明在项目中如何防止检索漂移。
  • 如果你只做过传统 NLP:用“分类器阈值调优”类比,说明如何用充分性/一致性/相关性三项指标做多维度判断,并迁移到 Agent 场景。
  • 如果你是校招无项目:聚焦“预算熔断”设计,展示你对系统可控性的理解,并引用 Deep Research 论文中的反思机制作为理论支撑。
  • 《Reflexion: Language Agents with Verbal Reinforcement Learning》(Shinn et al., 2023)
  • 《Plan-and-Solve: Improving Zero-Shot Chain-of-Thought Reasoning by Planning》(Wang et al., 2023)
  • 《Self-Refine: Iterative Refinement with Self-Feedback》(Madaan et al., 2023)
  • 《ReAct: Synergizing Reasoning and Acting in Language Models》(Yao et al., 2022)
  • 《Toolformer: Language Models Can Teach Themselves to Use Tools》(Schick et al., 2023)

—— 本场面试完 ——

我们不做玩具级 Demo 教学。训练营的作业是开源项目和论文——我们想陪伴你,做出能改变生活、最后改变世界的项目。