TrajDebug:长时序智能体轨迹错误生命周期追踪与关键故障定位
TrajDebug长时序智能体轨迹错误生命周期追踪与关键故障定位论文原网页https://arxiv.org/html/2608.06346v1摘要基于大模型的智能体可完成软件研发、科学发现、多轮客服等复杂长时序任务但执行轨迹极易产生级联错误调试定位难度极高。关键错误检测目标是在整条失败轨迹中找到根源性最早错误步骤——修正该步即可让任务完整成功。当前领域存在两大核心痛点长轨迹上下文海量冗余判定单步错误所需证据分散在相隔数十步的指令、观测、历史上下文全局一次性诊断极易幻觉误判单条失败轨迹内会并存大量局部错误部分后期修复、部分无实质影响、仅少数会持续传导至最终失败无法简单以时序先后判定根源故障。本文提出TrajDebug错误生命周期追踪框架依托多粒度轨迹压缩、证据约束式错误识别、错误状态分类、候选导向因果归因四阶段流水线完整追溯每条局部错误的演化全过程精准定位导致任务失败的关键错误。配套构建TrajErrBench标准评测基准包含486条人工标注失败轨迹取自τ²-Bench交互场景、SWE-Bench Pro长代码开发场景。在多套主流智能体基准上对比现有诊断基线TrajDebug全局定位性能最优落地应用实验证明Traj输出的诊断结论可直接用于智能体迭代优化重执行任务平均成功率提升10.8%历史故障沉淀为经验库后泛化任务提升5.7%。全部代码、标注数据集开源。关键词智能体轨迹调试、长时序智能体、错误归因、故障溯源、轨迹压缩、自动化诊断目录1 引言2 先导试点研究2.1 关键错误检测任务形式化定义2.2 上下文增长带来的定位难度量化2.3 局部错误演化动力学分析3 TrajDebug完整框架3.1 多粒度轨迹分层压缩3.2 证据约束错误触发器检测3.3 错误实例生命周期状态分类3.4 候选集导向因果归因4 TrajErrBench评测基准构建5 完整对照实验6 讨论与局限性7 结论参考文献附录A 人工标注完整规范附录B 框架核心实现Python代码附录C 全套提示词模板附录D 消融实验完整结果附录E 案例轨迹完整运行示例1 引言LLM智能体执行轨迹可长达上百步包含规划、推理、工具调用、环境反馈多轮交互。一处早期错误会沿后续步骤持续传导最终任务整体失败。关键错误检测的核心目标定位整条轨迹中决定性最早错误仅修改该步动作、其余步骤不变整条轨迹即可正常完成。现有方法分为两类分类约束式诊断全局一次性让模型遍历全轨迹标记错误长上下文下准确率断崖下跌因果反事实归因建模步骤依赖关系但无法区分“已修复错误/无害局部错误/根源故障”多错误共存时归因模糊。两大核心行业痛点长上下文证据分散判断单步违规的约束、事实可能出现在轨迹最开头长序列下模型极易丢失远距离证据凭空编造错误判定多局部错误混杂干扰一条失败轨迹平均7~8处局部错误大部分会被后续步骤修复、或不影响最终结果只有少数持续传导为终端故障简单时序先后无法区分根源。本文四大核心贡献提出TrajDebug四阶段生命周期追踪框架分层压缩、错误触发检测、状态分类、因果归因全程以原文可查证证据为约束杜绝无依据幻觉诊断量化长轨迹错误演化规律区分四类错误生命周期状态完全修复/高代价修复/显性持续故障/潜伏无害错误仅筛选传导型故障进入归因构建TrajErrBench开源评测基准486条双领域人工标注失败轨迹提供标注一致性Fleiss κ指标用于标准化对比落地两类工程应用单任务前置诊断优化、故障经验库泛化迁移验证框架可切实提升智能体任务成功率。图1 CSV导出任务典型级联错误早期违反“禁止修改core序列化文件”约束虽后续打补丁但约束冲突持续存在属于Manifest Active显性关键错误。2 先导试点研究2.1 任务形式化定义设完整轨迹τ ( x 1 , x 2 , . . . , x N ) \tau(x_1,x_2,...,x_N)τ(x1,x2,...,xN)每一步x t x_txt包含推理、动作、环境返回观测。轨迹判定失败即终端状态不满足任务目标。决定性关键错误若仅替换x t x_txt动作、前置步骤不变、后续步骤正常执行整条轨迹由失败转为成功则x t x_txt为决定性错误关键错误步骤是时序最早的决定性错误。2.2 上下文长度对定位精度影响采用WhoAndWhen、AgentDebugBench数据集按轨迹长度分组测试主流大模型全局诊断准确率1~10短轨迹平均44%定位精度11~3024%31~6014%61步以上长轨迹不足2%结论上下文越长远距离约束证据丢失越严重全局一次性诊断完全失效。2.3 局部错误演化统计采样50条失败轨迹人工标注总计381处局部错误单条平均7.62处仅1处为关键根源错误61.9%局部错误后续步骤完全修复无终端影响31.4%持续存在传导至最终失败6.6%潜伏错误存在但后续决策完全不依赖该错误无危害。现有方法无法自动区分三类错误大量无害局部错误干扰根源定位。3 TrajDebug整体框架输入任意失败轨迹流水线四阶段依次执行多粒度压缩→错误触发器检测→错误实例状态分类→候选因果归因最终输出唯一关键错误步骤与完整证据链。3.1 多粒度轨迹分层压缩为平衡证据完整性与上下文token开销对每一步构建三层结构化视图高细粒度视图完整原始指令、动作、观测、本地推理片段用于单步错误证据核验不压缩中粒度视图精简单步核心意图、动作、状态变更保留关键事实粗粒度视图仅记录任务进度、核心实体、未解决承诺远距离上下文使用。诊断不同阶段自动选用最低粒度视图长历史仅加载极简摘要本地核验步骤加载完整原文大幅降低长上下文负担。3.2 证据约束错误触发器检测错误触发器e ( t , c , p , q w , q r ) e(t,c,p,q_w,q_r)e(t,c,p,qw,qr)t为错误步数c为冲突类型p为执行阶段q w q_wqw当前错误承诺q r q_rqr被违背的原始参考事实。硬性约束q w q_wqw、q r q_rqr必须在轨迹原文中可逐字检索不满足直接丢弃该错误判定杜绝幻觉。四类冲突参考来源c任务冲突违背顶层任务约束如图1禁止修改文件要求历史冲突与之前工具输出、已确定事实矛盾单步内部冲突同一步推理前后自相矛盾环境异常动作合理但环境返回错误非智能体决策错误。执行阶段p规划/推理/动作执行/观测读取/结果校验五大类用于细粒度错误根源分析。单步可检测多条触发器全部基于本地高粒度视图近两步中粒度远距离粗粒度历史。3.3 错误实例生命周期状态分类将同一条参考对象O OO下所有触发器聚合为错误实例E ( E , O ) E(\mathcal{E},O)E(E,O)避免同一违规行为多次触发造成重复统计。双维度判定实例生命周期是否被后续步骤完整修复是否留下终端可观测痕迹不可逆修改/持续约束冲突/过半轨迹开销修复。四类标准化错误状态Clean Resolution 完全修复后期步骤覆盖错误无任何终端影响直接剔除候选Costly Resolution 高代价修复虽修复但消耗过半轨迹步数属于候选故障Manifest Active 显性持续错误全程未修复终端结果直接受影响核心候选Latent Active 潜伏无害存在错误但所有后续决策不依赖不纳入候选。筛选规则仅Costly Resolution、Manifest Active两类实例进入最终归因候选集F ( τ ) \mathcal{F}(\tau)F(τ)。3.4 候选集导向因果归因不再遍历整条轨迹仅对筛选后的少量故障候选实例做因果判断。输入每个实例的首错误步、状态标签、完整原文证据由LLM对比各实例对终端失败的因果贡献输出时序最早的决定性关键错误。优势候选集规模极小无需加载整条长轨迹归因精准度大幅提升。4 TrajErrBench评测基准数据集构成总计486条人工标注失败轨迹τ²-Bench400条多工具交互、客服长流程平均29.3步SWE-Bench Pro86条代码仓库开发长轨迹平均119.7步超百步极端长序列。标注规范3名独立标注员逐条标注少数服从多数生成真值标签定位时序最早决定性关键错误区分局部修复/持续故障标注冲突类型、错误发生阶段。一致性指标τ²-Bench Fleiss κ0.91高度一致SWE长代码轨迹κ0.67中等一致。热力图可见各类场景关键错误大量分布在轨迹中段智能体前期收集信息、中后期做出决定性违规动作简单“取第一步错误”基线完全失效。5 完整对照实验5.1 对比基线方案全局一次性LLM诊断All-at-Once步进式逐段排查Step-by-Step二元搜索定位基线AgentRx因果诊断框架WhoAndWhen、AgentDebug专业错误定位工具。5.2 核心定量结果全数据集平均关键错误定位准确率TrajDebug 78.3%最优基线仅56.1%60步以上超长轨迹TrajDebug 71.2%基线不足30%长时序鲁棒性优势显著消融实验多粒度压缩、证据约束触发器、生命周期分类、候选归因四模块缺一不可任意移除指标下降10~22个百分点。5.3 落地应用实验场景1失败轨迹先经TrajDebug生成针对性修复提示重新执行任务平均任务成功率10.8%场景2批量历史故障诊断沉淀为故障经验库迁移至全新同类任务平均成功率5.7%证明框架输出的诊断具备工程实用价值可直接用于智能体迭代优化。6 局限性仅面向单智能体串行执行轨迹多智能体交互、并行任务暂未适配基准数据仅覆盖工具调用、代码开发两大领域自动驾驶、科学计算等场景未验证依赖LLM完成分类与归因极端超长轨迹仍存在token开销瓶颈仅定位决定性根源错误暂不支持批量全链路错误修复方案生成。7 结论针对长时序智能体轨迹多错误混杂、远距离证据丢失两大调试痛点本文设计TrajDebug生命周期追踪诊断框架通过分层压缩降低上下文负担以原文证据约束杜绝幻觉诊断基于错误演化状态过滤无害局部故障最后在小规模候选集内精准归因根源关键错误。配套开源TrajErrBench标准化人工标注基准大量对照实验证明长轨迹场景下定位性能显著超越现有基线。工程落地验证诊断结论可有效提升智能体任务完成率代码与数据集全部开源为长时序智能体自动化调试提供标准化工具链。参考文献完整参考文献见论文PDF原文末尾附录A 核心实现Python代码框架主流水线importosimportllm_clientfromcore.compressimportMultiGranCompressorfromcore.triggerimportTriggerDetectorfromcore.classifierimportErrorStateClassifierfromcore.attributionimportCausalAttributorclassTrajDebug:def__init__(llm_api_key):self.compressorMultiGranCompressor()self.detectorTriggerDetector()self.classifierErrorStateClassifier()self.attributorCausalAttributor(llm_api_key)defrun_full_diagnosis(trajectory_raw):# 阶段1多粒度三层压缩traj_viewself.compressor.build_views(trajectory_raw)# 阶段2逐步检测证据约束错误触发器trigger_listself.detector.scan_all_steps(traj_view)# 阶段3聚合错误实例 生命周期分类筛选候选error_candidatesself.classifier.cluster_and_filter(trigger_list)iflen(error_candidates)0:returnNo decisive critical error found# 阶段4候选导向因果归因输出关键错误critical_step,evidence_chainself.attributor.attribute(error_candidates,traj_view)return{critical_step_id:critical_step,all_error_instances:error_candidates,evidence:evidence_chain}# 调用示例if__name____main__:importjson raw_trajjson.load(open(traj_sample.json,r))debuggerTrajDebug(sk-xxx)resdebugger.run_full_diagnosis(raw_traj)print(json.dumps(res,indent2))附录B 数据集使用说明TrajErrBench目录结构data/ ├─ tau2_400/ # τ²-Bench交互轨迹 ├─ swe_pro_86/ # SWE长代码轨迹 └─ label_spec.md # 人工标注完整规范加载读取脚本importjsondefload_benchmark(root./data):all_samples[]forfolderin[tau2_400,swe_pro_86]:forfnameinos.listdir(f{root}/{folder}):iffname.endswith(.json):withopen(f{root}/{folder}/{fname},r,encodingutf8)asf:all_samples.append(json.load(f))returnall_samples# 每条样本字段trajectory、gt_critical_step、error_triggers、conflict_type附录C 完整开源资源清单论文PDF原文https://arxiv.org/pdf/2608.06346项目GitHub仓库https://github.com/THU-KEG/TrajDebugTrajErrBench完整标注数据集仓库data文件夹主流水线、压缩、检测、归因完整代码src/core消融批量训练/评测脚本scripts/run_ablation.py可视化绘图代码scripts/plot_result.py全套LLM提示词模板config/prompts.yaml人工标注规范文档docs/annotation.md案例完整轨迹样例examples/csv_fix_traj.json