跳到正文

DEEP RESEARCH PROJECT INTERVIEW · Q18 / 25

训练数据里 Search 太多,为什么 Agent 遇到什么都想先搜?

从首次训练偏 Search 的观察出发,讲清 Deep Research 工具选择偏置的条件分布、成对数据、归因与小批验证。

作者与复核:吴师兄内容依据:公开教程、代码示例与工程推导查看关联教程 →查看吴师兄公开作品 →

25 道题目Q18
本页内容23 节

30 秒先说结论

按知识稳定性、证据深度、计算需求、任务进度和环境状态统计 action 条件分布,而不是只看工具总次数。用同主题成对题补直接答、Search、Visit、计算和停止边界,并排除 Prompt、工具描述与环境问题;小批训练后用独立混淆矩阵、参数、证据和答案共同验收。

一个调研 Agent 面对“水的化学式是什么”,先调用 Search;面对简单乘法,也想搜网页;真正需要访问原文时,却停在搜索摘要。

很多团队会先怀疑 Prompt 没写好,或者模型太小。

但如果训练轨迹里大量任务都以 Search、Visit 开头,模型可能只是忠实模仿了高频动作。它没有学会判断“当前缺什么信息”,而是把“收到问题”与“先搜索”绑定在一起。

相关首次训练记录里,就出现了简单问题仍偏 Search 的现象,材料同时指出 Search、Visit 轨迹偏多可能是原因之一。

所以面试官真正想问的是:

工具选择偏置怎样从训练数据产生,如何证明问题来自数据而不是 Prompt 或环境,为什么各工具数量相等也不等于平衡,又怎样用成对边界题、混淆矩阵和小批实验修正,而不虚构收益?

“工具多”不是偏置,“不看条件就选它”才是

如果目标业务本来就有大量最新事实查询,Search 调用多可能合理。

偏置指的是模型忽略当前任务状态,过度选择某个动作。例如稳定常识也 Search,需要原文却只 Search,工具已经返回足够证据后仍继续 Search。

因此不能只画工具调用饼图。

应该观察条件分布:在“稳定事实且无需来源”“动态事实”“原文细节”“精确计算”“证据不足”“工具失败”等状态下,训练数据分别教了什么动作。

同一个工具在不同状态中可能都合理。Search 可以用于发现候选来源,也可以在动态事实中直接提供线索;关键是它是否解决了当前信息缺口,以及后续是否根据 observation 调整。

工具总量与条件性工具偏置的区别

真正要平衡的是状态到动作的边界,不是让每个工具次数一样。

现有训练记录能支持什么结论?

相关首次记录可以确认,清洗后 187 条样本训练 1 个 epoch,并用 10 个通用用例复盘。

材料观察到格式更稳定,但简单问题仍调用 Search,工具选择改善有限,并指出训练数据中 Search、Visit 轨迹占比较高可能导致模型偏向搜索。

这是一次小规模定性观察。

它支持“需要检查训练动作分布”这个诊断方向,不支持计算某个工具的生产偏置率,也不能证明只要降低 Search 数量就一定改善。

材料中的后续工具比例与样本数量属于阶段建议,不是已经执行并验证的实验结果。

因此正文不会给出“把 Search 调到某个比例就提升多少”的结论。正确做法是根据自己的任务、轨迹和评测验证。

工具选择数据至少要标哪些状态?

第一类是知识稳定性。

稳定常识可能直接回答,最新事件、价格、版本和政策通常需要外部检索。

第二类是证据深度。

发现候选页面可以 Search,核对条款、参数和上下文往往要 Visit 原文。

第三类是计算需求。

需要精确运算、统计或代码验证时,calculator 或 Python 比自然语言估算更可靠。

第四类是来源要求。

用户明确要求引用、官方来源或限定网站时,动作边界与普通问答不同。

第五类是任务进度。

同一道题在开始阶段需要搜索,证据已覆盖后应该停止。动作标签必须结合当前状态,而不是只结合原问题。

第六类是环境状态。

超时、空结果、权限受限和解析失败后,合理动作可能是重试、改参数、换源或降级。

第七类是答案状态。

有明确答案、需要计算、存在冲突、开放建议和证据不足,需要不同的完成策略。

这些标签可以先粗后细,但必须能回答“为什么此时应该用这个工具”。

为什么各工具样本一样多,仍可能严重偏科?

假设训练集中 Search、Visit、calculator 和直接回答数量相等。

如果 Search 样本都来自简单清晰的问题,Visit 都来自特别长且模糊的问题,模型可能把问题长度当动作线索。

如果 calculator 只出现在“计算”两个字明确出现时,模型会记关键词,不会识别隐含运算。

如果直接回答只覆盖某一个领域,换个主题仍会默认 Search。

