Deep Research Agent 一次任务可能经历多轮搜索、访问、计算和摘要。
当轨迹达到最大 token、最大步骤或运行时间,系统可能在 final answer 之前停止。很多训练管道看到“没有最终答案”,就直接给零 reward,并把这条轨迹当作负样本。
这看起来合理,实际上可能教坏模型。
有些轨迹确实走错了,有些只是环境超时,还有些方向完全正确但预算用完。若全部受到同一种惩罚,模型反而会学着赶在截断前随便给出答案,研究质量未必提高。
相关训练材料明确提醒,这种处理会带来格式和研究深度问题。
所以面试官真正想问的是:
怎样区分做错、没做完和环境失败,截断信号从哪里读取,哪些样本可以重采样、续跑、分段或拒绝,如何设计 reward 才不鼓励仓促回答,又怎样验证处理方式没有制造新捷径?
“失败”至少要拆成五类
第一类是答案错误。
轨迹完成了,但关键事实、计算或结论不受证据支持。
第二类是行动错误。
模型持续选错工具、参数不合法、重复调用或在证据不足时停止。
第三类是环境失败。
搜索超时、网页权限受限、服务异常或工具返回损坏,策略未必有错。
第四类是预算耗尽。
任务设计合理,但最大步骤、时间、token 或成本限制先到了。
第五类是技术截断。
序列在 tool call、observation 或 final answer 中间被截断,结构本身不完整。
这五类可能同时出现。例如模型先做了无效搜索,随后又因 token 上限截断。数据需要主原因、次原因和可审计证据,不能只保留一个 reward=0。

没有 final answer 是现象,不是失败原因。
为什么“没有答案就负奖励”会诱导提前作答?
假设模型有两种行为。
第一种继续核验来源,有机会得到更可靠答案,但也可能在长度上限前来不及完成。
第二种只查一个摘要,马上输出结论。它质量较低,却拥有 final answer。
若奖励只区分“有答案”和“没答案”,第二种反而更安全。
模型经过反复更新后,会逐渐偏向短轨迹、少查证和早停止。表面上截断率下降,实际研究质量也下降。
这种捷径尤其容易出现在长任务。普通短问答很少撞到预算边界,Deep Research 的工具循环却经常处在完成质量和运行预算之间。
因此终止状态必须进入 reward 与样本筛选。最终答案存在可以是格式门,但不能单独代表任务成功。
截断原因应该从哪里判断?
不能只检查文本是否以某个标签结尾。
推理服务应返回明确 stop reason,例如正常完成、长度上限、时间上限、步骤上限、用户取消、工具异常或安全拦截。
Agent 控制器还要记录当前步骤、最近 action、工具状态、剩余预算和是否已覆盖任务合同。
若只保存最终拼接文本,后续很难区分模型主动停止和基础设施切断。
序列生成层的长度截断与任务层预算耗尽也要分开。前者可能在 JSON 中间断掉,后者可以在完整步骤边界安全暂停。
每次终止都应绑定模型、模板、工具、环境和预算版本。相同轨迹在不同 max length 下的结果不能混为同一种策略表现。
怎样判断一条未完成轨迹“前半段是否有价值”?
先检查结构是否完整到最后一个步骤边界。
如果 tool call 被截成半个 JSON,最后片段不能直接训练。
再检查行动是否持续推进。
每一步是否新增证据、排除候选、解决冲突或合理改道。重复搜索十次后截断,与已经收集完主要证据但没来得及写答案,价值不同。
然后检查当前状态是否可恢复。
任务合同、已确认主张、证据 ID、未决问题和工具结果是否都已持久化。只有可恢复,续跑才不会重新猜上下文。
最后检查已完成部分是否可以构成独立训练单元。某个工具错误后的恢复决策可能有效,但不能把它与不存在的最终成功绑定。
这里不需要暴露模型私有思维文本。可审计的 action、observation、状态变化和证据就足以判断过程价值。
四种处理方式怎样选?
第一种是重采样。
同一个问题重新运行,调整采样随机性或给更合理预算。适合偶发截断和环境波动。
第二种是断点续跑。
从最后一个完整状态恢复,继续完成剩余任务。前提是状态、证据和工具结果可重放,不能只靠截断文本续写。
第三种是轨迹分段。
将长任务按阶段或摘要 checkpoint 切成可验证片段,分别训练局部决策和最终综合。材料提到 ReSum-GRPO 等长 horizon 方向,但正文不声称已有生产验证。
第四种是拒绝。
结构损坏、状态不可恢复、观察来源不可信或错误原因不明时,宁可排除,也不要为了凑数自动补齐。
处理方式取决于失败原因与数据用途。SFT、RL rollout 和离线评测对同一截断样本的要求并不相同。

