1. 可恢复性决定错误是否致命
同样一次错误,在可回滚文件编辑和已发送外部消息中代价不同。可以把状态 到最近可信 checkpoint 的恢复成本记为 ,把不可逆损失记为 。长任务风险更接近
而非简单错误次数。频繁出现但能自动修复的格式错误,可能比一次错误付款或错误发布代价低得多。
Checkpoint 密度控制恢复成本。每 步保存一次,故障后平均重做量约为 ,保存本身又有成本 。若每步故障概率近似 、单步重做成本为 ,一个粗略目标为
更密 checkpoint 降低重做量,却增加存储、验证和版本管理。真实任务的故障概率与动作风险不均匀,合理策略会在阶段验收、不可逆写入前和上下文压缩前加密保存,而非固定步长。
可恢复性还取决于 checkpoint 是否包含足够状态。只保存对话文本,无法恢复正在运行的异步作业、文件版本、随机种子和已执行副作用;只保存外部快照,又可能丢失目标版本与未解决假设。恢复测试必须由新执行体读取 checkpoint,重建环境连接,并完成至少一个可验证后继动作。
错误检测延迟会扩大污染范围。上游假设在第 步失效,到第 步才被发现,中间 步的产物都可能依赖它。保存依赖图能只重算受影响后继;没有依赖记录时,要么冒险保留污染产物,要么全量回滚。长时域系统的优势不只是少犯错,还包括早发现、能定位、可恢复。
一个更严格的定义,综合前面的量,可以把 Long-Horizon 任务定义为:在目标、环境或可见上下文可能变化的条件下,执行体必须跨越足够大的依赖深度、状态跨度或墙钟跨度,持续维护可验证状态,并在局部错误与中断后恢复,最终满足一组外部验收条件。
这个定义不要求轨迹一定很长。若一个决策依赖数日前的状态、涉及不可逆副作用并要求恢复证据,即使模型只调用十次工具,也具有长时域难点;反过来,重复一万次相互独立的确定性操作,主要是批处理规模问题。长度只有与依赖、状态和恢复结合时才有解释力。
相应地,能力报告至少包含六类量:最终验收成功率、进度曲线、生存或首次失效分布、关键路径深度、状态变化与恢复成功率、资源成本。再按目标修订、环境漂移、上下文压缩、并发合并和不可逆动作分层,才能看见系统究竟在哪种跨度上失效。
这一定义也限制了宣传边界。上下文窗口更长只提高可见历史容量;工具调用更多只扩大动作集合;能连续运行更久只增加墙钟。它们都可能帮助 Long-Horizon,却无法单独证明系统能维持目标一致、验证事实、分配信用和恢复错误。最终证据仍来自跨阶段任务中的可验证行为。
长程信用分配不只属于强化学习,最终任务成功由一串决策共同造成。即使系统不做参数更新,也要在执行时判断哪些早期选择导致当前结果,否则失败后只能全量重试。设轨迹为 ,终点验证器返回 。最粗的归因把同一个 分给全部动作,无法区分关键决策、机械步骤和环境噪声。
过程验证器可以在中间状态给出 ,回报写成
问题在于中间指标可能只是最终目标的代理。代码格式检查通过、文件数量增加或计划步骤被勾选,都不必然提高最终正确性。若系统过度优化这些信号,会产生看似持续进展、最终却无法验收的轨迹。过程奖励必须能说明它验证了哪项局部不变量,以及该不变量怎样进入最终依赖图。
从 checkpoint 分叉 continuation 提供更接近反事实的归因。固定 ,分别执行候选动作 与 ,比较后续成功率
同一状态下的对照减少了任务难度差异,但每个分叉都要复制环境和运行后续轨迹,成本很高。环境若包含不可复制的外部副作用,反事实甚至无法真实执行,只能依赖模型或日志估计。
依赖图提供一种结构化近似。某项失败只沿后继边传播,未依赖它的并行分支不应一起背锅。若测试失败由接口签名不一致引起,可以回溯修改该接口的动作以及依赖它的调用点;一项独立文档改动仍然有效。这个归因不要求估计每个动作的标量价值,却能缩小重算范围。
长轨迹还存在延迟反馈。早期选择数据库 schema,几十步后才在迁移阶段暴露问题;中间所有局部检查可能通过。系统需要保留决策依据与替代方案,使最终失败能够追溯到当时的假设。只保存收尾阶段几轮上下文,会让真正原因落在可见窗口之外。
执行期信用分配最终服务两个动作:修复当前任务,以及更新未来策略。前者关注哪些状态必须回滚,后者关注哪些决策模式值得避免。把一次特定依赖故障直接概括成普遍规则,可能过拟合单条轨迹;保留任务条件、证据和反例,才能让经验跨任务复用。
1.1. 目标漂移可以被形式化检测
用户后续消息可能补充目标、覆盖旧约束或开启新任务。系统需要区分目标真实变化与自身注意力漂移。令第 版目标为
分别表示产物、约束和验收条件。新消息 通过更新算子产生
若用户没有提供新要求, 应保持目标版本不变。模型在长上下文里自行把「完成全部文件」缩成「完成当前文件」,属于执行体漂移,不能解释为合理重规划。
目标更新至少有四种类型。增补在保留旧要求的同时添加条件;覆盖让新值替代冲突旧值;撤销明确删除一项要求;任务切换建立新的目标对象。自然语言摘要若只把句子拼在一起,会让旧值和新值同时出现。结构化更新要记录哪条约束被哪条消息替代,并保留历史用于审计。
可以定义当前计划 对目标的覆盖集合 。每次重规划后检查所有未完成验收项是否仍有路径:
若某项验收条件在计划中失去任何后继动作,目标已经被静默丢弃。计划可以暂时绕开阻塞项,但必须保留其状态与恢复条件,不能把它从目标中删除。
语义相似度不适合单独判断目标一致性。「保留接口」与「删除兼容层」主题接近,约束方向却冲突;两个摘要可能措辞不同,实际验收条件完全相同。更可靠的做法是抽取可检验谓词,例如文件存在、测试通过、禁止修改目录、不得发送外部消息,再比较谓词的新增、删除和取值变化。
目标版本还要绑定产物。文件、提交和验证结果应注明依据哪个 生成。用户修改要求后,旧产物不一定全部失效;依赖变化约束的部分需要重验,独立部分可以保留。没有版本关系时,系统只能凭时间猜测哪些结果仍适用。
状态一致性要跨越多个事实源,真实任务很少只有一个状态存储。代码在工作树,提交在版本库,构建结果在 CI,任务状态在远程服务,用户看到的结果还可能位于浏览器或消息系统。每个来源都只反映局部事实,而且更新时间不同。
设第 个来源的观察为 ,它带版本 和采样时间 。把这些观察合成状态时,需要检查版本关系。测试结果对应提交 ,工作树已经变为 未提交修改,这条测试证据不能证明当前文件;远程部署显示版本 健康,也不能推出 已上线。
一致快照在分布式环境中往往昂贵。系统可以接受弱一致观察,但结论必须限制在相应版本上。形式上,一条证据 支持命题 的条件包含
范围不足或版本不符时,证据仍可作为线索,不能提交为已验证事实。
写入跨多个系统时还会出现部分成功。代码已提交、工单更新失败,或数据库写入成功、客户端响应超时。若动作没有原子事务,状态必须记录每个子效果,而非用一个「完成」覆盖。补偿事务可以撤销已成功部分,或者继续完成剩余部分;选择哪条路径取决于副作用可逆性与最新目标。
幂等键解决重复请求,不解决语义冲突。同一键重复发送可以避免创建两个作业,但用户已经修改参数时,沿用旧键可能返回旧作业;换新键又会并存两个版本。键应绑定操作语义或目标版本,恢复时先查询旧操作状态,再决定复用、取消还是创建新版本。
跨来源验证的最低要求是可追溯。最终结论能回到具体文件哈希、测试运行、远程对象 ID 和读取时间。语言模型生成的自然语言总结负责组织这些指针,权威事实仍保存在来源系统。摘要被压缩多次以后,指针比复制一段可能过期的值更可靠。
长上下文、外部记忆与真实状态,三种机制解决不同问题。长上下文增加一次推理可见的 token;外部记忆允许跨窗口存储和检索信息;状态系统保存可验证、带版本的事实。它们可以互相支持,却不能互相替代。
长上下文保留原始对话,仍会包含过期计划、失败尝试和互相冲突的目标版本。窗口越长,找到相关证据的搜索问题越明显。模型能看见一条早期约束,不代表它会在当前决策中正确使用;位置偏置与干扰会让有效利用长度远小于标称窗口。
向量记忆按语义相似检索,适合找相关经验和文本,不天然理解覆盖关系。查询「部署版本」可能同时召回三个月前与今天的记录,旧记录写得更详细时甚至排名更高。记忆项需要版本、有效期和权威来源,检索后还要做时效过滤。
状态系统的核心是可判定字段和更新规则。当前目标版本、文件哈希、测试状态、异步作业 ID 和副作用提交状态都可以机器核对。它的表达不如自由文本丰富,却能阻止模型把假设当成事实。一个成熟系统会让三者分工:原始上下文供回溯,记忆供跨阶段召回,状态层决定当前能否继续执行。
压缩会在三层之间迁移信息。原始对话被总结后,仍有效约束进入目标状态,已验证结果进入事实状态,稳定经验进入长期记忆,完整证据留在外部存储。若所有内容只压成一段散文,下一轮无法区分命令、事实、假设和解释。
可以通过干预测每条通道的贡献。清空工作上下文但保留结构状态,观察能否恢复;保留上下文但删除外部产物,检查模型会不会凭记忆宣称文件仍存在;替换一条过期记忆,查看状态版本过滤能否阻止使用。仅在三条通道都正常时测试,无法发现系统究竟依赖哪一种捷径。
可组合性与接口契约,长任务常由多个工具、agent 或阶段共同完成。局部能力只有通过接口契约才能组合。一个子任务输出至少应包含产物、输入版本、已验证范围、未覆盖范围和失败状态。只有「已完成」四个字,主执行体无法判断结果是否适合当前目标。
设组件 承诺前置条件 与后置条件 。组合 至少要求
若前一组件只保证文件能解析,后一组件却假设功能测试已通过,组合链从一开始就不成立。自然语言汇报容易把「检查过」模糊成「正确」,契约应列出具体验证器和版本。
并行子任务还需要写集合与读集合。两个组件同时修改相同文件或共享远程会话,会产生冲突;一个组件读取另一个正在修改的对象,也可能基于中间状态工作。静态声明无法覆盖所有动态访问,可以结合工作树差异、工具日志和资源锁审计实际范围。
结果合并是新的推理步骤。两份修改各自测试通过,合并后可能因接口或依赖冲突失败。主执行体必须在组合状态上重新运行交界面验证,不能把局部证据简单相加。局部提交哈希、测试范围和变更清单能缩小复查成本。
交接还会丢失负面知识。子任务尝试过哪些路线、为何失败、哪些来源无法访问,如果没有记录,下一执行体会重复探索。失败记录应保留可复现条件与错误证据,同时避免把一次环境偶发故障上升为永久结论。
可组合性最终限制多 agent 的实际收益。并发增加搜索带宽,也扩大契约、合并和冲突处理成本。只有子任务边界清晰、事实源可版本化、交界面能自动验证时,并行才真正缩短关键路径。
1.2. 从静态基准走向事件驱动基准
静态任务在开始时给出完整目标和固定环境,难以测目标修订、异步反馈和恢复。事件驱动基准在轨迹中预定或条件触发事件:文件被外部修改、用户补充约束、工具暂时失败、先前假设被新证据推翻,或执行进程从 checkpoint 恢复。
事件必须可复现。每个事件包含触发条件、目标状态变化、执行体可见观察和正确响应范围。若测试依赖真实网站随机变化,失败无法区分模型能力与环境偶发。可以使用录制响应、版本化服务或确定性模拟器保留语义,同时控制发生时机。
基准还要防止脚本化。若所有任务都在第 50 步修改目标,系统可以学会固定检查;触发应与状态相关,例如第一次准备不可逆提交时改变约束,或在某项中间验证通过后引入外部冲突。评测的是系统能否从观察识别状态变化,而非记住事件日程。
事件后的指标包括检测延迟、污染范围、重规划成本、恢复成功率和最终目标保持率。只看最终成功会掩盖两种系统:一个立即发现并局部修复,另一个继续错误执行很久后靠全量重做过关。后者成本高、风险大,在真实任务里未必有第二次机会。
为避免长任务分数被单一偶然事件主导,每种事件需要多种位置、强度和任务背景。目标修订可以是增补、覆盖或撤销;工具失败可以是明确错误、超时未知或部分成功;环境变化可以影响关键路径或无关对象。分层报告能说明能力边界。
事件驱动基准还应提供无事件对照。若加入恢复框架后,普通任务变慢或正确率下降,系统为鲁棒性付出了成本。比较有事件与无事件两条曲线,才能判断额外状态管理是否在合理开销内换来真实韧性。
规模扩展时要固定什么,研究 Long-Horizon 的 scaling 不能只增加最大步数。模型规模、上下文窗口、工具集合、任务依赖深度、环境噪声和计算预算同时变化时,任何提升都无法归因。至少应固定任务生成规则与总资源,分别扫描单一轴。
长度扩展可以保持局部动作难度不变,增加依赖链深度;也可以保持深度不变,增加独立分支数量。前者测误差累积与状态保持,后者测并行和合并。把两者混成更多步骤,会得到一个难以解释的平均趋势。
设每个关键步骤独立成功率为 ,深度为 ,完全无恢复时成功率上界近似 。即使 , 时也只有约 0.366。真实错误相关,独立假设并不成立,但这个手算说明局部准确率看似很高仍不足以支撑长链。验证、checkpoint 和恢复的作用,是让部分错误被发现并重试,打破简单指数衰减。
若每步检测错误的概率为 ,检测后修复成功率为 ,一个粗略有效成功概率可写为
长链成功近似 。提升检测与修复有时比把基础动作准确率再提高一点更划算。实验应分别测 ,不能只把最终收益归给模型更聪明。
预算也要固定。更长任务允许更多 token、更多重试和更多 agent,本身会提高成功机会,也增加成本。可以报告固定总 token、固定墙钟、固定工具调用和自适应预算四种协议。不同协议回答效率、能力上限和资源换成功率的不同问题。
收尾阶段,训练与评测长度要分开。模型在长度 上训练,测试扫描更大的 ,观察能力是平滑下降、突然崩溃还是由某类事件触发。只有这种外推曲线,才能判断系统学到可组合的状态策略,还是记住训练范围内的固定节奏。
验证粒度决定系统看见什么错误,验证器既可以检查最终产物,也可以检查每个阶段。终点验证覆盖真实目标,却只在轨迹末尾暴露问题;细粒度验证能更早定位,代价是额外计算,而且局部通过不保证全局正确。
把第 个验证器覆盖的命题集合记为 。一条结论 只有在
时才获得直接证据。运行很多测试不代表覆盖完整;若它们都检查格式,功能正确性仍为空白。验收清单需要从目标反推验证命题,再检查每个命题是否有对应证据,而非从已有测试正向推断「大概完成」。
验证频率可以按错误传播成本选择。某项上游改动一旦错误会污染大量后继,就应尽早验证;局部且易回滚的修改可合并后检查。设验证成本为 ,未及时发现错误的期望传播成本为 ,当 时增加近端验证更合理。 随依赖扇出、不可逆性和距下个 checkpoint 的距离增长。
验证器也会失败。测试可能 flaky,网页健康检查可能只覆盖缓存,静态检查可能漏掉运行路径。一次失败需要区分产物错误与验证基础设施错误;一次通过也应记录验证器版本和覆盖范围。对关键结论,可以使用性质不同的证据交叉检查,例如测试结果配合产物读回,而非重复运行同一脆弱检查。
中间验证会改变行为。执行体知道哪些指标被检查后,可能优先优化可见信号。若进度以新增文件数衡量,它可以拆出大量空文件;若只检查计划项勾选,便可提前标记完成。验证器必须尽量贴近外部性质,并保留隐藏或变体场景,减少对固定表面的迎合。
人工审批也是验证器,覆盖价值判断与高风险授权。它不应被当作自动流程失败,而是状态机中的显式门。系统要准备足够证据、说明尚存不确定性,并在等待期间继续不依赖该审批的分支;收到决定后更新目标或权限版本。
2. 路径依赖让最终状态不足以解释能力
两个系统可能得到相同最终文件,其中一个沿安全、可恢复路径完成,另一个中途执行了危险副作用再侥幸修正。只评终点会把二者视为等价。长任务需要同时约束结果与路径。
路径性质包括权限遵守、不可逆动作前的授权、秘密是否泄漏、外部消息是否重复发送、失败后是否使用可信 checkpoint,以及是否越过用户规定的修改边界。这些条件无法全部从最终产物重建,必须依靠事件日志和状态转换记录。
可将轨迹约束写成时序逻辑形式。例如「任何外部写入之前都已经获得授权」近似为
其中 表示始终, 表示过去曾成立。最终结果正确,若轨迹违反该条件,任务仍不合格。类似规则还能表达「删除前必须确认目标」「失败后先重新读取再重试」。
路径依赖也存在于学习过程。先看到错误答案再改正,与从未看到错误答案,可能留下不同的中间文件、缓存和长期记忆。恢复时若只回滚工作树,错误总结仍在记忆中,后续决策会继续受影响。补偿范围要覆盖所有被该状态污染的通道。
审计日志必须足够完整,但不必把每个 token 永久保存。关键是动作、输入版本、工具结果摘要、外部对象 ID、验证与权限决定能够串联。敏感内容可以哈希或受控存储,仍保留存在性与版本证据。
基准可设置「诱惑路径」:存在一个更快但违反边界的动作,安全路径稍长。若只看成功与时间,系统会被奖励走捷径;加入轨迹约束以后,才能测它是否在长执行中持续遵守规则。
规划应在不确定性下滚动展开,长任务开始时信息不足,预先固定几十步计划会把猜测伪装成确定性。更合理的计划包含稳定里程碑、近期具体动作和触发重规划的条件。远期节点保留目标与依赖,不提前决定尚无证据的实现细节。
设候选动作 的直接进展价值为 ,信息价值为 ,成本与风险为 ,可以用
组织选择。诊断动作的 可能很低, 很高;不可逆写入的 高, 也高。系数并非必须数值精确,分解本身就能暴露「为什么现在做这一步」。
重规划条件应与状态变化绑定。关键假设被否定、验收条件更新、资源不可用、实际进度偏离预测或风险超过阈值时,旧计划需要修订。每得到一条普通工具输出都重写全计划,会造成抖动;忽略关键变化则让计划失效。可以设置局部修补与全局重算两级动作。
计划还要保留替代路径。主方案依赖外部服务,服务不可达时,如果预先知道哪些工作独立,就能继续其他部分。替代路径只在高风险依赖点记录可接受的降级、等待和终止条件,无需把所有可能性展开成巨大树。
承诺窗口避免频繁切换。已经启动昂贵任务或占用共享资源后,微小效用变化不应立刻放弃;安全约束或关键前提失效则必须中断。窗口外里程碑可自由调整,窗口内动作需要更强证据才撤销。
评测计划质量不能只比较文本与参考答案。应把计划放进环境执行,测单位成本带来的验证进展、无效动作率、重规划次数、错误检测延迟和最终成功。多条不同计划都可能有效,表面措辞相似也可能完全不可执行。
人机协作是长任务状态的一部分,用户并非只在开始时给 prompt。真实协作会插入反馈、暂停任务、提供新文件、否决方案或授权高风险动作。系统必须把这些消息作为状态事件,而非一律当成追加背景。
消息可能覆盖当前请求,也可能补充它。判断依据包括显式撤销词、对象是否相同、验收条件是否冲突以及用户是否要求继续原任务。无法确定且不同解释会导致重大外部影响时,需要请求澄清;影响局部、可回滚时,可以声明假设并继续安全部分。
用户询问进度时,回答也不能中断状态维护。系统应从事实状态生成完成、进行中、跳过和阻塞清单,随后继续执行。若进度只来自模型记忆,容易把计划中的动作说成已完成。每个完成项应能指向产物或验证证据。
等待用户输入期间,哪些工作可以继续取决于依赖图。配色选择未定,不妨碍整理数据;删除范围未确认,就不能先删一部分试试。把阻塞绑定到具体节点,避免一个问题冻结整个任务,也避免越过需要授权的边界。
用户偏好与任务约束也要分层。稳定写作习惯可以进入长期记忆,某篇文章的临时语气要求只属于当前目标。把临时偏好永久化,会污染后续任务;每次都忘记稳定偏好,又会让用户重复说明。记录来源、适用范围和可撤销性能够区分二者。
交付不是人机协作的终点。用户可能审阅后指出事实错误或风格问题,系统需要定位受影响文件、传播范围和旧提交。若反馈揭示普遍规则,可以更新规范并扫描同类内容;若只针对单篇语境,不应机械改写全库。
高质量交接说明应以结果为中心:哪些目标已证明完成,哪些因证据不足停下,哪些文件改变,如何复验,是否存在不可恢复副作用。内部工具细节只有在帮助复查时才需要出现。
2.1. 停止条件与「继续忙」的区别
长任务执行体很容易把持续调用工具当作持续进展。真正的停止条件来自目标状态:全部验收条件已有证据,或剩余条件依赖无法获得的新权限、数据或外部变化。
对一个未完成节点,继续尝试的期望价值可写成
相同输入、相同环境和相同动作连续失败时, 不会凭重试次数自动上升。只有等待退避、改变参数、换来源或获得新诊断,才引入新的成功条件。重复失败应触发路线切换或局部停止。
局部内容上限也是停止条件。某篇主题公开一手证据有限时,继续扩写只能重复或猜测。正确做法是记录已覆盖机制、缺失证据和停止理由,并把它与外部阻塞分开:前者是知识边界,后者可能在源恢复后继续。
完成声明需要反向审计。先列出每项明确要求,再为它找到当前状态证据;没有证据的项目保持未完成。只运行一个通用检查脚本,若脚本没有覆盖长度、图片、事实来源或目录结构,不能据此推出全部通过。
阻塞也要严格定义。某个网站打不开、单篇论文缺页或一个工具失败,并不妨碍处理独立部分。只有剩余关键路径全部依赖同一外部条件,且安全替代已穷尽,整个目标才处于阻塞。否则应记录局部问题并继续。
停止后的状态要能恢复。保存当前目标版本、未完成项、最新验证结果、工作树归属和下一步入口。这样下一次继续基于事实状态,而不会重新扫描全部历史或重复已经完成的工作。
长程能力的最小因果实验,要证明某个组件提高 Long-Horizon,不能只比较加入组件前后的总分,因为模型、预算和 Harness 可能一起变化。最小实验固定模型与任务,只干预一个状态机制。
测试目标版本时,一组任务中途修改约束;实验组使用显式版本状态,对照组只保留追加对话。比较旧约束继续生效的比例、检测延迟和最终成功。若两组只在上下文长度不同,无法把收益归给版本机制。
测试 checkpoint 时,在相同状态点注入进程中断。实验组从结构化 checkpoint 恢复,对照组只读摘要;测恢复后首个正确动作、重复副作用、重做步数和最终质量。没有真实中断的普通任务,无法证明 checkpoint 有用。
测试外部记忆时,构造早期事实在后期被更新的任务。分别使用无记忆、只追加记忆和带版本失效的记忆,观察旧事实误用率。若事实从不变化,简单检索就能表现很好,测不到过期处理。
测试并行交接时,保持子任务内容相同,只改变契约完整度。一个条件只给自然语言「完成」,另一个给版本、文件、验证范围和未覆盖项;主执行体合并后运行相同检查。差异反映交接结构,而非子 agent 能力。
测试恢复与反思时,要区分多给一次尝试和真正使用失败信息。对照组重新采样同一策略,实验组获得失败证据和依赖定位;固定总计算后比较。否则更高成功率可能只来自更多抽样。
这些实验共同遵守一个原则:干预组件,固定其他条件,并测它应该改变的中间变量。只有中间变量按预期变化、最终结果随之改善,才形成较强因果链。
与普通 Agent 能力的边界,工具使用、规划、检索、代码生成和视觉操作都可以在短任务中测量。Long-Horizon 关注这些能力跨阶段组合以后,能否保持一致、处理变化并恢复错误。
一个模型单步工具选择很准,仍可能在百步后忘记为什么调用工具;规划文本很漂亮,仍可能不根据环境反馈修订;检索召回正确文档,仍可能引用过期版本;代码生成通过局部测试,仍可能破坏早期约束。长程评测关注这些组合接口。
反过来,长轨迹失败也不一定说明状态机制差。基础模型看不懂任务、工具接口本身损坏或验证器错误,都会导致失败。诊断需要先确认局部能力,再看它是否随跨度增长退化。短任务基线是长任务分析的必要对照。
可以把成功率写成多个条件因子的函数
这些因子通常相互作用,不能简单相乘。验证器更强会帮助恢复,状态更清晰会改善规划,协调失败会使局部正确结果无法组合。消融的任务是找到主要瓶颈,而非给每个因子分配一个永恒权重。
「长思考」也不等同 Long-Horizon。模型在单次回答里生成数万 token,环境和目标可能完全不变;真正长任务可能每次推理很短,却跨数日等待、多人协作和外部状态变化。二者共享上下文与信用分配问题,后者额外要求持续事实状态和副作用管理。
因此,Long-Horizon 更适合作为系统属性评估。模型是核心策略,Harness、工具、记忆、状态、验证器和恢复协议共同决定结果。报告只写模型名,会把控制系统贡献隐藏;只写系统名,又无法知道基础策略能力。两层都要固定或公开。
用 Horizon 向量替代单一长度,前文的维度可以汇总成一个任务向量
其中 是关键依赖深度, 是可并行宽度, 是墙钟跨度, 是目标变化次数与强度, 是环境变化, 是不可观测程度, 是不可逆动作风险, 是协调规模, 是恢复要求。这个向量让「长」具体到可比较的压力来源,无需再制造一个掩盖差异的综合榜单。
两个任务的总步骤相同, 可以完全不同。批量处理文件的 很大、 较小;长链调试的 大;跨日异步实验的 与 大;多人协作发布的 与 大。系统在某一类任务成功,不能自动推广到其他坐标。
每个维度还要有操作化定义。依赖深度来自任务图最长路径;环境变化按会使既有事实失效的事件计数;不可观测程度可由获得充分状态所需的观测成本近似;不可逆风险由错误后的最小补偿代价衡量。定义不完美,也比用 token 数统称所有困难更容易审计。
比较系统时,可以沿单一轴扫描。例如固定其他条件,把 从 5 提高到 100,得到成功率与恢复率曲线;固定深度,增加目标覆盖次数;固定事件数量,改变事件发生在关键路径还是无关分支。单轴实验支持机制归因,多轴组合则更接近真实压力测试。
向量也能解释训练分布。若训练任务主要覆盖高 、低 的批处理,模型可能学会并行工具调用,却没有经历深层依赖;若训练从不包含 ,测试时目标更新就是分布外事件。公开数据集应报告各维度分布,而非只写平均轨迹长度。
2.2. 任务生成器要避免伪长度
为了扩展 benchmark,研究者常把短任务串联或重复。若每个子任务完全独立,串联只增加步骤和总成本,没有增加状态依赖。系统可以逐个清空上下文完成,无法测跨阶段保持。
有效的长程任务生成器应让早期选择改变后期条件,同时保持结果可验证。例如先设计 schema,再生成依赖它的迁移与查询;先从证据选择假设,再根据新观测修订;先创建外部对象,后续需要凭稳定 ID 更新或撤销。依赖必须来自任务语义,不能只靠在提示里说「记住这个随机字符串」。
随机字符串记忆仍可作为最小单元测试,测压缩和检索是否保留精确信息,但不能代表完整能力。真实任务要求判断何时使用、何时失效、如何验证。把大量 needle-in-a-haystack 拼起来,只提高检索负担。
生成器还要避免隐藏不可解。后期要求依赖早期从未提供、也无法通过工具获得的信息,失败没有诊断价值。每项完成条件应存在至少一条可执行路径,并在参考环境中跑通;事件注入后也要确认替代路径仍存在,除非任务明确测试识别阻塞。
难度控制需要保持语义一致。把依赖链加长时,每一步局部操作的难度不应同时显著上升;增加环境噪声时,基础目标保持相同。否则曲线下降无法归因于 horizon。任务生成日志应保存随机种子、依赖图、事件和参考轨迹。
最终验收的证据结构,一项 Long-Horizon 任务完成时,最小证据包应包含当前目标版本、验收条件到验证器的映射、产物版本、关键副作用、未覆盖范围和恢复入口。它是一组有关系的事实,不是一段宣称成功的总结。
验收映射可写成表 :条件 由证据 支持,验证器版本为 。同一证据可以支持多个条件,但范围必须足够;同一条件也可以需要多份证据,例如构建通过、链接完整和人工视觉检查共同证明页面交付。
全局检查应在所有局部修改合并后运行。局部文件没有 NUL,无法证明全库没有;单篇链接通过,无法证明导航结构;一张图片能打开,无法证明所有引用资源有效。验证范围要与声明范围一致。
未覆盖范围需要显式保留。源材料缺页、外部接口不可达、内容达到一手证据上限,都不应被成功列表吞掉。它们分别标记跳过、阻塞或内容上限,并说明是否影响其他验收项。
恢复入口包括最新可信提交、未提交工作归属、运行中的外部任务和下一项安全动作。即使任务已经完成,这些信息也支持复查与后续维护;若最终审计发现遗漏,系统可以从可信边界继续,而非重头猜测。
只有当每项要求都能沿这套结构找到当前证据、相互冲突的版本已经处理、最终检查覆盖完整范围时,完成声明才成立。长轨迹本身不提供完成证明,收尾阶段一句自然语言也不提供;证据链闭合才是终点。
复现实验必须冻结控制面,复现 Long-Horizon 结果时,仅固定模型 checkpoint 不够。Harness 的上下文压缩策略、工具 schema、超时、重试、权限和终止条件都会改变轨迹。相同模型在一个系统里可以自动读回文件,在另一个系统里只能相信自己的总结,二者测到的能力不同。
环境也要版本化。代码仓库提交、依赖锁、容器镜像、网页快照、验证器和任务事件共同定义一次实验。实时服务无法完全冻结时,应记录调用时间、响应标识和失败类型,并用多次运行估计外部方差。把服务偶发故障记成模型失败,会让结论随基础设施状态漂移。
采样随机性要求报告分布。单条成功轨迹可以展示机制,不能估计可靠性;平均成功率又会隐藏少量灾难性路径。至少保存逐任务结果、随机种子、步骤数、恢复次数和成本,使中位数、尾部与失败类型都能重算。
预算停止规则也属于实验条件。某系统允许 500 步和三次重试,另一个只允许 100 步一次尝试,最终成功率没有直接可比性。固定预算回答效率,自适应预算回答能力上限;两者都可以报告,但不能混成同一排名。
收尾阶段要保存失败轨迹。成功样本往往不足以判断组件作用,失败中的首次状态分叉、验证遗漏和恢复行为才揭示边界。出于隐私或体积无法开放完整日志时,至少提供结构化事件、脱敏证据和统计脚本,让关键结论能够独立复算。