如果所有 Visit 都紧跟 Search,模型可能学会固定流水线,而不知道何时搜索摘要已经足够,也不知道已知 URL 时可以直接访问。

所以需要看任务类型与工具的交叉覆盖,还要检查同一任务族中是否存在相邻动作边界。

工具数量相等只解决边际分布,不解决条件分布和因果捷径。

最有价值的是“同主题、不同动作”的成对数据

单独加入更多直接回答样本,可能让模型从“总是 Search”变成“总是直接答”。

更好的做法是围绕相同主题构造成对边界。

例如“某个稳定基础概念是什么”可以直接回答;“这个概念在最新版本中的参数是否变化”需要 Search;“官方文档对某个限制的原文怎么写”需要 Visit;“根据文档中的数字计算成本”需要 calculator。

问题词汇相近,动作不同,模型更难依赖主题关键词,只能学习任务条件。

还可以做观察后的成对分支。Search 已经返回可信且足够的信息时停止;只返回摘要或来源冲突时继续 Visit 或换源。

成对数据必须都经过证据与轨迹审核。不能为了制造反例,强行把本应检索的问题标成直接回答。

怎样从现有数据里发现工具偏置?

第一步,统一轨迹格式,确保 tool call 与 observation 角色没有串位。

第二步,按问题族、任务类型、信息状态、期望动作、实际 Teacher 动作和工具结果打标签。

第三步,统计每类状态下的动作分布,而不只看全局调用次数。

第四步,检查行动序列。可能单个工具比例正常,但“Search 后必 Visit”的固定模式过强。

第五步,查看有效监督 token。若大量 target token 来自某类工具调用和参数模板,它对训练的影响可能大于样本条数显示。

第六步,按来源、Teacher 和生成版本分组。某个 Teacher 或 Prompt 可能系统性偏爱一种工具。

第七步,抽查高频格子。统计偏差也可能来自标签错误、重复轨迹或同一母题的大量改写。

工具选择数据审计流程

先建立状态与动作标签,再检查序列、监督 token 和数据血缘。

怎样证明不是 Prompt、工具描述或环境的问题?

数据偏置只是候选原因之一。

若工具描述把 Search 写成“回答任何问题的入口”,模型自然会过度调用。若 Visit 参数难解析,模型可能即使学过也不愿使用。

控制器也可能强制第一步搜索,或在直接回答时错误判定运行失败。

环境中的 Visit 如果频繁超时,Teacher 轨迹可能逐渐退化成只用 Search。这时偏置既来自环境,也被数据固化。

可以做受控对比。

固定模型与评测题,分别替换工具说明、Prompt 和控制器策略;固定基础设施,再比较不同数据版本训练出的模型。

同时直接回放 Teacher 轨迹,确认“期望动作”确实能在环境中成功执行。

若未训练基线已经同样偏 Search,说明基础模型或 Prompt 也有影响;若训练后偏置明显加重,并与数据动作分布一致,数据假设更值得继续验证。

这里仍需谨慎表述。受控实验可以增强归因,但小批结果不能自动代表生产流量。

修正数据时有哪些手段?

第一,重新采样。

按目标状态与动作矩阵选择合格样本,减少少数高频问题族的重复,不是简单删除所有 Search。

第二,补边界样本。

围绕同主题增加直接答、Search、Visit、计算和无答案的对照。

第三,补失败恢复。

加入 Search 空结果后改写查询、Visit 受限后换来源,以及工具足够时及时停止的轨迹。

第四,清理错误 Teacher 行为。

Teacher 习惯性搜索不等于金标准。若动作无必要,即使最终答案正确,也不能作为理想策略直接训练。

第五,分开格式与策略数据。

用于稳定协议的短样本和用于学习决策边界的轨迹可以分别统计,避免格式样本的单一动作吞没策略信号。

第六,必要时做样本权重或分层 batch。

但权重只放大已有标签。标签错、轨迹虚构或来源泄漏时,加权会让问题更严重。

“负样本”应该怎么用,才不会把模型教坏?

工具选择负样本最好表示清楚的决策对照。

同一状态下,为什么 Search 不如直接回答;为什么只看摘要不如 Visit;为什么工具失败后编结论不如降级说明。

不能把所有失败轨迹都当作同一种负样本。格式错、参数错、环境失败、截断未完成和事实错误的原因不同。

训练材料还提醒,长轨迹因截断没有完成时,若简单当作负样本,可能让模型学会尽快随便给答案。

所以负样本应有失败标签和可比较的正确分支。无法确认错误原因的轨迹更适合拒绝或重采样,不适合强行用于策略训练。

数据集对外只需保留可验证行动、环境观察和结果,不需要暴露模型私有思维过程。