先识别终止原因与可恢复性,再决定重采样、续跑、分段或拒绝。
SFT 数据中的截断样本怎么处理?
SFT 需要明确监督目标。
如果样本在 tool call 中间截断,目标格式已经损坏,应拒绝或从原始状态重新生成。
如果 observation 完整但后续 assistant 输出不存在,这段 observation 只是条件,没有对应学习目标。不能自动编写一个 final answer 冒充 Teacher 输出。
如果轨迹可以切到一个完整的局部决策,例如错误返回后选择换源,可以构造独立任务,但任务描述与目标要重新定义并审核。
Loss Mask 也要重新计算。裁剪后角色和 token 边界变化,不能沿用旧 labels。
SFT 数据质量优先于保留率。把未完成样本硬修成完整,会让模型学习数据清洗器的猜测。
GRPO 中的截断样本怎么处理?
GRPO 的同组候选需要相对比较。
若某条轨迹因策略反复搜索耗尽预算,低 reward 有合理依据。
若它因环境服务超时,直接给强负优势会把基础设施问题归给策略。
若它只差最终综合但前序证据完整,也不能与完全跑偏的轨迹视为同一种失败。
可以在 reward 中保留任务完成、过程进展、格式、证据和终止原因分项,并对环境失败单独重采样或排除。
但部分进度奖励也有风险。若奖励“搜索了很多来源”,模型可能堆调用;若奖励“状态写得完整”,模型可能花精力迎合格式。
所以任何部分 reward 都要绑定真实信息增益和任务合同,并用对抗样本检查是否被刷。
“续跑”为什么不能只是把残缺文本再喂给模型?
残缺文本可能在 JSON、引用或句子中间停止,模型不知道哪些内容真实执行过。
安全续跑需要结构化 checkpoint:原问题、当前计划、已确认主张、证据 ID、未决问题、工具调用与环境返回、预算和终止原因。
恢复时先验证工具结果仍可用,动态来源要保留时间信息。不能把过期 observation 当成当前事实。
还要保证幂等。上一调用可能已经成功,但响应在网络层丢失;直接重试可能重复提交有副作用的工具。
续跑后的轨迹要保留父子关系和恢复点。审核者能看出哪些步骤来自原运行,哪些来自恢复运行。
如果这些条件不具备,重新从头采样通常比文本续写更可信。
怎样设计预算,减少“无意义截断”?
预算不只是一条最大 token。
可以同时限制总时间、工具步骤、单工具重试、上下文、输出长度和成本。
任务复杂度不同,预算也应分层。简单事实不需要长轨迹,复杂比较若用同一短预算则天然容易被截断。
控制器应在每个完整步骤边界检查剩余预算。如果已接近上限,可以先保存状态、压缩上下文或选择安全降级,而不是让生成在任意 token 处被切断。
降级需要向用户说明范围。例如只交付已经核验的部分和未完成项,不把部分结果包装成完整研究。
预算策略要与评测集一起版本化。放宽预算后任务完成改善,不能全部归因于模型策略。
本文不提供材料未验证的固定步数、时长或 token 上限。
怎样避免“降低截断率”成为坏目标?
截断率是系统指标,不是最终质量。
模型提前回答也能让截断率下降。
应该同时观察正常完成率、证据覆盖、答案准确与完整、平均有效步骤、提前结束、工具重复和用户取消。
把截断按原因拆分。长度、时间、步骤、环境与用户取消的变化意义不同。
还要在相同预算下比较模型,避免用更大资源掩盖策略退化。
对高风险任务,可以容忍更长运行而要求证据硬门;对低风险任务,可以在明确范围内降级。
指标之间不能简单加权后互相抵消。无证据乱答即使未截断,也不应被高完成率判为合格。