评测工具选择,不能只看“命中标签”

混淆矩阵是起点。

它能看到直接答被预测成 Search、Visit 被预测成 Search 等系统性错误。

还要检查参数正确率。选对工具但丢失时间或对象,仍然无法完成任务。

检查执行成功和异常恢复。环境失败不能全部算工具选择错,但恢复行为要单独评分。

检查证据质量。Search 省了 Visit,却用摘要下了越界结论,不算更优策略。

检查最终答案完成度与停止。减少工具调用不能以漏答或编造为代价。

可以记录调用次数、延迟与成本,但它们是约束,不应单独成为优化目标。更少调用只有在任务质量不退化时才有意义。

工具选择偏置诊断矩阵

工具标签、参数、证据、答案与成本要共同评估。

重采样、重加权和重新生成有什么区别?

重采样是在已有合格样本中改变被选中的频率。它适合某些能力已经存在,只是批次中被高频问题族淹没的情况。

重加权是在计算训练目标时改变样本或 token 的影响。它不复制数据,但依赖标签准确和权重策略稳定。

重新生成则是补充现有数据没有覆盖的状态与动作,例如 Visit 受限后的换源、证据充分后的及时停止。

三种手段不能互相替代。

若训练集中根本没有“稳定常识直接答”的合格轨迹,调高这类样本权重没有意义。若同一母题有大量改写,重采样前应先按 family 去重,否则只是放大重复。

若原 Teacher 的工具选择就是错的,任何权重都不会把错误标签变正确。应先人工核验或让独立流程重新执行。

每次改动还要记录数据版本和采样策略。否则训练结果变化后,无法知道来自新增边界题、重复样本减少,还是权重变化。

工具选择标签允许“多个正确答案”吗?

真实研究任务经常不止一条可行路径。

已知官方 URL 时可以直接 Visit,也可以先 Search 核对页面是否更新。某些简单计算既可以 calculator,也可以可靠地直接完成。

如果数据集强行只认一个动作,会把合理替代路径标成负样本。模型可能学会迎合标签,而不是完成任务。

可以把判定拆成必要约束与偏好。

必要约束包括不能使用不存在的来源、不能丢失时间范围、不能在证据不足时给确定结论。

偏好可以考虑步骤、成本和可复现性,但只有在答案质量和证据不退化时比较。

对于多动作都合理的状态,可以保存允许动作集合,或者把整条轨迹的证据与任务完成度作为最终判定,而不是只看第一步命中。

这样设计也能减少“离线动作准确率提高,真实任务反而变差”的假进步。

怎样检查模型是不是利用了错误捷径?

模型此时可能只在读取表面线索,并没有真正判断信息需求。

若问题出现“最新”就 Search,出现“官方”就 Visit,出现数字就 calculator,这些规则有时有效,却无法覆盖更隐蔽的任务。

可以做最小对照修改。保持主题与大部分文字不变,只改变时间条件、证据要求或是否给出已知 URL,观察动作是否随真正条件变化。

也可以做措辞扰动。把“计算”换成隐含的总价比较,把“最新”写成具体日期,检查模型是否仍理解任务。

再做冲突测试。问题表面像常识,但用户要求来源;问题包含数字,但只是在引用型号,不需要计算。若模型仍机械触发工具,就说明它依赖关键词。

训练数据同样要覆盖这些反捷径样本。它们不需要大量堆积,但必须经过真实工具执行和答案审核。

判断捷径不能只靠一次输出。多次采样和跨问题族复测更能说明某种动作是否稳定绑定在表面特征上。

成本和延迟应该怎样进入工具决策?

工具策略并不是“越少调用越好”。

Search 比直接回答更慢、更贵,但在动态事实中可能是必要成本;Visit 增加步骤,却能避免用摘要下越界结论。

可以先定义质量硬门:任务完成、关键主张有证据、风险边界清楚。只有通过硬门的轨迹,才比较调用次数、延迟和资源消耗。

高风险任务还可以要求更严格来源,即使成本更高。低风险稳定问题则允许直接完成。

训练样本需要携带约束上下文。如果同一任务在不同预算下期望动作不同,不能只保留问题文本和唯一工具标签。

评测报告也要把质量与效率分开。否则模型只要少调用工具,就可能在效率分上看起来更好,即使答案已经退化。

本文不提供材料未验证的成本下降数字。工程上只说明约束如何进入决策和验收。

上线日志怎样反哺数据,而不把错误继续放大?

真实日志能暴露训练集没有覆盖的问题,但不能直接变成金标准。

先脱敏并获得合法使用权限,再识别任务状态、模型动作、工具返回、用户是否继续追问和最终结果。