完成率、研究深度、证据、提前结束与资源要一起看。
截断样本的数据结构至少保存什么?
任务层要保存 task ID、问题族、任务合同、复杂度与允许工具。
运行层要保存 run ID、父运行 ID、模型、Prompt、模板、环境和预算版本。
步骤层要保存 action、参数、observation、证据 ID、开始与结束状态,以及该步骤是否完整提交。
终止层要保存 stop reason、触发位置、剩余预算、是否存在 final answer、是否可恢复和用户是否主动取消。
质量层要分别记录格式、行动、证据、答案与环境结果。一个总分无法表达“过程合理但未完成”。
若续跑,还要保存恢复 checkpoint、父子轨迹关系、重新使用的 observation 与重新执行的工具调用。
这些字段让训练筛选器可以按原因选择样本,也让评测知道某次失败应归给模型、工具还是服务预算。
没有血缘时,最保守做法是把样本留在失败分析集,而不是猜测原因后进入训练。
用户取消算不算负样本?
用户取消可能因为任务太慢,也可能只是关闭页面、输错问题或不再需要结果。
仅凭取消事件,不能判断模型策略错误。
服务应区分用户主动取消、客户端断连、系统超时和管理员终止。后台任务是否继续,也要有明确产品规则。
若用户在看到进度后取消,日志可以作为体验问题候选,但需要结合等待时间、阶段进度和后续反馈分析。
训练数据中通常不把用户取消直接当策略负样本。可以用它发现长时任务路由、进度反馈或预算设计问题,再构造经过验证的训练与评测场景。
涉及真实用户日志时还要脱敏、授权和限制用途。取消记录不是免费可用的训练标签。
怎样做“预算反事实”判断是策略差还是预算太小?
对同一个 checkpoint、问题、工具环境和采样参数,只改变预算,观察轨迹是否能完成。
如果稍微增加预算就沿原路径顺利完成,原失败更像预算边界问题。
如果预算增加后仍重复搜索、参数错误或没有新增证据,策略问题更明显。
还可以固定预算,比较不同策略版本。若新模型在相同资源下更早覆盖关键证据并完成,才有更强的效率证据。
动态网页会破坏对照,应使用同一时间窗、环境快照或可重放工具结果。
预算反事实不是为了给每条轨迹找借口。它帮助把“需要更多资源”和“不会利用资源”分开。
这类实验只支持对应样本与条件,不应外推成全站任务时长或生产 SLA。
部分结果什么时候可以交付给用户?
长任务接近预算时,系统可以选择安全降级,但部分结果必须明确标注。
只输出已经核验的主张和来源,列出尚未覆盖的对象、冲突与后续步骤。
不能把“目前查到”改写成完整结论,也不能为了让答案看起来完整,补上未验证比较。
部分交付本身是一种合法终止状态,与“成功完成全部任务”分开统计。
训练样本若要教这种行为,任务合同中应明确允许降级,参考输出也要包含完成范围与缺口。否则模型可能把任何困难任务都降级成短答。
评测时检查用户是否获得可用信息、证据是否可靠、未完成范围是否透明,而不是只看有无 final answer。
如何给未完成轨迹做人工复核?
审核者先隐藏已有总 reward,避免把低分当成先验结论。
沿步骤检查每次 action 是否对应当前信息缺口,observation 是否来自真实环境,状态是否吸收了新证据。
再定位终止原因,确认是服务返回的 stop reason,还是通过文本猜测。
随后判断在相同状态下,合理下一步是什么:继续检索、综合答案、安全降级还是已经应该更早停止。
若轨迹可续跑,审核者只提供结构化 checkpoint,不提供理想答案,让恢复策略在环境中继续执行。
复核结果写成失败类型、可恢复性、建议用途和证据,不写“看起来还行”这类无法执行的意见。
人工复核样本应覆盖不同终止原因和任务难度,不只看最容易判断的格式截断。
如何构造截断边界的评测集?
准备可在短预算内正常完成的题,检查模型不会无故拖长。
准备需要多步证据的题,观察它是否在接近预算时保存状态、合理降级或继续核验。
准备工具超时、空结果和权限限制,验证环境失败不会被伪装成策略成功。
准备只差最终综合的轨迹,以及很早就跑偏的轨迹,检查分类器能否区分。
准备在 JSON、observation 后、步骤边界和 final answer 中间发生截断的结构用例。
评测还要覆盖恢复:重复执行是否幂等,证据和状态是否串任务,动态来源是否过期。
这些用例是工程设计,不代表材料已经给出对应生产 Trace 或通过率。
一轮可验证的修正实验怎样做?
先对历史未完成样本重新标注终止原因,不直接沿用 reward=0。
选一个明确问题,例如 token 截断被误当策略错,设计结构单测和少量真实任务。
固定模型、环境、预算与 reward,只修改截断分类和处理规则。
分别观察正常完成、提前回答、证据覆盖、答案完整、环境失败和格式回归。
人工回放正负轨迹,确认所谓改善不是少查证、自动补答案或忽略失败。
若尝试分段或续跑,还要验证状态一致、证据血缘与恢复幂等。
小批结果只能支持当前处理方向。没有跨任务、真实环境和多次复现,不能声明生产收益。
面试官继续追问,怎么接?
追问一:没有 final answer 为什么不能直接判失败?
因为它只说明未完成,原因可能是策略错、环境错或预算截断。训练信号必须与原因对齐。
追问二:截断样本能不能完全丢掉?
可以拒绝不可恢复样本,但应保留失败统计。可恢复轨迹还可以重采样、续跑或提取完整局部决策。
追问三:给部分进度 reward 不就行了?
要谨慎。若进度定义成调用数或字数,模型会刷步骤。必须绑定任务缺口、证据新增和状态变化。
追问四:怎样发现模型开始为了不截断而提前乱答?
同时看截断率、提前结束、证据覆盖、答案完整和有效步骤,并回放低证据的短轨迹。
追问五:ReSum-GRPO 是不是已经解决了问题?
材料把它作为长 horizon 优化方向。具体实现与效果仍需项目实验,不能直接写成现有生产结论。
如何解释“没做完不等于做错”
截断只说明轨迹在预算边界前没有完成,不等于策略失败。我会让服务返回明确 stop reason,并区分答案错误、行动错误、环境失败、预算耗尽和技术截断;再检查结构完整、有效进展和状态可恢复性。
SFT 中,破损调用和缺少目标的样本不自动补答案,必要时重采样或提取经过重新定义的完整局部任务。GRPO 中,环境失败、截断未完成和真正策略错不能共享同一种负优势,否则模型会学会尽早随便回答。可以重采样、断点续跑、分段或拒绝,但都要保留父子轨迹和证据血缘。
验收不能只看截断率,还要看正常完成、提前结束、证据覆盖、答案质量、有效步骤和相同预算下的资源。材料明确给出截断负样本风险与长轨迹方向,但没有生产通过率或收益数据,任何处理都要用小批、回放和真实环境验证。

截断样本处理的证据清单
先拿出 stop reason 与父子轨迹,再讨论重采样、续跑或拒绝;否则无法证明负样本标签来自策略,而不是环境边界。
- 是否保存明确 stop reason,而不是只检查 final answer?
- 是否区分策略错、答案错、环境失败、预算耗尽和技术截断?
- 是否禁止自动补写工具结果或最终答案伪造成功?
- 是否验证续跑状态、证据血缘与工具幂等?
- 是否同时监控截断、提前回答、证据和任务完成质量?
- 是否把 ReSum-GRPO 等方向与现有生产效果明确分开?