高频重试、用户纠正、人工接管和无答案硬答可以进入候选缺口池。它们提示“哪里值得补”,不自动说明正确动作是什么。

随后由专家或可验证规则定义期望边界,让 Teacher 在受控环境重新执行,完成轨迹、证据与答案审核。

来自同一会话或同一问题族的变体要统一分组,避免同时进入训练和测试。

新数据上线后继续观察相同错误是否减少,以及新的过度纠正是否出现。比如减少默认 Search 后,是否增加了不检索就乱答。

这个闭环要把真实失败转化成经过验证的边界样本,避免模型原样模仿线上已有行为。

一轮可执行的修正实验怎样设计?

先冻结一组按问题族隔离的评测题,覆盖直接答、Search、Visit、计算、异常与无答案。

对当前模型生成工具混淆矩阵和错误样本集。

从最明显的一个偏置开始,例如稳定常识被默认 Search。回查训练数据中对应状态与动作分布,人工确认标签。

构造少量同主题边界样本,加入直接回答和必须搜索的对照,同时保留原有其他能力数据。

冻结 Prompt、工具协议和大部分训练配置,只改变可追踪的数据版本。

训练后在独立问题族复测,检查目标错误、相邻动作、参数、答案和格式是否共同变化。

若结果没有按假设变化,不急着扩量。继续判断是数据覆盖不足、标签定义不合理、模型容量限制还是基础设施干扰。

若结果出现改善,也只能说该小批实验支持当前方向。需要跨问题族、环境和多次运行复现后,再考虑更大范围上线。

面试官继续追问,怎么接?

追问一:Search 样本多就一定有问题吗?

不一定。要看目标业务与状态条件。偏置是无需 Search 时仍默认选择它,而不是全局次数高。

追问二:把每种工具数据做成一样多可以吗?

不够。还要平衡任务类型、信息状态和动作边界,防止模型用长度、领域或关键词走捷径。

追问三:为什么成对数据比普通扩写更有价值?

它让主题相近但条件不同的问题选择不同动作,迫使模型学习决策边界,而不是记问题词表。

追问四:怎样区分数据偏置和 Prompt 问题?

固定一部分变量做受控对比,并检查未训练基线、Teacher 轨迹和环境执行,避免把所有错误归给数据。

追问五:能不能说调整工具比例后准确率会提升?

不能预先承诺。现有材料只提供小样本偏 Search 的观察,具体配比和收益必须由独立实验验证。

如何向面试官解释工具偏置修正

判断工具选择偏置,要看模型是否在不适合的状态下仍默认选择某个工具,单看工具总量会得出错误结论。我会按知识稳定性、证据深度、计算需求、来源要求、任务进度、环境状态和答案状态统计 action 条件分布,再检查工具序列与有效监督 token。

数据修正要构造同主题、不同条件的动作边界:稳定事实直接答,最新事实 Search,原文细节 Visit,精确运算用 calculator,证据不足时降级。把每种工具数量做成相等并不能解决条件偏置。Teacher 的无必要调用也不能因为答案碰巧正确就当金标准,负样本还要区分决策错、环境失败和截断未完成。

归因时还要排除 Prompt、工具描述、解析器和环境问题。每次只改一个可追踪的数据版本,用独立问题族的混淆矩阵、参数、证据、答案与成本共同验收。现有首次记录只支持小样本仍偏 Search 的定性观察,不支持宣称某种配比已经带来生产收益。

工具选择数据修正检查清单

数据修正是否真的消除了偏置

用同主题边界题对照修改前后的状态到动作分布,再排除 Prompt、环境和解析器变化造成的假改善。

  • 是否统计状态到动作的条件分布,而不只看工具总次数?
  • 是否用同主题成对题覆盖直接答、Search、Visit 和计算边界?
  • 是否排除 Prompt、工具描述、控制器与环境失败的影响?
  • 是否区分决策错误、格式错误、环境失败和截断未完成?
  • 是否用独立问题族检查参数、证据、答案和相邻能力回归?
  • 是否避免把规划比例或小批实验写成已验证生产收益?

INTERVIEW FOLLOW-UPS

面试官会怎样继续追问?

这些追问会继续检查方案取舍、验证方法和项目事实。
  1. Q01

    Search 样本多就一定是数据偏置吗?

  2. Q02

    各工具样本数量一样为什么还会偏科?

  3. Q03

    成对边界数据怎样设计?

  4. Q04

    如何区分数据偏置和 Prompt 问题?

PROJECT CHECK

换成你的项目,这几件事能否说清楚?

  • 统计任务状态到动作的条件分布
  • 用同主题成对题补工具选择边界
  • 排除 Prompt、控制器和环境干扰
  • 不虚构工具配比带来的收益
用自己的项目经历练一次